kostenloser Webspace werbefrei: lima-city


php/mysql problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    dueselps

    dueselps hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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


  4. Versuch's mal so:

    Ersetze
    if($db->affected_rows)
    durch
    if ($db->affected_rows!=-1)
    .
    Ganz allgemein:
    ini_set('display_errors', '1');
    error_reporting(E_ALL);
    zusammen mit einigen echos schadet auch nie.

    Beitrag zuletzt geändert: 2.3.2014 22:04:36 von suge
  5. 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.
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!