Fout in Line 27
<html>
<html>
<body>
Code (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
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
<?php
$con = mysql_connect("localhost","blabla1","h3!!0");
$tabel = "tabel_nieuws";
$opdracht = "SELECT * from $tabel";
$resultaat = mysql_db_query (tabel_nieuws, $opdracht, $con);
print ("<table>\n");
print ("<tr></tr>\n");
print ("<td><b>ID</b></td>\n");
print ("<td><b>jaar</b></td>\n");
print ("<td><b>maand</b></td>\n");
print ("<td><b>dag</b></td>\n");
print ("<td><b>tekst_kort</b></td>\n");
print ("<td><b>tekst_volledig</b></td>\n");
print ("<td><b>link</b></td>\n");
print ("<td><b>afbeelding</b></td>\n");
print ("$resultaat");
print ("</tr>");
while ($Rij = mysql_fetch_array ($resultaat) ) {
print ("<tr>\n");
print ("<td>$Rij[ID]</td>\n");
print ("<td>$Rij[jaar]</td>\n");
print ("<td>$Rij[maand]</td>\n");
print ("<td>$Rij[dag]</td>\n");
print ("<td>$Rij[tekst_kort]</td>\n");
print ("<td>$Rij[tekst_volledig]</td>\n");
print ("<td>$Rij[link]</td>\n");
print ("<td>$Rij[afbeelding]</td>\n");
print ("</tr>\n");
}
mysql_close($con);
print ("</tr>\n");
?>
$con = mysql_connect("localhost","blabla1","h3!!0");
$tabel = "tabel_nieuws";
$opdracht = "SELECT * from $tabel";
$resultaat = mysql_db_query (tabel_nieuws, $opdracht, $con);
print ("<table>\n");
print ("<tr></tr>\n");
print ("<td><b>ID</b></td>\n");
print ("<td><b>jaar</b></td>\n");
print ("<td><b>maand</b></td>\n");
print ("<td><b>dag</b></td>\n");
print ("<td><b>tekst_kort</b></td>\n");
print ("<td><b>tekst_volledig</b></td>\n");
print ("<td><b>link</b></td>\n");
print ("<td><b>afbeelding</b></td>\n");
print ("$resultaat");
print ("</tr>");
while ($Rij = mysql_fetch_array ($resultaat) ) {
print ("<tr>\n");
print ("<td>$Rij[ID]</td>\n");
print ("<td>$Rij[jaar]</td>\n");
print ("<td>$Rij[maand]</td>\n");
print ("<td>$Rij[dag]</td>\n");
print ("<td>$Rij[tekst_kort]</td>\n");
print ("<td>$Rij[tekst_volledig]</td>\n");
print ("<td>$Rij[link]</td>\n");
print ("<td>$Rij[afbeelding]</td>\n");
print ("</tr>\n");
}
mysql_close($con);
print ("</tr>\n");
?>
</body>
</html>
Lees je code eens stap voor stap grondig door.
Wat gaat er precies fout? Wat voor foutmelding krijg je? Daar kun je vaak al direct uit afleiden waar het probleem zit...
het doet al pijn aan mijn ogen, ik heb echt geen idee.. :-S
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/site.nl/httpdocs/test/get.php on line 27
Valt toch direct op...
even testen.
nee dus..
Verder doelt Karl denk ik op de functie mysql_db_query() die inmiddels deprecated is en die je dus eigenlijk niet meer moet gebruiken. Maak in plaats daarvan gewoon gebruik van mysql_query(). Waarom is het verder nodig om de tabelnaam eerst in een variabele te zetten? Zet die gewoon direct in de query. En pas tenslotte de nodige foutafhandeling toe. Als een query mislukt, wil je met behulp van mysql_error() altijd de foutmelding achterhalen:
Lees en leer: http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-in-php-error-handling/571/
edit: De auteur van gegeven tutorial was me voor :)
Gewijzigd op 25/05/2010 23:44:17 door Willem Jan Z
Wat ik zou doen is:
while(mysql_fetch_assoc($var)){
Blanche:
Verder doelt Karl denk ik op de functie mysql_db_query() die inmiddels deprecated is en die je dus eigenlijk niet meer moet gebruiken. Maak in plaats daarvan gewoon gebruik van mysql_query().
Verder doelt Karl denk ik op de functie mysql_db_query() die inmiddels deprecated is en die je dus eigenlijk niet meer moet gebruiken. Maak in plaats daarvan gewoon gebruik van mysql_query().
Dat dus, wat hij zelf moet lezen, want dan gaat hij zelf opzoek, en daar leer je per definitie meer van dat als iemand anders het aan je verteld. Als hij dan op mysql_query komt dan ziet hij dat er bepaalde dingen in zijn script niet zitten, die wel heel handig zijn en dat gaat hij dan ook inbouwen. Verder klopt die variabele van regel zeven dus niet.
Merijn:
mysql_fetch_array( ) geeft een numerieke aray terug, dus geen associatieve. Met andere woorden: $rij[naam_van_veld] geeft niets terug, dit kan alleen met $rij[1] of een ander getal.
Gozer, kijk eens naar die foutmelding die hij heeft gepost.
goede nacht
Daarnaast weet je zelf ook wel dat mijn comment wel terecht is. Los van het feit dat z`n query niet lukt, gebruik je geen fetch_array voor je associatieve arrays.
Trouwens, Gozer, was jij niet de gene die zo vriendelijk was iedereen op z`n staartje te trappen als iedereen iemand anders aanraade een nieuwe methode te proberen? Waarom zit je daar nu wel over te bitchen dan?
allemaal @gozer Karl natuurlijk :)
Merijn:
Daarnaast weet je zelf ook wel dat mijn comment wel terecht is.
Toch niet. De functie mysql_fetch_array() geeft standaard een array terug met zowel de associatieve als de numerieke indexen. Die functie zou dus wel degelijk werken in het script van de TS.
JW:
Allen dank, ik gooi mijn oude PHP boekje in de vuurkorf en ga me weer inlezen.
goede nacht
goede nacht
Doe er dan gelijk een boekje over HTML bij:
In regel 10 open je namelijk een tablerow en sluit deze direct af, vervolgens open je in regel 11 met tabledata zonder eerst de tablerow te openen. Voor de tableheaders kun je ook <th> ipv <td> gebruiken. Wellicht toch handig om je code nog eens goed door te nemen. ;-)
Gewijzigd op 26/05/2010 03:16:57 door Wolf Wolf
Blanche:
Als een query mislukt, wil je met behulp van mysql_error() altijd de foutmelding achterhalen:
Of nog een snellere methode:
'or die' is geen snellere methode, maar een vreemde methode. Om welke reden zou je complete script moeten stoppen omdat een query faalt? Lijkt me stuk beter een netter foutmelding te geven en daarna dus de rest van je pagina gewoon te laten laden.