naar recod van volgende(vorige) datum linken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mar kla

mar kla

04/12/2022 12:23:53
Quote Anchor link
L.S.

In mijn wedstrijden database staan ± 4500 wedstrijden die, uiteraard, allemaal op een andere dag + tijdstip gespeeld zijn.

Iedere wedstrijd heeft velden voor het seizoen, de teams, de uitslag etc etc en een veld: "Game_DateTime".
De wedstrijden zijn niet op een volgend in de database ingevoerd, omdat er soms historische wedstrijden aan toegevoegd worden.

Wat ik nu zoek is een methode om op datum een hyperlink naar de volgende (en vorige) wedstrijd te kunnen maken.

Voorbeeld
ik heb deze data
1906-01-07 14:00:00
1965-11-10 00:00:00
1970-04-14 00:00:00
2022-03-25 21:00:00
2022-12-11 14:30:00


Ik zit in het record met de datum [1970-04-14 00:00:00] dan zou ik graag naar [2022-03-25 21:00:00] willen linken. hoe zou ik dat kunnen doen?
Gewijzigd op 04/12/2022 12:25:50 door Mar kla
 
PHP hulp

PHP hulp

03/02/2023 20:23:43
 
- Ariën  -
Beheerder

- Ariën -

04/12/2022 13:06:25
Quote Anchor link
Deze query had ik nog in mijn snippets staan. Je kunt er vast wat mee.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
select * from foo
where (
        id = IFNULL((select min(id) from foo where id > 4),0)
        or id = IFNULL((select max(id) from foo where id < 4),0)
      )
Gewijzigd op 04/12/2022 13:07:29 door - Ariën -
 
Mar kla

mar kla

04/12/2022 13:47:11
Quote Anchor link
Ariën

Dank voor je snelle reactie. maar ik begrijp even niet hoe ik dat in mijn situatie zou moeten toepassen :-|

Ik heb deze data in veld  [Game_DateTime] van de tabel [games] staan:
1906-01-07 14:00:00
1965-11-10 00:00:00
1970-04-14 00:00:00
2022-03-25 21:00:00
2022-12-11 14:30:00


De wedstrijd met de datum "1970-04-14 00:00:00" heb ik nu geselecteerd en in mijn scherm staan.

wat ik nu zou willen is de optie:

een terug = [1965-11-10 00:00:00]
actieve = [1970-04-14 00:00:00]
en verder = [2022-03-25 21:00:00]

Ik zie even niet hoe ik dat met jou code kan doen......
 
Adoptive Solution

Adoptive Solution

04/12/2022 13:59:01
Quote Anchor link
doe een select met

datum < huidige datum limit 1
datum >= huidige datum limit 1

Als er geen datum is die groter of kleiner is dan de huidige datum dan blijf je op de huidige datum.

Toevoeging op 04/12/2022 14:03:06:

Hier een uitgebreide code om plaatjes te zoeken met of zonder recept erbij.
Het maakt weer onderdeel uit van een groter geheel.

Vraag me niet om het uit te leggen, heb er dagen over gedaan om het goed te krijgen.
Het werkt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php

function btn_prev( $prev, $useRecpe )
{

    global $db;
    $idp       = $db->real_escape_string( $prev );
    $firstTrue = "&isFirst=true";

    $Recp_1p       = ( $useRecpe ? " WHERE recipe = 1" : "" );
    $selectQuery_1 = "SELECT min(pid) AS firstPid FROM " .  _PIX . $Recp_1p;
    $fPid = $db->query( $selectQuery_1 );

    $first    = $fPid->fetch_object();
    $theFirst = $first->firstPid;
    $fPid->close();

    $Recp_2p       = ( $useRecpe ? " AND recipe = 1" : "" );
    $selectQuery_2 = "SELECT pid FROM " .  _PIX . " WHERE pid <= " . $idp . $Recp_2p . " ORDER BY pid DESC LIMIT 1";
    echo '<pre>' . $selectQuery_2 . '</pre>';
    $result = $db->query( $selectQuery_2 );

    $row = $result->fetch_object();
    $thePid = isset($row->pid) ? $row->pid : 1;
    if ( $thePid > $theFirst ):
        $firstTrue = '';
    endif;

    header("Location: ?pid=" . $thePid . $firstTrue);
    exit();
}
// end function btn_prev

function btn_next( $pd, $useRecpe )
{

    global $db;
    $id       = $db->real_escape_string($pd);
    $lastTrue = "&isLast=true";

    $Recp_1n       = ( $useRecpe == TRUE ? " WHERE recipe = 1" : "" );
    $selectQuery_1 = "SELECT max(pid) AS lastPid FROM " .  _PIX . $Recp_1n;
    $lPid          = $db->query( $selectQuery_1 );

    $last    = $lPid->fetch_object();
    $theLast = $last->lastPid;

    $Recp_2n       = ( $useRecpe == TRUE ? " AND recipe = 1" : "" );
    $selectQuery_2 = "SELECT pid FROM " .  _PIX . " WHERE pid >= " . $id . $Recp_2n . " ORDER BY pid ASC LIMIT 1";
    echo '<pre>' . $selectQuery_2 . '</pre>';
    $result = $db->query( $selectQuery_2 );
    $row = $result->fetch_object();
    $thePid = isset($row->pid) ? $row->pid : 99999;
    if ( $thePid < $theLast ):
        $lastTrue = '';
    endif;

    header("Location: ?pid=" . $thePid . $lastTrue);
    exit();
}
// end function btn_next

$useRecp  = ( isset($recept) ? ( $recept == 1 ? TRUE : FALSE ) : FALSE );

if ( isset( $_REQUEST["prev"] ) && ( $_REQUEST["prev"] > 0 ) && ( is_numeric( $_REQUEST["prev"] ) ) ):
    $previous = (int) $_REQUEST["prev"] -1;
    btn_prev( $previous, $useRecp );
endif;


if ( isset( $_REQUEST["next"] ) && ( $_REQUEST["next"] > 0 ) && ( is_numeric( $_REQUEST["next"] ) ) ):
    $next = (int) $_REQUEST["next"] +1;
    btn_next( $next, $useRecp );
endif;

?>
 
Mar kla

mar kla

04/12/2022 14:15:47
Quote Anchor link
Thanks!

Ziet er inderdaad niet uit als code die je even 1.2.3. uit je mouw schud :-)

Zelf zit ik ook al een hele tijd te klooien en telkens voor me uitgeschoven.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.