ugrás a tartalomhoz

Adatbázis listázás hol nem ír ki semmit, hol lehagy egy sort

Sovereign · 2006. Dec. 22. (P), 13.26
Tudnátok nekem segíteni?!

Van egy olyan problémám, hogy php-ből listázok ki egy adatbázist. számítógép alkatrészekről tárol infókat. Gyártó, kategória, ár, stb stb. És listázáskor egy sort sem ír ki egyszerűen. Némelyiknél meg egyet lehagy. Ha közvetlenül mysql-ből listázoim kiírja.

Mi lehet a probléma???
 
1

?!

Délczeg Gábor · 2006. Dec. 22. (P), 13.33
Elsosorban az, hogy nem masoltal ide egy sornyi kodot sem... ;-)
2

válasz

Sovereign · 2006. Dec. 22. (P), 14.15
A kérés:
if($gyarto !== 'Kérem válasszon') {$q = "SELECT `kategoria`,`gyarto`,`tipus`,`ar` FROM `termekek` WHERE gyarto LIKE '$gyarto'";}
if($kategoria !== 'Kérem válasszon') {$q = "SELECT `kategoria`,`gyarto`,`tipus`,`ar` FROM `termekek` WHERE kategoria LIKE '$kategoria'";}

$result = mysql_q($adatb,$q);
$eredmeny = mysql_fetch_assoc($result);
while ($eredmeny = mysql_fetch_assoc($result))
{
print ...
}

a függvények:

function mysql_q($db,$qry)
{
$host = 'localhost';
$user = 'user';
$pass = 'password';

$kapcsolat = mysql_connect($host,$user,$pass)
or die ('Hiba! '.mysql_error($kapcsolat));

mysql_select_db($db,$kapcsolat) or die ('Hiba!'.mysql_error($kapcsolat));

$eredmeny = mysql_query($qry,$kapcsolat);

mysql_close($kapcsolat);

return($eredmeny);
}
3

kettő

KergeKacsa · 2006. Dec. 22. (P), 14.39
Itt a hiba:
$eredmeny = mysql_fetch_assoc($result);
while ($eredmeny = mysql_fetch_assoc($result))

Elsőnek fetch-eled az első sort, majd semmit nem csinálsz vele, és mész tovább a többi sorra (ha van). Így az első sor elveszik. (Ha csak az az egy sor van, akkor 0 sorod lesz kiírva.)
Töröld ki a while elötti sort.

És egy kérdés: Minek minden query-hez mysql_connect/close?
Sokkal lassabb mindig kapcsolódni, lezárni, mintha az oldal elején kapcsolódnál, és a végén lekapcsolódnál róla (bár a lekapcsolás automatikus, ha jól tudom).
4

KÖSZ

Sovereign · 2006. Dec. 22. (P), 15.32
Kösz!

A kapcsolódással kapcsolatos észrevételt is! :)