Webstatt.org - Community seit 2006 - 2012 (2024?)

Warning: mysql_fetch_object(): s...

Avatar user-118
26.05.2006 20:51

<?php
$topic_id = $_GET['topic_id'];
$query2 = mysql_query("SELECT * FROM `posts` WHERE `topic_id` = '$topic_id'"zwinkern;
$row2 = mysql_fetch_object($query2);
$query = mysql_query("SELECT * FROM `topics` WHERE `topic_id` = '$topic_id'"zwinkern;
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

Ich brauche keine Signatur
user-343
26.05.2006 20:56

$query2 = mysql_query("SELECT * FROM `posts` WHERE `topic_id` = '$topic_id'"zwinkern 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() zwinkern

Avatar user-162
26.05.2006 20:56

probiers mal so:

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

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
Avatar user-118
26.05.2006 20:58

Original von user-162
probiers mal so:

<?php
$topic_id = $_GET['topic_id'];
$query2 = mysql_query("SELECT * FROM `posts` WHERE `topic_id` = '".$topic_id."'"zwinkern;
$row2 = mysql_fetch_object($query2);
$query = mysql_query("SELECT * FROM `topics` WHERE `topic_id` = '".$topic_id."'"zwinkern;
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 Fettes Grinsen

Ich brauche keine Signatur
Avatar user-253
26.05.2006 20: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

user-343
26.05.2006 20:59

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

?

(Nochmal...)

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

Avatar user-162
26.05.2006 21: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.""zwinkern;

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
Avatar user-118
26.05.2006 21: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

Ich brauche keine Signatur
Avatar user-255
26.05.2006 21: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. zwinkern

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-162
26.05.2006 21: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 liefsFettes Grinsen?!! aber egal

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine