(php) for / while loop probleem

Pagina: 1
Acties:

  • MadHost
  • Registratie: Januari 2001
  • Laatst online: 22:03
Ik ben bezig om een administratietooltje te maken van voetbalwedstrijden. Het puntenoverzicht van een competitie is al af maar nu wil ik een overzicht maken op datum gesorteerd. Voor elke datum zijn er meerdere wedstrijden en die moeten dus per datum in een aparte tabel komen.

Op dit moment haalt ie alleen van de laatst opgehaalde datum de informatie op en plaatst deze in 1 tabel.
PHP:
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?
FUNCTION wedstrijden_overzicht()
{
   REQUIRE("clubs.php");
   REQUIRE("db_connect.php");
   db_connect();
   $databasenaam = "duiveland";

   PRINT("<HTML>\n");
   PRINT("   <HEAD>\n");
   PRINT("      <LINK REL=\"stylesheet\" HREF=\"../stylesheet.css\" TYPE=\"TEXT/CSS\">\n");
   PRINT("   </HEAD>\n");
   PRINT("<BODY>\n");
   PRINT("\n");

/*
   *** Alle verschillende datums ophalen ***
*/

   $query = "SELECT DISTINCT datum FROM tb_wedstrijd ORDER BY datum DESC";
   $result = mysql_db_query($databasenaam, $query);
   $datum = mysql_fetch_row($result);

/*
   *** Aantal verschillende datums ophalen ***
*/

   $query = "SELECT DISTINCT count(datum) FROM tb_wedstrijd";
   $result = mysql_db_query($databasenaam, $query);
   $aantal_datums = mysql_fetch_row($result);

   FOR ($i = 0; $i < $aantal_datums; $i++)
   {
      PRINT("<TABLE WIDTH=\"400\" BORDER=\"0\" CELLSPACING=\"0\">\n");
      PRINT("  <TR>\n");
      PRINT("    <TD WIDTH=\"75\" ALIGN=\"center\" BGCOLOR=\"#F7F600\" NOWRAP><B>Datum</B></TD>\n");
      PRINT("    <TD WIDTH=\"125\" ALIGN=\"left\" BGCOLOR=\"#FFFF33\" NOWRAP><B>&amp;nbsp;Thuis</B></TD>\n");
      PRINT("    <TD WIDTH=\"125\" ALIGN=\"left\" BGCOLOR=\"#FFFF33\" NOWRAP><B>Uit</B></TD>\n");
      PRINT("    <TD WIDTH=\"50\" ALIGN=\"center\" BGCOLOR=\"#F7F600\" NOWRAP><B>Stand</B></TD>\n");
      PRINT("  </TR>\n");

/*
   *** Ophalen van wedstrijden van een bepaalde datum ***
*/

      $query = "SELECT * FROM tb_wedstrijd WHERE datum = '$datum[$i]' ORDER BY datum";
      $result = mysql_db_query($databasenaam, $query);

      WHILE($row = mysql_fetch_row($result))
      {
         PRINT("  <TR>\n");

         IF ($row[2] == "Duiveland 1")
         {
            PRINT("    <TD ALIGN=\"center\" BGCOLOR=\"#F1EFEF\" NOWRAP><B>$row[1]</B></TD>\n");
            PRINT("    <TD ALIGN=\"left\" BGCOLOR=\"#FFFFFF\" NOWRAP><B>&amp;nbsp;$row[2]</B></TD>\n");
            PRINT("    <TD ALIGN=\"left\" BGCOLOR=\"#FFFFFF\" NOWRAP><B>$row[3]</B></TD>\n");
            PRINT("    <TD ALIGN=\"center\" BGCOLOR=\"#F1EFEF\" NOWRAP><B>$row[4] - $row[5]</B></TD>\n");
         }
         ELSEIF ($row[3] == "Duiveland 1")
         {
            PRINT("    <TD ALIGN=\"center\" BGCOLOR=\"#F1EFEF\" NOWRAP><B>$row[1]</B></TD>\n");
            PRINT("    <TD ALIGN=\"left\" BGCOLOR=\"#FFFFFF\" NOWRAP><B>&amp;nbsp;$row[2]</B></TD>\n");
            PRINT("    <TD ALIGN=\"left\" BGCOLOR=\"#FFFFFF\" NOWRAP><B>$row[3]</B></TD>\n");
            PRINT("    <TD ALIGN=\"center\" BGCOLOR=\"#F1EFEF\" NOWRAP><B>$row[4] - $row[5]</B></TD>\n");
         }
         ELSE
         {
            PRINT("    <TD ALIGN=\"center\" BGCOLOR=\"#F1EFEF\" NOWRAP>$row[1]</TD>\n");
            PRINT("    <TD ALIGN=\"left\" BGCOLOR=\"#FFFFFF\" NOWRAP>&amp;nbsp;$row[2]</TD>\n");
            PRINT("    <TD ALIGN=\"left\" BGCOLOR=\"#FFFFFF\" NOWRAP>$row[3]</TD>\n");
            PRINT("    <TD ALIGN=\"center\" BGCOLOR=\"#F1EFEF\" NOWRAP>$row[4] - $row[5]</TD>\n");
         }
            PRINT("  </TR>\n");
            PRINT("</TABLE>\n");
      }
   }


   PRINT("<BR>\n");
   PRINT("Sorteren op: <A HREF=\"wedstrijden_per_elftal.php\">Elftal</A> | 
                       <A HREF=\"wedstrijden_per_datum.php\">Datum</A>
   \n");

   mysql_close();

   PRINT("</BODY>\n");
   PRINT("</HTML>");

}
wedstrijden_overzicht();
?>

Wat heb ik fout gedaan? Ik heb bij de code commentaar gezet wat het zou moeten doen.

System specs | X


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

move P > W

Klaar voor een nieuwe uitdaging.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

gebruik [ php] en [ /php]

en iets minder code mag ook wel
ik zal wel eens kijken wat je er voor de rest van hebt gebakken

Doet iets met Cloud (MS/IBM)


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 23:12

Kees

Serveradmin / BOFH / DoC
hmm, snelle opmerking:
$query = "SELECT DISTINCT datum FROM tb_wedstrijd ORDER BY datum DESC";
$result = mysql_db_query($databasenaam, $query);
$datum = mysql_fetch_row($result);

daar kun je meerdere datums uitkrijgen, waarom neem je er maar 1?
kun je net zo goed:
$query = "SELECT min(datum) FROM tb_wedstrijd;
(of max(datum) gebruiken.
while($datum=mysql_fetch_row($result)) {
om wel alle data te doorlopen..

maargoed, dat was even een tussenopmerking, ik verplaats hem nu naar Webscripting.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • MadHost
  • Registratie: Januari 2001
  • Laatst online: 22:03
Sorry, ik zal er de volgende keer op letten.

Als je er naar wilt kijken, graag! Want ik vind het maar vaag dat ie het niet goed doet :(

System specs | X


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op vrijdag 26 oktober 2001 16:55 schreef Kees het volgende:
[..]
maargoed, dat was even een tussenopmerking, ik verplaats hem nu naar Webscripting.
te laat ;)

Klaar voor een nieuwe uitdaging.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

uhm als ik het goed bekijk dan heb je een haakje teveel :)
PHP:
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?
FUNCTION wedstrijden_overzicht()
{
    REQUIRE("clubs.php");
    REQUIRE("db_connect.php");
    db_connect();
    $databasenaam = "duiveland";

    PRINT("<HTML>\n");
    PRINT(" <HEAD>\n");
    PRINT(" <LINK REL=\"stylesheet\" HREF=\"../stylesheet.css\" TYPE=\"TEXT/CSS\">\n");
    PRINT(" </HEAD>\n");
    PRINT("<BODY>\n");
    PRINT("\n");

    /*
    *** Alle verschillende datums ophalen ***
    */

    $query = "SELECT DISTINCT datum FROM tb_wedstrijd ORDER BY datum DESC";
    $result = mysql_db_query($databasenaam, $query);
    $datum = mysql_fetch_row($result);

    /*
    *** Aantal verschillende datums ophalen ***
    */

    $query = "SELECT DISTINCT count(datum) FROM tb_wedstrijd";
    $result = mysql_db_query($databasenaam, $query);
    $aantal_datums = mysql_fetch_row($result);

    
    FOR ($i = 0; $i < 3; $i++)
    {
        PRINT("<TABLE WIDTH=\"400\" BORDER=\"0\" CELLSPACING=\"0\">\n");
        PRINT(" <TR>\n");
        PRINT(" <TD WIDTH=\"75\" ALIGN=\"center\" BGCOLOR=\"#F7F600\" NOWRAP><B>Datum</B></TD>\n");
        PRINT(" <TD WIDTH=\"125\" ALIGN=\"left\" BGCOLOR=\"#FFFF33\" NOWRAP><B>&amp;amp;nbsp;Thuis</B></TD>\n");
        PRINT(" <TD WIDTH=\"125\" ALIGN=\"left\" BGCOLOR=\"#FFFF33\" NOWRAP><B>Uit</B></TD>\n");
        PRINT(" <TD WIDTH=\"50\" ALIGN=\"center\" BGCOLOR=\"#F7F600\" NOWRAP><B>Stand</B></TD>\n");
        PRINT(" </TR>\n");
        
        /*
        *** Ophalen van wedstrijden van een bepaalde datum ***
        */
        
        $query = "SELECT * FROM tb_wedstrijd WHERE datum = '$datum[$i]' ORDER BY datum";
        $result = mysql_db_query($databasenaam, $query);
        
        WHILE($row = mysql_fetch_row($result))
        {
            PRINT(" <TR>\n");
            
            IF ($row[2] == "Duiveland 1")
            {
                PRINT(" <TD ALIGN=\"center\" BGCOLOR=\"#F1EFEF\" NOWRAP><B>$row[1]</B></TD>\n");
                PRINT(" <TD ALIGN=\"left\" BGCOLOR=\"#FFFFFF\" NOWRAP><B>&amp;amp;nbsp;$row[2]</B></TD>\n");
                PRINT(" <TD ALIGN=\"left\" BGCOLOR=\"#FFFFFF\" NOWRAP><B>$row[3]</B></TD>\n");
                PRINT(" <TD ALIGN=\"center\" BGCOLOR=\"#F1EFEF\" NOWRAP><B>$row[4] - $row[5]</B></TD>\n");
            }
            ELSEIF ($row[3] == "Duiveland 1")
            {
                PRINT(" <TD ALIGN=\"center\" BGCOLOR=\"#F1EFEF\" NOWRAP><B>$row[1]</B></TD>\n");
                PRINT(" <TD ALIGN=\"left\" BGCOLOR=\"#FFFFFF\" NOWRAP><B>&amp;amp;nbsp;$row[2]</B></TD>\n");
                PRINT(" <TD ALIGN=\"left\" BGCOLOR=\"#FFFFFF\" NOWRAP><B>$row[3]</B></TD>\n");
                PRINT(" <TD ALIGN=\"center\" BGCOLOR=\"#F1EFEF\" NOWRAP><B>$row[4] - $row[5]</B></TD>\n");
            }
            ELSE
            {
                PRINT(" <TD ALIGN=\"center\" BGCOLOR=\"#F1EFEF\" NOWRAP>$row[1]</TD>\n");
                PRINT(" <TD ALIGN=\"left\" BGCOLOR=\"#FFFFFF\" NOWRAP>&amp;amp;nbsp;$row[2]</TD>\n");
                PRINT(" <TD ALIGN=\"left\" BGCOLOR=\"#FFFFFF\" NOWRAP>$row[3]</TD>\n");
                PRINT(" <TD ALIGN=\"center\" BGCOLOR=\"#F1EFEF\" NOWRAP>$row[4] - $row[5]</TD>\n");
            }
                PRINT(" </TR>\n");
                PRINT("</TABLE>\n");
        }
} // <-dan is het dus deze die weg moet /edit>


PRINT("<BR>\n");
PRINT("Sorteren op: <A HREF=\"wedstrijden_per_elftal.php\">Elftal</A> | 
<A HREF=\"wedstrijden_per_datum.php\">Datum</A>
\n");

mysql_close();

PRINT("</BODY>\n");
PRINT("</HTML>");

} // <-- deze dus
wedstrijden_overzicht();
?>

en lees hierna ff [topic=152278/1/25] en mijn stukje daaronder
kan je een hoop fouten schelen iig

Doet iets met Cloud (MS/IBM)


  • MadHost
  • Registratie: Januari 2001
  • Laatst online: 22:03
Op vrijdag 26 oktober 2001 16:55 schreef Kees het volgende:
hmm, snelle opmerking:
$query = "SELECT DISTINCT datum FROM tb_wedstrijd ORDER BY datum DESC";
$result = mysql_db_query($databasenaam, $query);
$datum = mysql_fetch_row($result);

daar kun je meerdere datums uitkrijgen, waarom neem je er maar 1?
kun je net zo goed:
$query = "SELECT min(datum) FROM tb_wedstrijd;
(of max(datum) gebruiken.
while($datum=mysql_fetch_row($result)) {
om wel alle data te doorlopen..
Ik heb hiervoor gekozen omdat je anders elke keer een nieuwe query moet uitvoeren. Nu doe je alles in 1 keer ophalen (Scheelt in IO) :P

System specs | X


  • MadHost
  • Registratie: Januari 2001
  • Laatst online: 22:03
Op vrijdag 26 oktober 2001 16:57 schreef D2k het volgende:
uhm als ik het goed bekijk dan heb je een haakje teveel :)

mysql_close();

PRINT("</BODY>\n");
PRINT("</HTML>");

} // <-- deze dus
wedstrijden_overzicht();
?>[/php]
Dat haakje is van de Functie Declarering. Dus dat is het niet :'(

System specs | X


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 26 oktober 2001 17:08 schreef MadHost het volgende:

[..]

Dat haakje is van de Functie Declarering. Dus dat is het niet :'(
dan het is het haakje erboven aan de linkerkantljn :)
<edit> zie mijn edit hierboven

Doet iets met Cloud (MS/IBM)


  • MadHost
  • Registratie: Januari 2001
  • Laatst online: 22:03
Op vrijdag 26 oktober 2001 17:10 schreef D2k het volgende:

dan het is het haakje erboven aan de linkerkantljn :)
Helaas, die code interpreter van Tweakers is hierzo buggy. Want als je goed kijkt staat dat haakje voor de FOR-loop. (Verkeerde positie)

System specs | X


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 26 oktober 2001 17:15 schreef MadHost het volgende:

[..]

Helaas, die code interpreter van Tweakers is hierzo buggy. Want als je goed kijkt staat dat haakje voor de FOR-loop. (Verkeerde positie)
dan moet je wat query's echo-en enzo
gewoon basic debuggen
ik kan het zo 1-2-3 niet ontdekken in zo'n lap :)

Doet iets met Cloud (MS/IBM)

Pagina: 1