PHP sagen was als erster zweiter dritter kommt

Hallo, ich habe eine Frage zu PHP,
da meine Forensoftware bald fertig ist und das das letzt Puzzleteil ist das ich nicht lösen kann frage ich euch.
Mein Problem ist die Beitragserstellung/Threaderstellung.
Wenn man einen Thread erstellt
sollte er als erster hineinschreiben, dann abrufen, und dann wieder schreiben, leider macht er daweil bei mir schreiben, schreiben, abrufen. Kann mir wer helfen?

Soll der in MySQL rein schreiben oder wo?

Ja Mysql

Hier nochmal:
MySQL schreiben
MySQLtabelle abrufen(genau die in die geschrieben wurde die id abrufen)
Und dann wieder in ne andere Tabelle schreiben.

Hä das raff ich ausnahmsweise mal überhaupt nicht :smiley:
Gib mal Code Schnipsel.
Weil eigentlich ist das doch einfach oder irre ich micht?
INSERT
SELECT
INSERT
oO?

ja, und das funzt aber leider net

LOL da musst mich mal aufklären oO wie schon gesagt irgendwie fehlt mir code um dir das glauben zu können.
Eigentlich hast z.B.

$sql1 = "INSERT....";
$sql2 = "SELECT....";
$sql3 = "INSERT....";

mysql_query($sql1);
mysql_query($sql2);
mysql_query($sql3);

Also natürlich grob gehalten.
Und dann rattert er doch 1 nach dem anderen ab.

Nagut habe mir die Zeit genommen, es wzu kopiere:

[code]<?

INCLUDE(’…/config/mysql.inc.php’);
session_start();

IF (ISSET($_POST[‘userid’]) && ISSET($_POST[‘password’])) {
// Falls der Benutzer das Anmeldeformular abgesendet hat:
$userid = $_POST[‘userid’];
$password = $_POST[‘password’];

$db_conn = NEW mysqli('localhost', 'root', '', 'wlfs');

IF (mysqli_connect_errno()) {
    ECHO 'Verbindungsaubau zur Datenbank fehlgeschlagen: ' . mysqli_connect_error();
    EXIT();
}

$query = 'select * from mybb_users '
 . "where username='$userid' "
 . " and password=sha1('$password') ";
 


$result = $db_conn->query($query);
IF ($result->num_rows > 0) {
    // Falls die Benutzereingaben in der Datenbank stehen,
    // wird die ID des Benutzers in der Session registriert.
    $_SESSION['5w3l2f4s1'] = $userid;
}
$db_conn->close();

}

FUNCTION zufalls_grafik($pfad) {
$verzeichnis = opendir($pfad);
WHILE($datei = readdir($verzeichnis)) {
IF(eregi(’.png’,$datei)) {
IF($datei != “.” && $dateu != “…”) {
$auswahl[] = $datei;
}
}
}
closedir($verzeichnis);
$zufall = mt_rand(0,count($auswahl)-1);
RETURN “”.$pfad."/".$auswahl[$zufall]."";
}
$test = zufalls_grafik("…/bilder/seiten/banner");

$usernameid = $_POST[‘usernameid’];
$forumid = $_POST[‘threadforumid’];
$name = $_POST[‘threaduntertitel1’];
$titel = $_POST[‘threadtitel1’];
$titel1 = $_POST[‘threadtitel1’];
$post = $_POST[‘spaw1’];

if (!get_magic_quotes_gpc()) {
$forumid = addslashes($forumid);
$usernameid = addslashes($usernameid);
$name = addslashes($name);
$titel = addslashes($titel);
$post = addslashes($post);
$id = addslashes($id);
}
@$db = new mysqli(‘localhost’, ‘root’, ‘’, ‘wlfs’);
//Verbindung überprüfen
if (mysqli_connect_errno()) {
printf(“Verbindung fehlgeschlagen: %s\n”, mysqli_connect_error());
exit();
}

//Datensatz-Inhalte festlegen
$sql_befehl = "
INSERT INTO threads (
id,
forumid,
name,
titel

) VALUES (
’’,
’" . $forumid ."’,
’" . $name ."’,
’" . $titel ."’

)";

if ($db->query($sql_befehl)) {
echo “Der Thread wurde erfolgreich gespeichert”;
} else {
echo “Datensatz Fehlgeschlagen”;
}
$db->close();
?>

  <HTML xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
Wiener Linien Fan Site | Startseite
);"> <?

IF (ISSET($_SESSION[‘5w3l2f4s1’])) {
ECHO “$naviindexangemeldet”;
} ELSE {
ECHO “$naviindex”;
}

?>

<? IF (ISSET($_SESSION['5w3l2f4s1'])) { ECHO "
"; } ELSE { ECHO "$logindata"; } ?>
<? $forumid = $_GET["forumid"]; ?> <? $threadid = $_GET["threadid"]; ?>
Login
Home > Login<? ?>
<?php @$db = new mysqli('localhost', 'root', '', 'wlfs'); //Verbindung überprüfen if (mysqli_connect_errno()) { printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error()); exit(); } INCLUDE('../config/mysql.inc.php'); $res2 = mysql_query("SELECT * FROM threads ORDER BY id LIMIT 1"); WHILE ($dsatz2 = mysql_fetch_assoc($res2)) { $threadid = "" . $dsatz2['id'] . ""; } if (!get_magic_quotes_gpc()) { $threadid1 = addslashes($threadid); } $sql_befehl = " INSERT INTO posts ( id, forumid, titel, user, post, threadid ) VALUES ( '', '" . $forumid . "', '" . $titel . "', '" . $usernameid . "', '" . $post . "', '" . $threadid1 . "' )"; if ($db->query($sql_befehl)) { echo "Der Thread wurde erfolgreich gespeichert1"; } else { echo "Datensatz Fehlgeschlagen1"; } $db->close(); ?> <? ?>
©Copyright 2007-<? ECHO strftime("%Y"); ?> by wlfs
[/code]

also erstmal würd ich nicht immer sql_connect und close machen.
einmal connect und einmal close reicht.
Macht eigentlich jeder normale mensch so^^

Was mich auch wundert, dass du 2 mal (oder etwa noch öfter?) INCLUDE(’…/config/mysql.inc.php’); machst oO

Aber wenn ich verstanden habe erstellst du nen Thread, dann fragst nach der ID und dann erstellst den Post in der DB?
Also ich hätte das mit dem Thread id holen anders gemacht. Außerdem direkt nach dem eintragen.
Dann am besten

Damit wählt er auch ja den thread.
Dann noch query kram (nach query nehm ich immer row^^ z.B. wäre $row[0] die id

if (mysql_num_rows($query) > 0) {
while(mysql_fetch_row($query)) {
$threadid = $row[0];
}
}

Dann den posts insert kram mit der threadid. So dürfte es funzen.

Danke, sehr, werde ich dann gleich auprobieren wenn ich zuHause bin!

Nein es funzt trotzdem net

:astonished: also da kann irgendwas nicht stimmen^^ hab leider kaum zeit, weil ich unbedingt meine HP fertig machen will :smiley: Deshalb warte mal auf ne antwort von jemand anders.

Moin,

mich wundert das nicht, weil $row gar nicht gesetzt wird.

while($row = mysql_num_rows($query)) //usw

MfG
myPages

Um solche Fehler zu entdecken, kann es auch nützlich sein, Notices zu verwenden.

Was sind notices?

Hinweisfehlermeldungen von PHP :wink:

Oh hab ich ganz vergessen^^ kommt vor :smiley:
War schon so müde.

if (mysql_num_rows($query) > 0) { while($row = mysql_fetch_row($query)) { $threadid = $row[0]; } }

so dürfte es richtig sein^^

Ja, aber was bewirkt das, kommt ja das gleiche raus!

Vorher hast du $row benutzt aber ich hatte vergessen es zu belegen mit dem mysql_fetch_row
nu ist es belegt.
Eigentlich dürfte es auch funktionieren oO