Hij geeft tabel niet goed weer

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis van der Meer

Dennis van der Meer

30/12/2005 14:40:00
Quote Anchor link
Hij geeft nu 1 t/m 18 weer bij elke club. Maar hij moet 1 bij club 1 en 18 bij club 18 geven. Wat moet ik aanpassen?

<html>
<head>
<title>Stand in de eredivisie</title>
</head>

<body>
<table border="1" width="60%" align="center">
<tr>
<td colspan="20" align="center"><h2>De stand van week 52</h2></td>
</tr>
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
<?php
for($teller = 1; $teller <=18; $teller++){

$db['host'] = 'localhost';        
$db['user'] = 'user';  
$db['pass'] = 'password';
$db['name'] = 'name';  
mysql_connect($db['host'],$db['user'],$db['pass']) ;
@
mysql_select_db($db['name']) or die( "Unable to select database");
$query = "SELECT * FROM eredivisie ORDER BY punten";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){

    echo ("<td>$teller</td><td align=\"right\">".($row['club'])."</td><td>
        "
.($row['aantal'])."</td><td>".($row['winst'])."</td><td>".($row['verlies'])."</td><td>".($row['gelijk'])."</td><td>".($row['punten'])."</td>
<td>"
.($row['dpvoor'])."</td><td>".($row['dptegen'])."</td><td>".($row['doelsaldo'])."</td></tr>");
    }}

?>

</table>
</body>
</html>


Het resultaat is te zien op:

http://aquauploads.aq.funpic.de/fotowedstrijd/test/tabel.php
 
PHP hulp

PHP hulp

02/05/2024 22:56:46
 
Dennis van der Meer

Dennis van der Meer

30/12/2005 15:12:00
Quote Anchor link
Kan iemand naar die pagina kijken, en ik heb order by punten DESC er in gezet. Dat doet hij wel op twee clubs na, die zet hij gewoon ergens tussenin. Wat doe ik toch in hemelsnaam verkeerd?
 
- SanThe -

- SanThe -

30/12/2005 15:19:00
Quote Anchor link
Zet je for() eens op een fatsoenlijke plek. Je connect, select etc.. nu steeds in de for() en dat slaat nergens op.

Edit: Misschien kan die for() wel helemaal weg als je LIMIT 18 gaat gebruiken.
Gewijzigd op 30/12/2005 15:21:00 door - SanThe -
 
Burdy

Burdy

30/12/2005 17:08:00
Quote Anchor link
Doe eerst maar even wat SanThe al aangeeft.
Je gebruikt nu 2 loops, daarom wordt alles 18x afgedrukt.
Is het veld 'punten' in je database trouwens wel van het type INTEGER? De sortering is nu niet goed.
 
Dennis van der Meer

Dennis van der Meer

30/12/2005 20:39:00
Quote Anchor link
Oke, punten integer gemaakt, sortering klopt nu. For lus op een andere plek. Ik heb nu alle 18 clubs 1 keer, maar bij elke club staat nu het cijfer 1. Volgens moet ik dan static gebruiken om 1-18 te krijgen toch?

<html>
<head>
<title>Stand in de eredivisie</title>
</head>

<body>
<table border="1" width="60%" align="center">
<tr>
<td colspan="20" align="center"><h2>De stand van week 52</h2></td>
</tr>
<tr><td bgcolor="#cccccc">Pos</td><td bgcolor="#cccccc">Club</td><td bgcolor="#cccccc">gespeeld</td><td bgcolor="#cccccc">winst</td><td bgcolor="#cccccc">gelijk</td><td bgcolor="#cccccc">verlies</td><td bgcolor="#cccccc">punten</td><td bgcolor="#cccccc">dpvoor</td><td bgcolor="#cccccc">dptegen</td><td bgcolor="#cccccc">doelsaldo</td></tr>
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
<?php

$db
['host'] = 'localhost';        
$db['user'] = 'user';  
$db['pass'] = 'pass';
$db['name'] = 'name';  
mysql_connect($db['host'],$db['user'],$db['pass']) ;
@
mysql_select_db($db['name']) or die( "Unable to select database");
$query = "SELECT * FROM eredivisie ORDER BY punten DESC";
$result = mysql_query($query) or die(mysql_error());
for($teller = 1; $teller <=18; $teller++){
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){

    echo ("<td>$teller</td><td align=\"right\">".($row['club'])."</td><td>
        "
.($row['aantal'])."</td><td>".($row['winst'])."</td><td>".($row['gelijk'])."</td><td>".($row['verlies'])."</td><td>".($row['punten'])."</td>
<td>"
.($row['dpvoor'])."</td><td>".($row['dptegen'])."</td><td>".($row['doelsaldo'])."</td></tr>");
    }}

?>

</table>
</body>
</html>
 
Burdy

Burdy

30/12/2005 20:49:00
Quote Anchor link
Volgens mij heb je die for-lus niet nodig.
Zet vlak voor de while-loop $teller=0 en binnen de while-loop $teller++.
 
- SanThe -

- SanThe -

30/12/2005 20:52:00
Quote Anchor link
Je moet volgens mij OF de een OF de ander gebruiken en niet alle twee.

for($teller = 1; $teller <=18; $teller++){
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){

De for() gaat van 1 -> 18
De while loopt helemaal tot ie klaar is.
Dus dan pas zal de for() op 2 springen en dan doet de while() niks meer want die is al klaar.

Snappie?

Edit: Typo.
Gewijzigd op 30/12/2005 20:53:00 door - SanThe -
 
Dennis van der Meer

Dennis van der Meer

30/12/2005 20:58:00
Quote Anchor link
Zoiets bedoelen jullie zeker niet:

while ($teller = 1; $teller <=18; $teller++, $row = mysql_fetch_array($result, MYSQL_ASSOC)){

hij geeft dan ook een fout, unexpected ;
 
Dennis van der Meer

Dennis van der Meer

30/12/2005 21:00:00
Quote Anchor link
Als ik de functie:

function teller_static(){
static $teller_static = 0;
$teller_static++;
echo($teller_static);
}

voor de for en while lus gebruik geeft hij wel 1-18, alleen dan niet in die rij die ervoor bestemd is, hij plaatst hm buiten de tabel.
 
Burdy

Burdy

30/12/2005 21:06:00
Quote Anchor link
Dit is wat ik bedoel.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$query
= "SELECT * FROM eredivisie ORDER BY punten DESC";
$result = mysql_query($query) or die(mysql_error());
$teller = 0;
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$teller++;
  echo ("<td>$teller</td><td align=\"right\">".($row['club'])."</td><td>
        "
.($row['aantal'])."</td><td>".($row['winst'])."</td><td>".($row['gelijk'])."</td><td>".($row['verlies'])."</td><td>".($row['punten'])."</td>
<td>"
.($row['dpvoor'])."</td><td>".($row['dptegen'])."</td><td>".($row['doelsaldo'])."</td></tr>");
    }

?>
 
- SanThe -

- SanThe -

30/12/2005 21:10:00
Quote Anchor link
Ik ga helemaal met Burdy mee. Alleen moet je waarschijnlijk LIMIT 18 aan de query toevoegen.
 
Dennis van der Meer

Dennis van der Meer

30/12/2005 21:13:00
Quote Anchor link
Hardstikke bedankt Burdy, hij doet het. Thnx
 
Burdy

Burdy

30/12/2005 21:17:00
Quote Anchor link
Graag gedaan, nu nog even de kolom 'verlies' goed invullen, die blijft nu nog leeg ;)

Edit: je hebt het al gefixed, zie ik.
Gewijzigd op 30/12/2005 21:21:00 door Burdy
 



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.