Toon posts:

[PHP] Vergelijken tabellen (kom nu echt niet verder meer)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Met een beetje hulp van n.a.v. een eerdere vraag heb ik hetvolgende geproduceerd.

Onderstaande code zorgt ervoor dat ik alle auto's (PK vcknr "Varchar") uit de tabel vt weergeef in een table. de auto's die ook in de tabel onderhoud staan en, waarbij sysdate tussen de begin_datum en eind_datum van het onderhoud ligt worden rood gekleurd.

code:
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
$sql = mysql_query("SELECT * FROM vt");
$date="SELECT sysdate()";

$resultaat = mysql_query($date) or die (mysql_error());
While ($row2 = mysql_fetch_array($resultaat, MYSQL_NUM)) { 
$sysdate = $row2[0];
} 
?>
<table width="75%" border="1" align="center">
<? 

while ($row = mysql_fetch_array($sql)) 
 { 
    printf ("<tr><td>");
    
    $sql2 = mysql_query("SELECT vcknr, begin_datum, eind_datum FROM onderhoud WHERE vcknr='".$row["vcknr"]."'"); 
    
    $num2 = mysql_num_rows($sql2);
    $row2 = mysql_fetch_array($sql2);
        
        If ($num2 and $sysdate >= $row2[1] and $sysdate <= $row2[2]) 
      { 
        echo "<font color='Red'>" . $row["vcknr"] . "</font><br>";
        echo $row2[1];
        echo $row2[2];
     }       
    else 
      {       
        echo $row["vcknr"] . "<br>";
        echo $row2[1];
        echo $row2[2];
    } 
    printf ("</td></tr>");
    
}
?>
</table>


Mijn probleem is echter dat als een auto (vcknr) vaker in de tabel onderhoud staat, met onderhoudsdata in de toekomst en een data op dit moment, er slechts 1 van deze wordt bekeken. (namelijk de bocvenste in de tabel)

Hij kijkt dus naar een vcknr en gaat dan door naar het volgende vcknr. Hij moet echter kijken of er niet meer met hetzelfde vcknr in staan en dan vervolgens degene met de juiste datum (in onderhoud) weergeven.

Heeft iemand een suggestie???? 8)7

Bijvoorbaat dank,

Chris

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
// ff heel simpel jouw code...
while (condition1) {
  if (condition2) {
     // kan je hier niet nog een while() neer zetten? dus...
     while (condition3) {
        // en hier de code om de extra data weer te geven in je tabel.
     }
  }
}

Verwijderd

$sql2 = mysql_query("SELECT vcknr, begin_datum, eind_datum FROM onderhoud WHERE vcknr='".$row["vcknr"]."' AND datum='" $date "'");

aangezien je toch al de datum ophaalt...
$date="SELECT sysdate()";
edit:

Als mijn php syntax juist is :X, want ik kan helemaal geen php

edit:

Lamaar between is niet goed hier

En dan moet je nog iets doen met > begin and < eind ofzo...

[ Voor 0% gewijzigd door Verwijderd op 09-10-2002 19:46 . Reden: betweentje help misschien ]