MYSQL unterschlägt eine Zeile

swerix

Grünschnabel
Hallo,
ich habe eine Suche, bei der ich das folgende Script nutze.
Allerdings fehlt bei der Ausgabe immer die Erste Zeile. Alle anderen Zeilen werden richtig abgebildet.
PHP:
<?PHP

$Prozent='%';
$Anf = "'";
$Test= $Name.$Prozent;
$Suche=$Prozent.$Test;



$query =  "SELECT * FROM `Pumpen` WHERE `Name` LIKE ".$Anf.$Suche.$Anf." LIMIT 0, 100 "; 
 




/* Mit Datenbank Verbinden */

$link = mysql_connect('db471.1und1.de', 'dbo138999554', 'Passwort');
if (!$link) {
   die('keine Verbindung möglich: ' . mysql_error());
}

/* Mit Tabelle verbinden */

$db_selected = mysql_select_db('db138999554', $link);
if (!$db_selected) {
   die ('Kann Pumpen nicht benutzen : ' . mysql_error());
}


/* Ausgabe des Ergebnisses */


$result = mysql_query($query);
if (!$result) {
   die('Ungültige Abfrage: ' . mysql_error());
}

if (empty($result))
{
echo '<font face="Arial, Helvetica, sans-serif">Ihre Suche fand keine Ergebnisse</font><br>';
}

echo '<font face="Arial, Helvetica, sans-serif">Ihr Suchergebniss zu '.$Name.'</font><br><br>';

$line = mysql_fetch_array($result, MYSQL_ASSOC);


if (empty($line))
{
echo '<font face="Arial, Helvetica, sans-serif">Ihre Suche fand keine Ergebnisse</font><br><br><br>';
}



echo '<table width="100%" border="1">'."<br>";
echo '<tr>    <td><font face="Arial, Helvetica, sans-serif">Gruppe</font></td>    <td><font face="Arial, Helvetica, sans-serif">Art.-Nr.</font></td>    <td><font face="Arial, Helvetica, sans-serif">Bezeichnung</font></td>    <td><font face="Arial, Helvetica, sans-serif">Antrieb</font></td>    <td><font face="Arial, Helvetica, sans-serif">Info</font></td>    <td><font face="Arial, Helvetica, sans-serif">Datenblatt</font></td>  </tr>';
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {

   echo "\t<tr>\n";
   foreach ($line as $col_value) {
       echo '<td><font face="Arial, Helvetica, sans-serif">'.$col_value.'</font></td>';
   }
   echo "\t</tr>\n";
}


echo "</table>\n";
echo '<br>';



echo '<font face="Arial, Helvetica, sans-serif">Wenn Sie erneut suchen möchten klicken Sie <a href="javascript:history.back()">hier</a>.</font>';

/* Freigeben des Resultates*/
mysql_free_result($result);
mysql_close($link);




?>
 
Hi,

mit der ersten Anweisung "$line = mysql_fetch_array()" setzt du den Ergebniszeiger auf das erste Ergebnis. Mit jeder weiteren Anweisung verschiebst du den Zeiger um eine Position nach vorne. In deinem Fall prüfst du mit der ersten fetch_array-Anweisung ob ein Ergebnis vorliegt und gehst dann mit der zweiten das Ergebnis durch. Dadurch das du allerdings schon die fetch_array Anweisung drin hattest, beginnt die zweite Schleife erst bei der zweiten, da der Ergebniszeiger ja bereits nach vorne geschoben wurde.

Prüfe lieber mit mysql_num_rows ob was gefunden wurde, und gehe dann das Ergebnis mit mysql_fetch_array durch, dann klappt auch alles, von Anfang an ;)
 
Zurück