php/mysql problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
anschliessend kopieren
ausgeben
befehl
bekommen
betreff
bild
bildschirm
code
datenstruktur
fehler
foto
gleichen wert betreff
image
ordern
setzen
verbindung
vermutung
versuch
zeile
-
hey bei mir wird ein Fehler ausgegeben und ich finde meinen Fehler einfach nicht
<?php //error_reporting(0); include 'verbindung.php'; $betreff = $_GET['betreff']; echo ' <div class="ueberschrift"> <h2 class="ueberschrift">'.$betreff.'</h2> <hr class="ueberschrift" /> </div>'; echo '<div class="bilder">'; $befehl = 'SELECT * FROM bilder WHERE betreff LIKE $betreff ORDER BY ID DESC'; $ergebins = $db->query($befehl); if($db->affected_rows){ while($dbs=$ergebins->fetch_array(MYSQLI_ASSOC)){ $id = $dbs['id']; $image = $dbs['image']; echo '<div class="bild"> <img class="bild" src="'.$image.'" name="'.$betreff.'" alt="'.$betreff.'" /> </div>'; } } echo '</div>'; ?>
der fehler lautet:
Fatal error: Call to a member function fetch_array() on a non-object in C:\xampp\htdocs\Foto Seite\scripts\bilder.php on line 25
wäre die $befehl = ... Zeile
Ich vermute das ich mehrere werte mit dem gleichen wert betreff bekommen wiso kann er die nicht ausgeben?
Beitrag zuletzt geändert: 2.3.2014 20:49:08 von dueselps -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi
Ich vermute stark dass dein Befehl nicht in Sql ausgeführt werden kann (also fehlerhaft ist).
Leider kenne ich mich mit mysqli nicht aus und ich kenne auch deine Datenstruktur nicht, aber probiere doch folgendes:
gibt dir am Bildschirm das SQL-Statment an:
echo $befehl;
Anschliessend kopieren und in phpmyadmin ausführen, meine Vermutung ist, dass es zu einem Fehler führt weil du die Variable $betreff in '' setzen müsstest also:
SELECT * FROM bilder WHERE betreff LIKE "'.$betreff.'" ORDER BY ID DESC
Zudem sollte die $betreff-Variable ja auch noch gegen sql injection geschützt werden, das ist jetzt ja aber noch nicht das Thema.
Gruess
Meron
-
Versuch's mal so:
Ersetze
durchif($db->affected_rows)
.if ($db->affected_rows!=-1)
Ganz allgemein:
zusammen mit einigen echos schadet auch nie.ini_set('display_errors', '1'); error_reporting(E_ALL);
Beitrag zuletzt geändert: 2.3.2014 22:04:36 von suge -
Hallo!
Ich denke der Fehler liegt bei der Variable in der Abfrage.
Statt
$befehl = 'SELECT * FROM bilder WHERE betreff LIKE $betreff ORDER BY ID DESC';
würde ich
$befehl = 'SELECT * FROM bilder WHERE betreff LIKE ' . $betreff . ' ORDER BY ID DESC';
schreiben.
MfG. Simon D. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage