Mysql Abfrage passiert nicht

xGutaxJungex

Mitglied
Halli Hallo,
ich habe mir eine Galerie zuzusammen gebaut und bräuchte noch mal kurz Hilfe ^^.
Es hat zwar alles geklappt mit dem Hochladen etc, aber jetzt mein Problem.

PHP:
  } elseif( $user = $db->id_get("galerie", $_GET['id'] )) {
echo '<div id="archive">';
  $resultat = $db->get("galerie");
foreach( $db->fetch_query( "SELECT * FROM galerie WHERE id = '$galerie[id]'" ) as $galerie )
   echo '<div style="float: left; margin-bottom: 10px;"><a href="/galerie/'.htmlspecialchars( $galerie['setbild']).'">
             <img src="/galerie/'.$galerie['setbild'].'" alt="Bild wird geladen." width="200" height="200" /></a></div>
           <div style="float: left; padding-left: 15px;">
           <div style="color: #ffffff; width: 400px;">Titel: '.htmlspecialchars( $galerie['titel']).'</div>
           <div style="color: #ffffff; width: 400px;">Autor: '.htmlspecialchars( $galerie['autor']).'</div>
           <div style="color: #ffffff; width: 400px;">Beschreibung zum Bild: '.htmlspecialchars( $galerie['beschreibung']).'</div>
           </div>
           <div style="clear: both;"></div>
           ';
echo '</div>';
} else echo "Kein Bild unter diesem Link gefunden!";

Wenn ich darauf gehe, sagen wir das Bild hat die ID 15, dann passiert halt nichts, dort kommt mein CSS Code, aber kein Inhalt also das ECHO wird sozusagen garnicht beachtet, könntet ihr mir sagen, woran es liegen könnte?
Ohne die Zeile:

PHP:
foreach( $db->fetch_query( "SELECT * FROM galerie WHERE id = '$galerie[id]'" ) as $galerie )

Geht alles, aber dann zeigt er alle an die ich in der Tabelle galerie habe :/ .
 
Hallo xGutaxJungex,

ich würde mal behaupten, dass dein echo ignoriert wird, da dein Anweisungsblock nach "foreach" nicht geklammert ist ;).

Du könntest es also mal so probieren:

PHP:
foreach( $db->fetch_query( "SELECT * FROM galerie WHERE id = '$galerie[id]'" ) as $galerie ) {
   echo '<div style="float: left; margin-bottom: 10px;"><a href="/galerie/'.htmlspecialchars( $galerie['setbild']).'">
             <img src="/galerie/'.$galerie['setbild'].'" alt="Bild wird geladen." width="200" height="200" /></a></div>
           <div style="float: left; padding-left: 15px;">
           <div style="color: #ffffff; width: 400px;">Titel: '.htmlspecialchars( $galerie['titel']).'</div>
           <div style="color: #ffffff; width: 400px;">Autor: '.htmlspecialchars( $galerie['autor']).'</div>
           <div style="color: #ffffff; width: 400px;">Beschreibung zum Bild: '.htmlspecialchars( $galerie['beschreibung']).'</div>
           </div>
           <div style="clear: both;"></div>
           ';
echo '</div>';
}
 
Ohne zu wissen was $db->fetch_query macht, würde ich sagen das die Zeile:
PHP:
foreach( $db->fetch_query( "SELECT * FROM galerie WHERE id = '$galerie[id]'" ) as $galerie )
so aussehen müsste
PHP:
$galeries=$db->fetch_query( "SELECT * FROM galerie WHERE id = '$galerie[id]'" );
foreach( $galeries as $galerie )

Außerdem sollte man auch, wenn man die Klammern nicht braucht sie trotzdem setzen, denn sonst wird der Code schnell unübersichtlich.
 
Zuletzt bearbeitet:
Zurück