Ik zit een klein forum achtig iets te maken maar ik kom met het volgende probleem

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);
Je controleert nergens of je query's gelukt zijn, dit wordt duidelijk telkens wel gedaan in die tutorial. Dus nogmaals lezen is de boodschap.

$_GET['f'] moet je gebruiken btw.

Bedoel je dit met het checken van de QUERY????


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[sub]', '$_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>");
}
?>
jij doet dit:
$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...
Maar wat als hij nu om een of andere reden niet in je database is gekomen? Dan zegt uw script nog steeds: "De query is gelukt, ...."

En daar zit je probleem.
Ik heb het all opgelost ;) het was geen sql fout zoals ik all zei lag het aan dit
$_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:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.

Luister je wel naar het commentaar wat hier gegeven wordt?

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.
Sorry dat ik niet luister maar ik ga vanuit de syntaxis die bij mij werken en
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[]; ??
Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>

Reageren