Kan ik een if loop in een while loop plaatsen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Edwin van der Veen

Edwin van der Veen

02/08/2011 02:54:05
Quote Anchor link
Ik wil voor mijn vereniging site een wedstrijdprogramma pagina maken.
we hebben 2 teams waarvan ik de gegevens apart opsla in de database.

nu heb ik de onderstaande code geprobeerd maar hij doorloopt de if lus maar 1x
en niet zolang mijn while lus nog loopt.

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
<?php

include("connect.php");

$query= "SELECT * FROM wedstrijdprogrammau18 ORDER BY id ASC";
$result= mysql_query($query) or die ("FOUT:" . mysql_error());

$sql= "SELECT * FROM wedstrijdprogrammau22 ORDER BY id ASC";
$res= mysql_query($sql) or die ("FOUT:" . mysql_error());
$row= mysql_fetch_array($res);

while($rij= mysql_fetch_array($result)){
    echo '<table width="700" border="0" cellspacing="1" cellpadding="1" bgcolor="#000000">';
    echo '<tr>';
    echo '<td colspan="4" bgcolor="#FFFF66" align="center">' . $rij['datum'] . '</td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td align="center" bgcolor="#FFFF66" width="175">Speeltijd:</td>';
    echo '<td align="center" bgcolor="#FFFF66" width="175">Thuis:</td>';
    echo '<td align="center" bgcolor="#FFFF66" width="175">Uit:</td>';
    echo '<td align="center" bgcolor="#FFFF66" width="175">Informatie</td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center">' . $rij['speeltijd'] . '</td>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center">' . $rij['thuis'] . '</td>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center">' . $rij['uit'] . '</td>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center"><a href="wedstrijd_informatie?id=' . $rij['id'] . '">Informatie</a></td>';
      echo '</tr>';
if($row['datum'] == $rij['datum']){
    echo '<tr>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center">' . $row['speeltijd'] . '</td>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center">' . $row['thuis'] . '</td>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center">' . $row['uit'] . '</td>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center"><a href="wedstrijd_informatie?id=' . $row['id'] . '">Informatie</a></td>';
      echo '</tr>';
    echo '</table>';
    echo '<br>';
}
else{
    echo '</table>';
    echo '<br>';
}
}

?>
 
PHP hulp

PHP hulp

28/03/2024 18:28:52
 
- SanThe -

- SanThe -

02/08/2011 10:52:28
Quote Anchor link
Echo $row['datum'] en $rij['datum'] eens. Ik zie zo even niks verkeerds.
 
Stefan van Iwaarden

Stefan van Iwaarden

02/08/2011 10:53:35
Quote Anchor link
Kan dat ook niet komen door het feit dat de bepaalde datum maar 1 keer voorkomt in de tabel?
Gewijzigd op 02/08/2011 10:53:54 door Stefan van Iwaarden
 
Eric Wagener

Eric Wagener

02/08/2011 11:35:28
Quote Anchor link
Er zit maar 1x een fetch naar $row in, dus deze komt nooit verder.
Ik zou het helemaal anders doen trouwens. Behalve dat de gegevens in een tabel zouden kunnen staan met een extra veld "team" om het onderscheid te kunnen maken, kun je ook de tabellen meteen in de query koppelen.

Dus bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT au18.*, au22.datum as au22_datum ...(andere kolommen ook zo uitschrijven)
  FROM wedstrijdprogrammau18 au18
    LEFT JOIN wedstrijdprogrammau22 au22 ON au18.datum = au22.datum
  ORDER BY au18.id ASC


Met de join zorg je ervoor dat je bij alle datums van au18 kijkt of er ook datums bij au22 zijn. Als dat zo is zullen de de kolommen van au22 gevuld zijn en anders niet. Je krijgt wel alle rijen van au18 te zien.
Gewijzigd op 02/08/2011 11:36:20 door Eric Wagener
 
Edwin van der Veen

Edwin van der Veen

02/08/2011 17:46:05
Quote Anchor link
De oplossing van Eric werkt wel, alleen heb ik nu nog het probleem dat hij, of alleen wat naar het beeld schrijft als de datum gelijk aan elkaar is, of hij loopt de while lus alleen door zolang er gegevens in au18 staan dan krijg ik dus wanneer er 2 wedstrijden in au18 staan en 3 in au22 dat de looping al stopt bij de 2e looping uit au18 dus mis ik de 3e wedstrijd uit au22
 
Eric Wagener

Eric Wagener

02/08/2011 18:39:47
Quote Anchor link
OK, ik dacht je alleen de wedstrijden uit au18 wilde hebben. dan zou je dit kunnen proberen.
Het is niet heel fraai, maar ik denk wel dat het werkt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT DISTINCT au18.*, au22.datum as au22_datum ...(andere kolommen ook zo uitschrijven)
  FROM wedstrijdprogrammau18 au18, wedstrijdprogrammau22 au22
    WHERE au18.datum = au22.datum
  ORDER BY au18.id ASC
 
Edwin van der Veen

Edwin van der Veen

02/08/2011 19:19:30
Quote Anchor link
Hij schrijft nog steeds het zelfde naar het scherm.
Dit is de code die ik nu heb:

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
<?php

include("connect.php");

$query= "SELECT DISTINCT au18.*, au22.id as au22_id, au22.datum as au22_datum, au22.speeltijd as au22_speeltijd, au22.vertrektijd as au22_vertrektijd, au22.sporthal as au22_sporthal, au22.adres as au22_adres,
au22.postcode as au22_postcode, au22.telefoon as au22_telefoon, au22.thuis as au22_thuis, au22.uit as au22_uit, au22.tafel as au22_tafel, au22.scheidsrechters as au22_scheidsrechters, au22.vervoer as au22_vervoer, au22.reserve as au22_reserve
  FROM wedstrijdprogrammau18 au18, wedstrijdprogrammau22 au22
    WHERE au18.datum = au22.datum
  ORDER BY au18.id DESC"
;
$result= mysql_query($query) or die ("FOUT:" . mysql_error());


while($rij= mysql_fetch_array($result)){
    echo '<table width="700" border="0" cellspacing="1" cellpadding="1" bgcolor="#000000">';
    echo '<tr>';
    echo '<td colspan="4" bgcolor="#FFFF66" align="center">' . $rij['datum'] . '</td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td align="center" bgcolor="#FFFF66" width="175">Speeltijd:</td>';
    echo '<td align="center" bgcolor="#FFFF66" width="175">Thuis:</td>';
    echo '<td align="center" bgcolor="#FFFF66" width="175">Uit:</td>';
    echo '<td align="center" bgcolor="#FFFF66" width="175">Informatie</td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center">' . $rij['speeltijd'] . '</td>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center">' . $rij['thuis'] . '</td>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center">' . $rij['uit'] . '</td>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center"><a href="wedstrijd_informatie?id=' . $rij['id'] . '">Informatie</a></td>';
      echo '</tr>';
if($rij['au22_datum']== $rij['datum']){
    echo '<tr>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center">' . $rij['au22_speeltijd'] . '</td>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center">' . $rij['au22_thuis'] . '</td>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center">' . $rij['au22_uit'] . '</td>';
    echo '<td bgcolor="#CCCCCC" width="175" align="center"><a href="wedstrijd_informatie?id=' . $rij['au22_id'] . '">Informatie</a></td>';
      echo '</tr>';
    echo '</table>';
    echo '<br>';
}
else{
    echo '</table>';
    echo '<br>';
}
}

?>
Gewijzigd op 02/08/2011 19:20:59 door Edwin van der Veen
 



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.