google 0 Share Posted July 17, 2005 Sajnos nekem meggyûlt a bajom ezzel. Pedig rém egyszerû script, de valamiért nem mûködik úgy, ahogy kellene. Megszámolja a rekordokat egy táblában, majd kiíratja õket, de 1 oldalra csak 1 darabot belõle. Létrehoz linkeket, amelyekkel vissza, tovább, illetve az adott számú oldalra lehet ugrani. $szam = "SELECT * FROM munkak"; $res = mysql_query($szam,$kapcsolat); $sorszam = mysql_num_rows($res); $limit = 1; if(empty($lap)) { $lap = 1; } $limitval = $lap * $limit - ($limit); $qu = "SELECT * FROM munkak LIMIT $limitval, $limit"; $result = mysql_query($qu,$kapcsolat) or die ("Nem sikerült a lekérdezés!"); if(mysql_num_rows($result) == 0 ) { echo "Nincs munka az adatbázisban."; } while($sorez = mysql_fetch_assoc($result)) { //kiíratások stb. } if($lap != 1) { $lapprev = $lap-1; echo "<a href='websites.php?lap=$lapprev'>Elõzõ</a>"; } else { echo "Elõzõ"; } for($i=1; $i<=$sorszam; $i++) { if($i == $lap) { echo $i." "; } else { echo "<a href='websites.php?lap=$i'>$i</a>"; } } if(($sorszam - ($limit * $lap))>0) { $lapkov = $lap+1; echo "<a href='websites.php?lap=$lapkov'>Következõ</a>"; } else { echo "Következõ"; } Ehelyett azt csinálja, hogy fogja a legelsõ rekordot és kiírja, és hiába ugrálok tovább, ugyanazt a rekordot írja ki mindig, illetve az elõzõ feliratból nem csinál linket. Link to comment Share on other sites More sharing options...
ocsi 0 Share Posted July 17, 2005 A scriptnek csak az elsõ néhány sorát olvastam el. Tanácstalan vagyok, mivel még soha sem használtam a LIMIT SQL parancsot.... Viszont nem értem, hogy te miért teszed ezt? 1.lépésben lekérdezed az egész táblát, csak azért hogy megszámold a sorokat. Erre elég lenne csak 1 'oszlopot' lekérdezni.... Majd a 2. lépésben újra lekérdezel egy olyan sort, amit már egyszer lekértél.. Fölösegesen terheled az SQL szervert. Ahogy én csinálom: Lekérdezek mindent ( ahogy te az elsõ lépésben) és a mysql_data_seek -el pozícionálok. ( ez ugyan úgy mûködik mint a mysql_fetch_array csak egy számmal tudsz lépkedni benne) És így kiválasztod a neked kellõ sort! ( a többit most nincs energiám átnézni...) Link to comment Share on other sites More sharing options...
google 0 Author Share Posted July 17, 2005 A limit nagyon hasznos dolog, sokat használom. Ámde. Már többféle megoldást próbáltam a sorszámozásra. Egyik sem akar mûködni. Ha lesz energiád ( ), akkor megtennéd nekem, hogy beidézel egy olyan scriptet, ami mûködik is? Egy tábla rekordjait íratja ki, de minden oldalra csak egyet, a további oldalakat "virtuálisan" hozza létre. Link to comment Share on other sites More sharing options...
ocsi 0 Share Posted July 18, 2005 A kódodban nem találtam hibát, de én ilyet még nem használtam: if(empty($lap)) { $lap = 1; } Próbáld meg így: if($lap ==0) {$lap=1;} Ha így sem mûküdik akkor nem tudom hol lehet a hiba.... Link to comment Share on other sites More sharing options...
google 0 Author Share Posted July 18, 2005 Az empty az ugyanazt csinálja. Azért megpróbálom, jó volna, ha így mûködne... Link to comment Share on other sites More sharing options...
ocsi 0 Share Posted July 18, 2005 Próbáljuk meg megkeresni a hiba helyét: Próbáld meg ezt a címet: websites.php?lap=2 Ha itt is az elsõ lapot hozza ki akkor az oldal felépítésénél van a gond, ha nem akkor a navigációnál... Link to comment Share on other sites More sharing options...
google 0 Author Share Posted July 18, 2005 Persze, már próbáltam. A lap kijön (sõt, még a 6-os, 126-os is, ami az adatbázis alapján nem is létezhet...), az eredmény ugyanaz: elsõ rekord kiíratva, elõzõ link nincs. Link to comment Share on other sites More sharing options...
ocsi 0 Share Posted July 18, 2005 Szúrd be a while ciklus elé hogy: print $limit; print $limitval; print $lap és még ami van változó( mármint olyan amit használsz, és nem olyan ami a MYSQL hez kell) Így próbálunk debugg olni... Link to comment Share on other sites More sharing options...
Kovács Dávid ( Davs ) 0 Share Posted July 18, 2005 A limit mire való? Lehet, hogy pont erre, de én a mysql_fetch_rows-t szoktam használni a queryk kiírására...Így egy tömböt kapunk(ha jól emléákszem...Már nem is tudom, hogy mikor web-programztam utoljára...) $res=mysql_query(query) ; $x=mysql_fetch_row($res) ; Link to comment Share on other sites More sharing options...
google 0 Author Share Posted July 18, 2005 A limit azt szabja meg, hogy a lekérdezett rekordok közül hányat íratunk ki, bõvített formájában (1, 1) pedig azt, hogy - jelen esetben - a másodiktól indulunk, és egyet írunk ki. Én asszociatív tömböt használok (az is egy tömb), de nem a tömbnél van a bibi, hanem a $lap változónál. Valamiért annak minding 1 az értéke. Link to comment Share on other sites More sharing options...
ocsi 0 Share Posted July 18, 2005 Próbaképpen csináld meg ezt: if(empty($lap)) { $lap = 2; } Mert én csak arra tudok gondolni hogy itt a bibi. Ha az így kapott eredmény ugyanaz mint eddig, csak a 2. lapal... akkor meg van a bibi Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now