PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : select geht nur wenn mehr als 2 Datensätze


theresa
05.02.2008, 13:54:11
Hi

Habe eine Suchseite, die bringt immer den ersten Datensatz nicht!

PS: ich weiss dass die Suche mit 3 nicht gut ist, habe aber für das Forum die Begriffe rausgenommen, damit der Code kürzer wird

<?php
$query = "SELECT * FROM shops
left join serv_fili on shops.id_shop=serv_fili.id_shop
left join servicefilialen on serv_fili.id_services=servicefilialen.id_services
WHERE ort LIKE '$suchbegriff'
AND serv_fili.id_services LIKE '$id_services'
GROUP by shops.id_shop
order by ort";
$result = mysql_query($query,$link);
$row2 = mysql_fetch_array($result);
$reihen = mysql_num_rows($result);
if($id_services!='%')
{
$produkt=$row2['produkt'];
$express_ergaenzung=$row2['express_ergaenzung'];
if(!empty($row2['express']))
{
?>Express-Service<?php
}
echo"&nbsp;$produkt&nbsp;$express_ergaenzung";
}

elseif($_REQUEST['suchbegriff']=='alle')
{
echo"alle Filialen";
}
elseif($suchbegriff!='%')
{
echo"$suchbegriff";
}

?>
Gefunden Filialen: <?php echo "A $reihen"?>
<?php

/*bis hierher geht es und wenn es mehr als 1 Filiale ist, geht es auch bestens, doch bei 1 geht es hier nicht weiter*/

while ($row = mysql_fetch_array($result))
{
$id_shop2=$row[id_shop];
include("filial2.php");
}
unset($suchbegriff);
unset($id_services);
?>


Kann es daran liegen dass ich zuerst ein Output machen mit den Überbegriffen?

$row2 = mysql_fetch_array($result);
$produkt=$row2['produkt'];

und dann erst weiter unten

while ($row = mysql_fetch_array($result))
{
$id_shop2=$row[id_shop];
include("filial2.php");
}

Wie mache ich es anders, dass ich zuerst die Begriffe ausgeben kann, und dann die SChleife?

defabricator
05.02.2008, 15:30:26
Ja. mysql_fetch_array() nimmt den nächsten Datensatz aus dem Ergebnis. Der ist dann erstmal raus. Wenn Du also einen Datensatz vor der while Schleife mit fetch_array herausnimmst, wird er in der while Schleife nicht mehr behandelt.