Es wird nur eine Ausgabe gemacht

Udem

Mitglied
Halli Hallo,
wenn ich das hier:

PHP:
//Wenn gesucht wird, die Suche nicht leer ist und mehr als 3 Zeichen hat
if(isset($_GET['suche']) && !empty($_GET['suche']) && $_GET['suche'][3]!=''){


//Eine klare Ausgabe der Ergebnisse 
$output = mysql_query("SELECT * FROM ".$prefix."lexikon WHERE name LIKE '%$_GET[suche]%' AND kategorie = '1'");

echo '<div style="overflow: hidden; clear: both;">';
if ( $ausgabe = mysql_fetch_assoc($output) ) {
$ausgabe['artikel'] = substr( $ausgabe['artikel'], 0, 267 );
$ausgabe['artikel'] .= "...";
echo '
<div style="float: left; width: 100px;"><img src="'.$ausgabe['cover'].'" width="60" height="85"></div>
<div style="float: left; width: 400px;"><a href="index.php?page=34&artikel='.$_GET['suche'].'"><big>'.$ausgabe['name'].'</big></a> <sup>(PC)</sup><br>
'.$ausgabe['artikel'].'
</div>
';
  }
 echo '</div>';

  }

Auf meine Seite setze, dann wird nur 1 Ausgabe gemacht. Ich habe jetzt 2 Inhalte in meine DB eingetragen ( Batman und Batmanw ) , doch wenn ich batm dort eingebe, wird immer nur batman angezeigt, es erscheint nie batmanw bzw. beides zusammen. Erst wenn ich batmanw im Suchfeld eingebe, kommt batmanw :/.
Kann mir jemand sagen, was da falsch ist?
 
Da müsste noch eine Schleife rein mit der du alle Daten aus der Abfrage holst. So wie du es im Moment hast, holst du dir nur den ersten Datensatz.
 
In etwa so:

PHP:
echo '<div style="overflow: hidden; clear: both;">'; 
while( $ausgabe = mysql_fetch_assoc($output) )
{ 
  $ausgabe['artikel'] = substr( $ausgabe['artikel'], 0, 267 ); 
  $ausgabe['artikel'] .= "..."; 
  echo ' 
<div style="float: left; width: 100px;"><img src="'.$ausgabe['cover'].'" width="60" height="85"></div> 
<div style="float: left; width: 400px;"><a href="index.php?page=34&artikel='.$_GET['suche'].'"><big>'.$ausgabe['name'].'</big></a> <sup>(PC)</sup><br> 
'.$ausgabe['artikel'].' 
</div> 
'; 
} 
echo '</div>';
 
Nunja, das man alles, was man in einem Browser eingeben kann, auch manipulieren kann. Ein _GET ist dafür sehr geeignet, Daten zu verändern. Aber keine Angst, bei POST sieht es nicht anders aus. Man sollte dringenst darauf achten, immer so zu prüfen, das möglichst viele Fälle damit behandelt sind.

Allerdings muss ich auch queicherius widersprechen:

PHP:
<?php
$str = "123 456 78";

if($str[3] == '')
{
    echo "str[3] = ''";
}
else
{
    echo "Keine Ahnung, was an str[3] steht, es ist jedenfalls nicht '' (leer)<br/>";
    printf ("str[3] = '%s' = 0x%x", $str[3], ord($str[3]));
}
?>
 
Zurück