PHP database error
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\test\viewtopic.php on line 6
dit zijn de lijnen van 1 tot 6
$con = mysql_connect("host", "user", "password") or die ("Kon geen verbinding maken met de database");
$db = mysql_select_db("database") or die ("Kon geen database selecteren");
$sql = "SELECT id, sub, msg FROM comments WHERE id = $_HTTP_GET_VARS[f]";
$q = mysql_query($sql);
$res = mysql_fetch_array($q);
overigens is $_HTTP_GET_VARS volgens mij van voor 1982
Waaaaaaaar is je foutafhandeling?! Waaaaaaaaaaaaar controleer je of je query gelukt is? Waaaaaaaaaaaar echo je de error?
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
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
<?php
$con = mysql_connect("host", "user", "password") or die ("Kon geen verbinding maken met de database");
$db = mysql_select_db("test") or die ("Kon geen database selecteren");
$sql = "SELECT id, sub, msg FROM comments WHERE id = $_HTTP_GET_VARS[f]";
$q = mysql_query($sql);
$res = mysql_fetch_array($q);
$row['msg'] = nl2br(htmlentities($row['msg']));
echo "<b>" . $row['sub'] . "</b> op " . $row['datum'] . "<p>";
echo $row['msg'];
echo "------------------<br>";
echo "<b>Topics:<br></b>";
echo "------------------<p>";
$sql = "SELECT user,message FROM comments WHERE id = " . $_GET['id'];
$res = mysql_query($sql);
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo "<b>" . $row['user'] . "</b><br>";
$row['msg'] = htmlentities($row['msg']);
$row['msg'] = nl2br($row['msg']);
echo $row['bericht'] . "<p>";
}
}
else
{
echo "Er zijn geen topics's.";
}
echo "<p><a href=\"index.php\">topic's overzicht</a></p>";
?>
$con = mysql_connect("host", "user", "password") or die ("Kon geen verbinding maken met de database");
$db = mysql_select_db("test") or die ("Kon geen database selecteren");
$sql = "SELECT id, sub, msg FROM comments WHERE id = $_HTTP_GET_VARS[f]";
$q = mysql_query($sql);
$res = mysql_fetch_array($q);
$row['msg'] = nl2br(htmlentities($row['msg']));
echo "<b>" . $row['sub'] . "</b> op " . $row['datum'] . "<p>";
echo $row['msg'];
echo "------------------<br>";
echo "<b>Topics:<br></b>";
echo "------------------<p>";
$sql = "SELECT user,message FROM comments WHERE id = " . $_GET['id'];
$res = mysql_query($sql);
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo "<b>" . $row['user'] . "</b><br>";
$row['msg'] = htmlentities($row['msg']);
$row['msg'] = nl2br($row['msg']);
echo $row['bericht'] . "<p>";
}
}
else
{
echo "Er zijn geen topics's.";
}
echo "<p><a href=\"index.php\">topic's overzicht</a></p>";
?>
De handleiding nog niet gelezen zie ik??
alleen weet ik niet precies wat :\
Ok, zolang je dat niet doet kunnen we je niet verder helpen.
Wat is dat flauw... ik heb het toch maar zitten lezen en het heeft niet echt geholpen want het is een herhaling :\
Daarnet zei je nog dat je het niet gelezen hebt en niet zal lezen ook..
was ongeveer 30 min geleden ook nog :O
$_GET['f'] moet je gebruiken btw.
if($_POST['msg'] == "")
{
echo("<center>De query is niet gelukt! (Geen message), terug naar <a href=index.php title=homepage>homepage</a></center>");
}
elseif($_POST['user'] == "")
{
echo("<center>De query is niet gelukt! (Geen user), terug naar <a href=index.php title=homepage>homepage</a></center>");
}
elseif($_POST['sub'] == "")
{
echo("<center>De query is niet gelukt! (Geen subject), terug naar <a href=index.php title=homepage>homepage</a></center>");
}
else
{
$id = mysql_query("SELECT id FROM comments");
$id1 = $id ++;
$datum = date("Y-m-d");
$tijd = date("H:i");
$query = mysql_query("INSERT INTO comments
(id, sub, user, msg, datum, tijd, visable)
VALUES ('$id1', '$_POST', '$_POST[user]', '$_POST[msg]', '$datum', '$tijd', '$_POST[visable]')");
echo("<center>De query is gelukt, terug naar <a href=index.php title=homepage>homepage</a></center>");
}
?>
$query = mysql_query("INSERT INTO comments
(id, sub, user, msg, datum, tijd, visable)
VALUES ('$id1', '$_POST', '$_POST[user]', '$_POST[msg]', '$datum', '$tijd', '$_POST[visable]')");
echo("<center>De query is gelukt, terug naar <a href=index.php title=homepage>homepage</a></center>");
Je zegt dat de query gelukt is. Maar hoe weet jij dat zo zeker als je het niet eens controleerd?
Lees hem nog maar eens..
hij komt in me database en als ik een query het ophalen van de msg user time en date dan komt alles gewoon tevoorschijn...
En daar zit je probleem.
$_HTTP_GET_VARS[f]
de volgende regel:
$sql = "SELECT id,sub,msg FROM comments WHERE id = 'HTTP_GET_VARS[f]'";
' de commas '
het was eerst:
$sql = "SELECT id,sub,msg FROM comments WHERE id = HTTP_GET_VARS[f]";
' geen commas '
Maar toch zeer bedankt voor jullie hulp :D
Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door MRZ
Geen HTTP_* gebruiken. We hebben $_POST en $_GET daarvoor.
Verder mist er foutafhandeling. Een query lukt niet vanzelfsprekend.
Sta er verder niet van te kijken als op een gegeven moment je database leeg is. Zoek maar even op wat sql injection is.
dat ik een sql tutorial moet door nemen vind ik een beetje flauw als ik een kleine coma alleen ben vergeten maar mijn excuses zou u mij kunnen uitleggen hoe ik dan dit kan oplossen:
$sql = "SELECT id,sub,msg FROM comments WHERE id = 'HTTP_GET_VARS[f]'";
echo "<a href=\"viewtopic.php?f=" . $row['id'] . "\">" . $row['sub'] . "</a><br>";
de url in me browser word bijv http://localhost/viewtopic.php?f=1
hoe zou ik dan die "1" moeten verkrijgen in mijn php script met een $_GET[]; ??