while() izostavlja poslednji podatak u SQL

1

while() izostavlja poslednji podatak u SQL

offline
  • Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
  • Pridružio: 13 Jun 2010
  • Poruke: 307
  • Gde živiš: Subotica

Sad sam došao do jednog blesavog problema.
Imam jednu tabelu u koju ubacujem podatke kada se ulogovao admnistrator u administraciju, koliko dugo je bio prisutan, njegov ID, IP i sesija za čišćenje starih log-podataka kada istekne godinu dana.

E sada izlistavam tu tabelu sa "while" funkcijom da vidim zadnjih 50 logova u administraciji.

Problem je što poslednji upisan podatak neće da prikaže i neznam zašto. Ako ima na primer 20 logova, ja vidim samo 19. ZAŠTO?

Ovo do sada nisam video u praksi.
Probao sam i sa "foreach" probao sam i sa "loop" isto.

Šta kažu iskusniji programeri?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12431

Nevezano za jezik, mislim da grešiš negde u samoj srži uslova zbog čega dobijaš jedan manje prikaz. Proveri ponovo samu srž uslova (neretko se pogreši u matematičkim znakovima kod uslova).
Što objašnjava isti rezultat ako si koristio isti uslov za druge provere.

Okači kod i možda će neko iz ove oblasti dati konkretno rešenje, ja ti ovo pišem iz iskustva iz drugog jezika i onoga gde sam ja neretko grešio.



offline
  • Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
  • Pridružio: 13 Jun 2010
  • Poruke: 307
  • Gde živiš: Subotica

Srki94 ::Nevezano za jezik, mislim da grešiš negde u samoj srži uslova zbog čega dobijaš jedan manje prikaz. Proveri ponovo samu srž uslova (neretko se pogreši u matematičkim znakovima kod uslova).
Što objašnjava isti rezultat ako si koristio isti uslov za druge provere.

Okači kod i možda će neko iz ove oblasti dati konkretno rešenje, ja ti ovo pišem iz iskustva iz drugog jezika i onoga gde sam ja neretko grešio.

Koristim isti kod za izlistavanje mali milion puta, zato sam sad sluđen.

$sql_admins=mysql_query("SELECT * FROM `online_admin` ORDER BY `online_admin`.`time` DESC ");       if(mysql_fetch_array($sql_admins)>=1)       {          while($a_users=mysql_fetch_array($sql_admins))          {             echo $a_users['id_user'];          }       }else{echo '<h3>No members</h3>';}

Ovo je jednostavan kod za izlistavanje koji koristim kao i većina PHP programera. Svugde perfektno radi ali samo ovde mi nešto zeza. Kažem, probao sam i sa loop, sa foreach ali isti problem.
Isto sam pokušao sa ASC i DESC sortiranjem, urado sam i bez ORDER BY, Pokušao sam sortirati i po datumu i po imenu, i po neznam čemu i uvek zadnji podatak ne ispiše.

Napravio sam DEBUG i svugde prolazi a kada treba while da uradi svoje onda prikaže za -1.
Ako u tabeli imam samo jedan podatak, onda mi ne pokaže ništa. Praktično imam NULL u tom delu a u bazi postoji jedan podatak koji trebam izlistati.

pomislio sam da je problem u SQL bazi ali nije ni tamo.

Pre ovog koda nemam ni jedan drugi PHP kod da ga blokira.

offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12431

Opet ja Razz
Izguglao sam uverljivo rešenje, da se ne pravim pametan evo ti link pa vidi sam :
[Link mogu videti samo ulogovani korisnici]
Drugi post objašnjava u čemu je problem i kako da ga rešiš.

Ukoliko ni to ne pomogne ostaje ti samo da čekaš nekoga ko radi u PHP-u da odgovori.
Sretno Ziveli

offline
  • Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
  • Pridružio: 13 Jun 2010
  • Poruke: 307
  • Gde živiš: Subotica

To je to ali nije rešenje to. Ne uspevam dobiti redovan rezultat.

offline
  • Pridružio: 17 Jun 2012
  • Poruke: 727

Probaj u ovoj liniji da izostavis znak "="

if(mysql_fetch_array($sql_admins)>=1)

offline
  • PHP Developer
  • Pridružio: 02 Okt 2005
  • Poruke: 546

Meni deluje da preskocis prikaz prvog sa if(mysql_fetch_array($sql_admins)>=1)
mozda si hteo da pitas mysqli_num_rows()

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

if(mysql_fetch_array($sql_admins)>=1)

Prvo proveri sta vraca mysql_fetch_array:

Citat:Returns an array of strings that corresponds to the fetched row, or FALSE if there are no more rows.

I onda vidis da vraca ili niz, ili (boolean) false, kao i da ne postoji scenario u kome ce da vrati integer.

Kao sto je kolega MeD vec napomenuo, koristi mysql_num_rows u tom uslovu, i to je to.

Btw, koriscenje mysql_* funkcija se vec neko vreme ne preporucuje:

Citat:This extension is deprecated as of PHP 5.5.0, and will be removed in the future.

offline
  • Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
  • Pridružio: 13 Jun 2010
  • Poruke: 307
  • Gde živiš: Subotica

Rastafarii ::if(mysql_fetch_array($sql_admins)>=1)

Prvo proveri sta vraca mysql_fetch_array:

Citat:Returns an array of strings that corresponds to the fetched row, or FALSE if there are no more rows.

I onda vidis da vraca ili niz, ili (boolean) false, kao i da ne postoji scenario u kome ce da vrati integer.

Kao sto je kolega MeD vec napomenuo, koristi mysql_num_rows u tom uslovu, i to je to.

Btw, koriscenje mysql_* funkcija se vec neko vreme ne preporucuje:

Citat:This extension is deprecated as of PHP 5.5.0, and will be removed in the future.


Mhmmmm. Šta će se onda koristiti? nisam čitao ranije o tome.
Kako ti konektuješ bazu i izlistavaš? Ali bez class funkcija, hoću čisto da vidim.
Veoma mi je važno zbog projekta kojeg radim ali i za druge PHP programere je veoma bitno.

offline
  • PHP Developer
  • Pridružio: 02 Okt 2005
  • Poruke: 546

samo dodas i Smile i pazis se jabuke Very Happy
mysqli [Link mogu videti samo ulogovani korisnici]

Ko je trenutno na forumu
 

Ukupno su 794 korisnika na forumu :: 99 registrovanih, 8 sakrivenih i 687 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, 4thFlavian, alkanuta, aramis s, Arsenije, Barista, bbogdan, BlackTower, bobo85, Boris90, bpvl, branko7, Colt D, crazydkure, crnogorac, d.arsenal321, damirZR, darionis, darkojbn, DDragoje, Denaya, DENIRO, dexteroza, DezurniOperativni, Df410, Dimitrije Paunovic, doktor097, dolinalima, Dorcolac, drimer, Duschi, dzoni19, Faki-Valjevo, Feller, g_g, gobrad, GORDI, howyesno, ILGromovnik, In_hero, ivan979, IvanMiletic, Jeremiah, JohnDoe, kaskadija, king111, komenski, Konda, Kordon, krkalon, Limeni91, lipi9746, Lobo, luka35, Luke Pathfinder, Magarac, MaschinenPistole, Medojed, mikidragi, Milometer, Mis uz pusku, moldway, mrav pesadinac, mrkanidja, nebidrag, niksa517, Otto Grunf, ozzy, Panter, panzerwaffe, pein, procesor, proka89, Prometeus, radza1, RiV, sabros, Samo gledam, samocitam, samoulogovankorisnik, sap, sasics, Slobodan Filipović, Srki98, Srna, Tafocus, tomigun, TripleTwo, Username1000, USSVoyager, veljko82, volimpivuvolimrakiju, VOŽD, vukajlo71, Wrangler, zeka013, Zmajac, zule2, |_MeD_|