Willkommen in der Webstatt Zum Webstatt Blog und Stories
Al3x0r Al3x0r am 26.05.06 22:51

<?php
$topic_id = $_GET['topic_id'];
$query2 = mysql_query("SELECT * FROM `posts` WHERE `topic_id` = '$topic_id'");
$row2 = mysql_fetch_object($query2);
$query = mysql_query("SELECT * FROM `topics` WHERE `topic_id` = '$topic_id'");
while($row=mysql_fetch_object($query)) {
echo
'<tr>
<td></td>
<td>'.$row2->post_text.'</td>
</tr>
';
}
?>



und diese Fehlermeldung:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\webdesign\forum_langsam\forum\view_topic.php on line 9

Man möge es mir verzeihen aber mir fehlt anscheinend derzeit der Blick fürs offensichtliche oder so. Ich weiß aufjeden fall nicht warum das nun falsch ist...

vielleicht könnt ihr mir ja dazu was sagen...

danke
mfg Alex

netcup.de Warum gibt es hier Werbung?
Wasili am 26.05.06 22:56

$query2 = mysql_query("SELECT * FROM `posts` WHERE `topic_id` = '$topic_id'") or die(mysql_error());
?

Und das selbe noch beim Zweiten Query.

Achja, bevor ichs vergess:

$topic_id = mysql_real_escape_string(stripslashes($_GET['topic_id']));

EDIT: mysql_fetch_assoc() wäre leistungsfähiger als mysql_fetch_object() ;)

der_nic der_nic am 26.05.06 22:56

probiers mal so:

<?php
$topic_id = $_GET['topic_id'];
$query2 = mysql_query("SELECT * FROM `posts` WHERE `topic_id` = '".$topic_id."'");
$row2 = mysql_fetch_object($query2);
$query = mysql_query("SELECT * FROM `topics` WHERE `topic_id` = '".$topic_id."'");
while($row=mysql_fetch_object($query)) {
echo
'<tr>
<td></td>
<td>'.$row2->post_text.'</td>
</tr>
';
}
?>

Al3x0r Al3x0r am 26.05.06 22:58

Quote
Original von der_nic
probiers mal so:

<?php
$topic_id = $_GET['topic_id'];
$query2 = mysql_query("SELECT * FROM `posts` WHERE `topic_id` = '".$topic_id."'");
$row2 = mysql_fetch_object($query2);
$query = mysql_query("SELECT * FROM `topics` WHERE `topic_id` = '".$topic_id."'");
while($row=mysql_fetch_object($query)) {
echo
'<tr>
<td></td>
<td>'.$row2->post_text.'</td>
</tr>
';
}
?>



Geht leider nicht....

Ähm und joa so Sachen wie injektions aussperren etc. muss ich noch machen, ich will nur erstmal den grundcode fertig haben udn dann den ganzen kram absichern und überarbeiten.


edit:// Oh nein wie doof, man sollte Felder, die man anspricht auch immer vorher erstellen. Das kommt davon wenn man 10000 Browser-Fenster gleichzeitig offen hat :D

Michael Michael am 26.05.06 22:59

@der_nic daran liegt es sicher nicht.

Ich finde es immer hilfreich, das Query einfach mal mit print ausgeben zu lassen, dann sieht man Fehler meist direkt.
Also einfach print "SELECT * FROM `posts` WHERE `topic_id` = '$topic_id'";

Ansonsten die üblichen Fragen: Gibt es das Feld in der entsprechenden Tabelle (welches der beiden Queries schlägt denn fehl?)

Michael

Wasili am 26.05.06 22:59

$query2 = mysql_query("SELECT * FROM `posts` WHERE `topic_id` = '$topic_id'") or die(mysql_error());
?

(Nochmal...)

Wird da was ausgegeben? Wenn nicht das gleiche beim 2ten Query machen.

der_nic der_nic am 26.05.06 23:01

kann es sein das topic_id in der MySql-Tabelle als Integer (int) festgelegt ist? dann musst dus mal so probieren:
mysql_query("SELECT * FROM `posts` WHERE `topic_id` = ".$topic_id."");

Al3x0r Al3x0r am 26.05.06 23:02

Es war einfach ein absolut peinlicher Fehler, ich habe die Tabelle lokal exportiert und dann auf meinem server importiert. Dabei habe ich nicht gemerkt, dass er bestimmt Felder (u.a. topic_id) nicht erstellt hat.

danke für eure Hilfe.

mfg Alex

milahu milahu am 26.05.06 23:26

der_nic, nur am Rande: Man kann alle Werte mit Anführungszeichen maskieren, bei Integern ist dies aber nur nicht nötig. Verboten ist es nicht. ;)

der_nic der_nic am 26.05.06 23:29

echt? ich hab mal extrem lang nach einem Fehler gesucht und ich hab ihn einfach nicht gefunden, bis ich mal die ' vor der Zahl weggemacht habe und dann liefs:D?!! aber egal

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt