[PHP & MySQL] not a valid MySQL result resource?!

Lena-Aquila
Hi Leute,
ich bin mal wieder mit meinem Latein am Ende...
Und zwar habe ich folgenden 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:
39:
40:
41:
42:
43:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
include "../database.inc.php";
echo "<form action=$_SERVER[PHP_SELF] method=post>
       <input type=hidden name=by value=Test>
       <input type=hidden name=kat value=3>
       Titel:<br>
       <input type=text name=title><br>
       Nachricht:<br>
       <textarea name=post1 wrap=PHYSICAL></textarea><br>
       <input type=submit name="send" value=Abschicken>
       </form>";
       if (isset($_POST[send])) {
         $time date("." "." Y);
         echo $time "<br>";
         echo $_POST[by] . "<br>";
         $insertthread "INSERT INTO `threads` ( `id` , `titel` , `katid` , `by` , `date` , `site` )
VALUES (
NULL , 'flala', '2', 'Test', '16.12.2007', 'vrh'
)
";
         $threadres mysql_query($insertthread);
         $thread mysql_fetch_assoc($threadres);
         $byid "SELECT * FROM `mitglieder` WHERE `name`='$_POST[by]'";
         $byidres mysql_query($byid);
         $by mysql_fetch_assoc($byidres);
         $insertpost "INSERT INTO `posts` VALUES ('', '$thread[id]', '$by[id]', '$_POST[post1]', '$time')";
         if (mysql_query($insertpost)) {
           echo "Thema erfolgreich erstellt.";
         }
       }
?>
</body>
</html>

und ich kriege
Zitat:

16.12.2007
Test

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\gg\forum\test.php on line 31
Thema erfolgreich erstellt.

raus. Es funktioniert alles - bis auf dieses verflixte mysql_fetch_assoc() in Z.30... Und ich habe keine Ahnung, wieso... Wahrscheinlich seh' ich mal wieder den Wald vor lauer Bäumen nicht.
LG, LMB, Aqui
Lena-Aquila
Das sollen einfach nur Platzhalterdaten sein, um zu sehen ob es an den Variablen liegt...
ProtexX
Möglicherweise liegt es daran, dass bereits ein Fehler in Zeile 30 Auftritt, weshalb $threadres von mysql_query() kein richtiger Wert zugeordnet wird.
Ich würde sagen, dass liegt daran, dass du in deinem Query versuchst der "ID" einen Wert von NULL zuzuordnen. Das Problem könnte darin bestehen, dass "ID" die Eigenschaft "Not null" zugeordnet ist.

Versuch mal, deinen Query wie folgt umzuändern:
code:
1:
INSERT INTO `threads` (`titel` , `katid` , `by` , `date` , `site` ) VALUES ('flala', '2', 'Test', '16.12.2007', 'vrh')
Yanu
Mit der Lösung von ProtexX sollte es funktionieren - ich hätte aber noch einen Tipp für dich. Wenn du diesen angewendet hättest, dann wäre auch ausgegeben worden, dass das nicht mit NULL sein darf.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
$insertthread "INSERT INTO `threads` ( `id` , `titel` , `katid` , `by` , `date` , `site` )
VALUES (
NULL , 'flala', '2', 'Test', '16.12.2007', 'vrh'
)
";
$threadres mysql_query($insertthread) or die(mysql_error());
$thread mysql_fetch_assoc($threadres);

$thread mysql_fetch_assoc($threadres); ?? Was hast Du vor?

Füge immer hinter mysql_query() noch: or die(mysql_error());

Das bewirkt, dass dein Script gestoppt wird, also nicht mehr ausgeführt und dass du eine Fehlermeldung bekommst. Also in diesem Fall, würde diese etwa so aussehen: NULL is not a vaild argument for id.
Lena-Aquila
DAnke, ich probier's gleich aus!
LG, LMB, Aqui