Toon posts:

mysql_fetch_array($result)

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
wat is er mis met dit script?

PHP:
1
2
3
4
5
6
7
<?

$result = mysql_query("select * FROM klassen",$db);
$myrow = mysql_fetch_array($result);
echo "<br>\n";
echo $result["klas"];
?>



M'n tabel waar ik iets uit probeer te halen ziet er zo uit:

mysql> select * FROM klassen

-> ;

+-----------+

| klas |

+-----------+

| ponywagen |

| huifkar |

+-----------+

2 rows in set (0.16 sec)



Het resultaat van dit script is een lege regel iemand enig idee waar de fout zit?

Verwijderd

Op donderdag 11 oktober 2001 21:15 schreef ultimate het volgende:
wat is er mis met dit script?
PHP:
1
2
3
4
5
6
<?
$result = mysql_query("select * FROM klassen",$db);
$myrow = mysql_fetch_array($result);
echo "<br>\n";
echo $result["klas"];
?>

M'n tabel waar ik iets uit probeer te halen ziet er zo uit:

mysql> select * FROM klassen

-> ;

+-----------+

| klas |

+-----------+

| ponywagen |

| huifkar |

+-----------+

2 rows in set (0.16 sec)



Het resultaat van dit script is een lege regel iemand enig idee waar de fout zit?
Eigenlijk zou ik moeten zeggen: "Hier is iets moois voor het heet een handleiding en je vindt 'm hier".

Maargoed, ik ben in een aardige bui vandaag, dus ik help even.

Probeer dit eens:
PHP:
1
2
3
4
5
6
7
8
<?
$result = mysql_query("select * FROM klassen",$db);

while($myrow = mysql_fetch_array($result)) {
   echo "<br>\n";
   echo $myrow[klas];
}
?>

Je maakte namelijk twee fouten: gebruik liever een while-loop om een array in te lezen, en (nog veel ergere fout) je verwees naar $result, in plaats van $myrow, welke dus de eigenlijke gegevens-array bevat.

  • Grum
  • Registratie: Juni 2001
  • Niet online
stop wat jij uit je mysql_fetch_array krijgt eens in een print_r(); dan zie je precies wat erin zit :)

Verwijderd

Topicstarter
aardig stom om over die variable heen te lezen (heb meer dan een kwartier naar het script zitten kijken maar niet gezien)
had hem ook oorspronkelijk in een while loop staan maar die heb ik eruit gehaald om te kijken of mijn fout in mijn while loop zat of in mijn query.

thx voor de hulp ;)

Verwijderd

Topicstarter
Er zit toch nog iets fout want als ik dit script run krijg ik deze error:


Fatal error: Call to undefined function:  mysql_query() in /var/www/htdocs/marja.php on line 30


PHP:
1
2
3
4
5
6
7
8
9
10
<?

printf ("<form method=\"post\" action=\"%s?actie=leerltoevoegen\">\n", $SCRIPT_NAME);
                    echo "Naam leerling: <input type=\"Text\" name=\"naam\"><br>\n";
                    $result = mysql_query("select * FROM klassen",$db);
                    $myrow = mysql_fetch_array($result);
                    echo $myrow["klas"];
                    echo "<input type=\"submit\" name=\"submit\" value=\"leerling toevoegen\"\n>";
                    echo "</form>\n";    
?>




regel 30 is $result=
het vreemde is dat dit script eerst wel werkte vervolgens ging ik de while loop er in brengen deze gaf allemaal vreemde parse errors en na een hele avond geklooi heb ik de oorspronkelijke code weer terug gezet en deze geeft deze foutmelding? als ik een script met phpinfo() erin aanroep staat mysql er wel in? ik snap er helemaal niks van :)?

Verwijderd

Topicstarter
iemand enig idee wat hier fout kan zijn? Dit is het voledige script:
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
<?
<html>
<head>
<title>leerlingen administratie van marja</title>
</head>
<body>
<?php
$db = mysql_connect("localhost", "root");
mysql_select_db("marja",$db);
if ($actie) 
{
    if ($actie == aanttoevoegen) 
    {
        echo "het is gelukt";
    } 
    if ($actie == leerltoevoegen) 
        {
        if ($submit) 
            { //formulier verwerken
                $sql = "INSERT INTO leerlingen (namen,klas) VALUES ('$naam','$klas')";
                $result = mysql_query($sql);
                printf ("%s is toegevoegd aan de database. Zijn klas is: %s<br>\n", $naam, $klas);
                printf ("<a href=\"%s?actie=aanttoevoegen\">aantekeningen toevoegen</a><br>\n", $SCRIPT_NAME);
                printf ("<a href=\"%s?actie=leerltoevoegen\">leerlingen toevoegen</a><br>\n" , $SCRIPT_NAME);    
                printf ("<a href=\"%s?actie=klastoevoegen\">klastoevoegen</a><br>\n", $SCRIPT_NAME);
            } 
            else 
            {
                    printf ("<form method=\"post\" action=\"%s?actie=leerltoevoegen\">\n", $SCRIPT_NAME);
                    echo "Naam leerling: <input type=\"Text\" name=\"naam\"><br>\n";
                    $result = mysql_query("select * FROM klassen",$db);
                    $myrow = mysql_fetch_array($result);
---->                    echo $myrow["klas"];
                    echo "<input type=\"submit\" name=\"submit\" value=\"leerling toevoegen\"\n>";
                    echo "</form>\n";    
                
            }
        }
    if ($actie == klastoevoegen) 
        {
        if ($submit) 
            { //formulier verwerken
                $sql = "INSERT INTO klassen (klas) VALUES ('$klas')";
                $result = mysql_query($sql);
                printf ("De klas: %s is toegevoegd aan de lijst<br>\n", $klas);
                printf ("<a href=\"%s?actie=aanttoevoegen\">aantekeningen toevoegen</a><br>\n", $SCRIPT_NAME);
                printf ("<a href=\"%s?actie=leerltoevoegen\">leerlingen toevoegen</a><br>\n" , $SCRIPT_NAME);    
                printf ("<a href=\"%s?actie=klastoevoegen\">klastoevoegen</a><br>\n", $SCRIPT_NAME);
            } 
            else 
            {
                ?>
                <form method="post" action="<?php echo $SCRIPT_NAME;echo"?actie=klastoevoegen";?>">
                Klas: <input type="Text" name="klas"><br>
                <input type="submit" name="submit" value="Voeg klas toe aan de lijst">
                </form>    
                <?php
            }
        } 
} 
else    //end if als er een keuze gemaakt is in het menu
{
    //keuze menu aan het begin
    echo "wat wil je gaan doen?<br>\n";
    printf ("<a href=\"%s?actie=aanttoevoegen\">aantekeningen toevoegen</a><br>\n", $SCRIPT_NAME);
    printf ("<a href=\"%s?actie=leerltoevoegen\">leerlingen toevoegen</a><br>\n" , $SCRIPT_NAME);    
    printf ("<a href=\"%s?actie=klastoevoegen\">klastoevoegen</a><br>\n", $SCRIPT_NAME);
} //end if voor wel of niet keuze menu
?>
</body>
</html>
?>

als ik dit aanroep in mijn browser ook zonder actie=leerltoevoegen krijg ik de volgende error:
Parse error: parse error in /var/www/htdocs/marja.php on line 32
regel 32 is gemarkeerd

Verwijderd

Zijn dat wel []-tjes in regel 32? Op mijn scherm lijken ze meer op Ŝtjes

Verwijderd

Topicstarter
bedankt voor de hulp maar dat zijn echt [] iemand anders nog een idee?

Verwijderd

edit:
Blaat weggehaald.

Sorry, ik ga nu even goed kijken.

Okee, doe dit eens:
PHP:
1
2
3
4
5
6
7
<?
result = mysql_query("select * FROM klassen",$db);
while($myrow = mysql_fetch_array($result))
{
  echo "$myrow[klas]";
}
?>

Verwijderd

Topicstarter
dan krijg ik:
Parse error: parse error in /var/www/htdocs/test.php on line 2

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

D2k

Op dinsdag 23 oktober 2001 12:47 schreef ultimate het volgende:
dan krijg ik:
Parse error: parse error in /var/www/htdocs/test.php on line 2
*zucht*
zet dan ff een $ voor result

Doet iets met Cloud (MS/IBM)


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

lijkt me een webscripting probleempje

Verwijderd

Topicstarter
Op dinsdag 23 oktober 2001 13:05 schreef ACM het volgende:

lijkt me een webscripting probleempje
daar heb ik hem ook gepost voor de herindeling

Parse error: parse error in /var/www/htdocs/test.php on line 5

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
ok, neem een Xi relax en ga http://www.web-con.nl/?id=146 eens effe doorlezen.

Vervolgens effe gewoon gezond verstand en een editor met php-highlighting gebruiken en je bugs zijn zo de deur uit.
Er zit toch nog iets fout want als ik dit script run krijg ik deze error:

Fatal error: Call to undefined function: mysql_query() in /var/www/htdocs/marja.php on line 30
Dat lijkt er dus heel simpel op dat mysql niet is meegecompileerd.
Dan draai je of een heeeele oude php, waar mysql niet standaard inzit, of mysql support is er handmatig uit gesloopt.

Verwijderd

Topicstarter
aanzoiets zat ik zelf ook te denken maar als ik pkpinfo() doe staat mysql er wel bij en af en toe krijg ik het wel voor elkaar om info uit me database te halen. ps het is de standaard slackware install
Pagina: 1