Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

gastenboek leest niet uit

Pagina: 1
Acties:
  • 588 views

  • Rj-
  • Registratie: Augustus 2006
  • Laatst online: 15-11 11:13
Geachte lezers

Ik ben bezig met opdrachten te maken uit het boek php 5.0 basiscursus van peter kassenaar. Ik ben net tegen het volgende aangelopen en na veel googlen krijg ik de fout er maar niet uit.

Zien jullie een fout in mijn code?

Deze code is om de gegevens uit de database te lezen.

id, int en primary key;
voornaam varchar;
achternaam varchar;
email varchar;
datum timestamp;
bijdrage text;


Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\php5_hoofdstuk12\gastenboek_lees.php on line 29

regel 30 =

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
38
39
40
<?php 
// variabelen initialiseren:
// $username = "uw_gebruikersnaam";
// $password = "uw_wachtwoord";
$host="localhost";
$username="root";
$dbnaam="zomertaak";

$query="SELECT * FROM gastenboek ORDER BY id"; // aflopend sorteren, laatste entry eerst

$db=mysql_connect($host, $username) or die (mysql_error());
mysql_select_db($dbnaam, $db) or die (mysql_error());
?>

<html>
<head>
    <title>Het complete gastenboek tonen</title>
</head>

<body>
<table border="0" width="90%" align="center">
<tr> <td colspan="3" align="center"><h2>Bijdragen</h2></td></tr>
<tr>
    <th width="25%">Datum</th>
    <th width="25%">Naam</th>
    <th width="50%">Bijdrage</th>
</tr>
<?php
while (list($id, $voornaam, $achternaam, $email, $datum, $bijdrage) = mysql_fetch_row($result)){
        echo("<tr><td>" . $rij['datum'] . "</td>\n<td>");
        echo("<a href=\"mailto:". $rij['email'] . "\">". $rij['voornaam'] . " " . $rij['achternaam'] . "</a></td>\n");
        echo("<td>". $rij['bijdrage'] . "<hr></td></tr>\n");
}
// verbinding afsluiten
mysql_close($db);
?>
</table>
<a href="eindoefening_h12_2.php">Een bijdrage in het gastenboek schrijven</a>
</body>
</html>

[ Voor 4% gewijzigd door Rj- op 20-08-2008 12:15 ]


  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 23-10 07:43

Mike2k

Zone grote vuurbal jonge! BAM!

Waar definieer je $rij.....? :)

Je kan beter doen:
code:
1
2
3
while (list = mysql_fetch_array($query)) {
$list[array1]
$list[array2]


Overigens:
De velden die jij opgeeft bij je while kun je beter in je query opnemen. Daar wordt je query efficienter van...

Nu haal je alles op uit de database en dan zeg je welke velden mee moeten worden genomen in je while.
Als je de velden die je wilt hebben opneemt in je SELECT query worden alleen die velden opgehaald uit de db. result: nettere en efficientere query...

[ Voor 59% gewijzigd door Mike2k op 20-08-2008 12:18 ]

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


  • Zyppora
  • Registratie: December 2005
  • Laatst online: 16-11 23:56

Zyppora

155/50 Warlock

Daarmee wordt het probleem niet opgelost ;) Hij voert de query nergens uit.

Phenom II X4 945 \\ 8GB DDR3 \\ Crosshair IV Formula \\ R9 290


  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
je kunt beter vragen waar "$result" gemaakt wordt :)

edit: dat was een reactie op Fastex, was dus te laat :)

[ Voor 36% gewijzigd door P.O. Box op 20-08-2008 12:18 ]


  • SinergyX
  • Registratie: November 2001
  • Nu online

SinergyX

____(>^^(>0o)>____

edit, leesfoutje

of zou een
$result = mysql_query($query);
genoeg zijn?
@SinergyX: dude, lees je uberhaupt wel de voorgaande posts ?
Of je kijkt even naar post tijd, niet iedereen refreshed elke 10 sec voor replies.
Neem nog een koffie ofzo :/

[ Voor 206% gewijzigd door SinergyX op 20-08-2008 12:22 ]

Nog 1 keertje.. het is SinergyX, niet SynergyX
Im as excited to be here as a 42 gnome warlock who rolled on a green pair of cloth boots but was given a epic staff of uber awsome noob pwning by accident.


  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 23-10 07:43

Mike2k

Zone grote vuurbal jonge! BAM!

Volgens mij is het inderdaad een gevalletje klok en klepel ;) nofi hoor, iedereen moet het leren. :D

[ Voor 154% gewijzigd door Mike2k op 20-08-2008 12:21 ]

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


  • Mad Marty
  • Registratie: Juni 2003
  • Laatst online: 14:22

Mad Marty

Je bent slimmer als je denkt!

Er is überhaupt nog geen $result. De foutmelding die je krijgt lijkt me ook aardig duidelijk.

edit:
Spuit 11...

[ Voor 32% gewijzigd door Mad Marty op 20-08-2008 12:20 ]

Rail Away!


  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 23-10 07:43

Mike2k

Zone grote vuurbal jonge! BAM!

@sinergyX: nee dat is niet genoeg. Je moet namelijk wel aangeven wat er moet gebeuren met de gevonden records...

fetch_assoc
fetch_row
fetch_array
enz...

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


  • SinergyX
  • Registratie: November 2001
  • Nu online

SinergyX

____(>^^(>0o)>____

Wordt hier toch gedaan:
mysql_fetch_row($result)

Maargoed, $rij zit je dan ook nog mee :P

Nog 1 keertje.. het is SinergyX, niet SynergyX
Im as excited to be here as a 42 gnome warlock who rolled on a green pair of cloth boots but was given a epic staff of uber awsome noob pwning by accident.


  • Rj-
  • Registratie: Augustus 2006
  • Laatst online: 15-11 11:13
Ik ben nog steeds een beetje een leek met php ik werk daarom ook nog via het boek!
maar ik snap na jullie ge brainstorm nog steeds niet helemaal wat ik moet wijzigen?

het zijn 3 bestanden

lees

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
38
39
40
<?php
// variabelen initialiseren
$host="localhost";
$dbnaam="zomertaak";
$fout = "FOUT: openen database mislukt";
$query="SELECT * FROM gastenboek ORDER BY id";

$db=mysql_connect($host);
mysql_select_db($dbnaam, $db) or die($fout);
$result = mysql_query($query) or die (mysql_error());
?>

<html>
<head>
    <title>Het complete gastenboek tonen</title>
</head>

<link rel="stylesheet" type="text/css" href="style.css" media="screen">

<body>
<table border="0" width="100%" align="center">
<tr> <td colspan="3" align="center"><h2 align="left">Reacties</h2>
    <p align="left">&nbsp;</p></td></tr>
<tr><th width="21%"><div align="left">Datum</div><p></th>
<th width="22%"><div align="left">Naam</div><p></th>
<th width="57%"><div align="left">Bijdrage</div><p></th>
</tr>
<?php
while (list($id, $voornaam, $achternaam, $email, $datum, $bijdrage) = mysql_fetch_row($result)){
    echo("<td valign=\"top\" nowrap>$datum </td>
    <td valign=\"top\"><a href=\"mailto:$email\">$voornaam $achternaam</a><br></td>
    <td> $bijdrage<hr></td></tr>\n");
}
// verbinding afsluiten
mysql_close($db);
?>
</table>
<a href="gastenboek_invoer.php">Een bijdrage in het gastenboek schrijven</a>
</body>
</html>


invoer

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
38
39
40
41
42
43
44
45
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ons gastenboek</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<link rel="stylesheet" type="text/css" href="style.css" media="screen">

<body>
<h2>Teken ons gastenboek!</h2>
<form name="form1" method="post" action="gastenboek_schrijf.php">
    
  <table border="0">
    <tr align="left" valign="top">
      <td align="right">Voornaam</td>
      <td>
<input name="voornaam" type="text" id="voornaam" size="30"></td>
    </tr>
    <tr align="left" valign="top">
      <td align="right">Achternaam</td>
      <td>
<input name="achternaam" type="text" id="achternaam" size="30"></td>
    </tr>
    <tr align="left" valign="top">
      <td align="right">e-mailadres</td>
      <td>
<input name="email" type="text" id="email" size="30"></td>
    </tr>
    <tr align="left" valign="top">
      <td align="right">Uw bijdrage:</td>
      <td>
<textarea name="bijdrage" cols="45" rows="10"></textarea></td>
    </tr>
    <tr align="left" valign="top">
      <td align="right">&nbsp;</td>
      <td><input type="submit" name="Submit" value="Verzenden">
        <input name="reset" type="reset" id="reset" value="Leegmaken">
        <input name="datum" type="hidden" id="datum" value="<?php echo(date("Y-m-d"));?>"></td>
    </tr>
  </table>
</form>
<p><a href="gastenboek_lees.php">Bekijk alle bijdragen in het gastenboek</a></p>
</body>
</html>


schrijf

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<link rel="stylesheet" type="text/css" href="style.css" media="screen">

<?php
/*
Let op: dit script is wellicht niet zonder meer te gebruiken op uw server.
Maak eerst een database aan met de velden id, voornaam, achternaam,
email, datum en bijdrage, op de wijze zoals in het boek wordt beschreven.

Neem ook de juiste gegevens op voor uw hostname, databasename, enzovoort.
*/

// variabelen initialiseren:
// $username = "uw_gebruikersnaam";
// $password = "uw_wachtwoord";
$host="localhost";
$dbnaam="zomertaak";
$db=mysql_connect($host) or die (mysql_error());
mysql_select_db($dbnaam, $db) or die (mysql_error());
if (empty($_POST)){
    // eerst controleren of pagina wel is aangeroepen vanuit gastenboek
    echo("Schrijf eerst <a href=\"eindoefening_h11_2.php\">een bijdrage</a>");
        exit();
}else{
    // OK, Query opbouwen met variabelen in $_POST
    $query="INSERT INTO gastenboek (voornaam, achternaam, email, bijdrage, datum) ";
    $query .= "VALUES ('"; // let op positie van de enkele aanhalingstekens 
    $query .= $_POST["voornaam"] ."', '" ;
    $query .= $_POST["achternaam"] ."', '" ;
    $query .= $_POST["email"] ."', '" ;
    $query .= $_POST["bijdrage"] ."', '";
    $query .= $_POST["datum"] . "');" ;
    $result = mysql_query($query) or die ("FOUT: " . mysql_error());
}
?>
<html>
<head>
    <title>Een bijdrage aan het gastenboek invoegen</title>
</head>
<body>
<?php
    echo("<h2>Bedankt voor uw bijdrage!</h2>\n");
    echo("De volgende gegevens zijn ingevoegd:<br>\n");
    echo("Voornaam: <b>".  $_POST["voornaam"] . "</b><br>");
    echo("Achternaam: <b>".  $_POST["achternaam"] . "</b><br>");
    echo("E-mailadres: <b>".  $_POST["email"] . "</b><br>");
    echo("Uw bijdrage: <b>".  $_POST["bijdrage"] . "</b><br>");
    echo("<hr><a href=\"gastenboek_invoer.php\">Nog een bijdrage schrijven</a> |
        <a href=\"gastenboek_lees.php\">Overzicht van alle bijdragen</a>");
?>
</body>
</html>

  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 23-10 07:43

Mike2k

Zone grote vuurbal jonge! BAM!

Opbouw is in ieder geval zo:

code:
1
2
3
4
5
6
<?php
$query="SELECT id, voornaam, achternaam, email, datum, bijdrage FROM gastenboek ORDER BY id"; // Velden in een database zijn natuurlijk geen variabelen!
while (result = mysql_fetch_array($query)) {
echo "id = " . $result[0];
echo "voornaam = " . $result[1]; //enz...
?>

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 23-10 07:43

Mike2k

Zone grote vuurbal jonge! BAM!

@rj: lees mijn post en pas je query aan... ;)

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


  • whoami
  • Registratie: December 2000
  • Laatst online: 14:00
Sorry hoor, maar hier is het forum niet voor vbedoeld.
Dit forum is nl. geen 'ik dump mijn code hier en debuggen het jullie even'-forum. Het is de bedoeling dat je zelf eerst eens even de boel overloopt, debugged, kijkt waar het fout kan gaan etc... Indien je dan nog niet zelf de oplossing hebt gevonden, dan kan je hier een nieuw topic openen, maar meldt dan wel even wat je geprobeerd hebt, wat er precies niet lukt, etc....

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.