Query in Query

Hallo,

scheinbar ist es nicht erlaubt, innerhalb eines INSERT-Statements die betreffende Tabelle mit einem SELECT abzufragen. Da bleibt dann wohl keine anderer Weg als das ganze in zwei Einzelschritten zu erledigen.

Grüße,
Matthias
 
so, ich mal wieder:

jetzt sieht das ganze mit zwei query so aus:

als error kommt:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[1]' at line 1

PHP:
$result = mysql_query('SELECT MAX(`pid`) FROM mybb_posts WHERE tid = $thread[1]') OR die(mysql_error());

mysql_query ("INSERT INTO mybb_posts (subject,message,uid,fid,tid,visible,replyto) values ('" . $_POST['head'] . "','" . $_POST['data'] . "','" . $_POST['user'] . "','" . $thread[0] . "','" . $thread[1] . "','1','$result')");

gruß
 
Hallo,

bei Strings mit einfachen Anführszeichen wird keine Variableninterpolation durchgeführt. Benutze also entweder doppelte Anführungszeichen oder löse das Problem wie in deinem zweiten Query mit dem .-Operator.

Grüße,
Matthias
 
Matthias Reitinger hat gesagt.:
Hallo,

bei Strings mit einfachen Anführszeichen wird keine Variableninterpolation durchgeführt. Benutze also entweder doppelte Anführungszeichen oder löse das Problem wie in deinem zweiten Query mit dem .-Operator.

Grüße,
Matthias

wenn ich ganz ehrlich bin hab ich nicht verstanden was du meinst

gruß
 
ok, also dann müsste es doch auch so aussehen, oder:

PHP:
$result = mysql_query('SELECT MAX(`pid`) FROM mybb_posts WHERE tid = "$thread[1]"') OR die(mysql_error());
echo 'Die ID des Posts ist '.$result;

mysql_query ("INSERT INTO mybb_posts (subject,message,uid,fid,tid,visible,replyto) values ('" . $_POST['head'] . "','" . $_POST['data'] . "','" . $_POST['user'] . "','" . $thread[0] . "','" . $thread[1] . "','1','" . $result . "')");

Es kommt keine Fehlermeldung mehr, allerdings trägt er unter der Spalte replyto immer 0 ein.

bei echo der ersten Abfrage krieg ich auch ein komisches ergebnis:

Die ID des Posts ist Resource id #80

eigentlich müsste es so aussehen: Die ID des Posts ist 3500
 
Hi,

probiere mal folgendes
PHP:
$result = mysql_query("SELECT MAX(`pid`) AS id FROM mybb_posts WHERE tid = '".$thread[1]."'") OR die(mysql_error());

$row = mysql_fetch_array($result);
echo 'Die ID des Posts ist '.$row['id'];

mysql_query ("INSERT INTO mybb_posts (subject,message,uid,fid,tid,visible,replyto) values ('" . $_POST['head'] . "','" . $_POST['data'] . "','" . $_POST['user'] . "','" . $thread[0] . "','" . $thread[1] . "','1','" . $row['id'] . "')");

Gruß.
 
Zuletzt bearbeitet:
Zurück