[PHP/Mysql] Results uitlezen

Pagina: 1
Acties:

  • Grum
  • Registratie: Juni 2001
  • Niet online
NIET zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
$theResult = mysql_query($theQuery);
if($theRow = mysql_fetch_array($theResult))
{
   do
   {
    // doe wat ruigs
   } while($theRow = mysql_fetch_array($theResult));
}
else
{
   // no rows
}

maar zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
$theResult = mysql_query($theQuery);
if(mysql_num_rows($theResult))
{
   while($theRow = mysql_fetch_array($theResult))
   {
    // doe wat ruigs
   }
}
else
{
   // no rows
}

Deze post omdat ik dit nu alweer voor de 3e keer voorbij zie komen in de laatste paar dagen.

Ik vraag me af waar de mensen et vandaan halen ;(

  • Breuls
  • Registratie: Januari 2000
  • Laatst online: 12-02 16:35

Breuls

Bad Wolf

Euhm..

wat is je probleem?

  • Grum
  • Registratie: Juni 2001
  • Niet online
Dat ik anti ranzige/slechte structuren ben.

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-09 18:58
Hmm, die eerste herken ik...

Ik geloof dat of van www.php.net of van www.devshed.com komt. Weet het bijna zeker, het kan haast niet anders omdat ik bijna nergens anders kom voor PHP/MySQL gerelateerde dingen.

Kan natuurlijk ook zo zijn dat ik het me fout herinner.

  • Breuls
  • Registratie: Januari 2000
  • Laatst online: 12-02 16:35

Breuls

Bad Wolf

Op zondag 03 maart 2002 12:44 schreef Grum het volgende:
Dat ik anti ranzige/slechte structuren ben.
Ah.

Ik moet zeggen dat die eerste idd nogal :r is :)

  • me1299
  • Registratie: Maart 2000
  • Laatst online: 06:31

me1299

$ondertitel

Sorry voor het kicken van dit topic. Maar ik zou graag willen weten wat het grote bezwaar is van de bovenste constructie?

Dat voor sommige misschien niet netjes is oke, maar is het ook beduidend trager oid?

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 20:58

Janoz

Moderator Devschuur®

!litemod

Op dinsdag 23 april 2002 14:50 schreef DeathKnight het volgende:
Sorry voor het kicken van dit topic. Maar ik zou graag willen weten wat het grote bezwaar is van de bovenste constructie?

Dat voor sommige misschien niet netjes is oke, maar is het ook beduidend trager oid?
Je hebt nu 2 posities waarin je hetzelfde aan $theRow toekent. Dat is onoverzichtelijk, foutgevoelig en onoverzichtelijk :P..

STel je veranderd het fetch statement of de varname, dan moet je dat nu op twee plaatsten doen ipv 1 wat eigenlijk behoorlijk onlogisch is...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • me1299
  • Registratie: Maart 2000
  • Laatst online: 06:31

me1299

$ondertitel

Op dinsdag 23 april 2002 14:55 schreef Janoz het volgende:

[..]

Je hebt nu 2 posities waarin je hetzelfde aan $theRow toekent. Dat is onoverzichtelijk, foutgevoelig en onoverzichtelijk :P..

STel je veranderd het fetch statement of de varname, dan moet je dat nu op twee plaatsten doen ipv 1 wat eigenlijk behoorlijk onlogisch is...
Nou je het zegt ;)

Toch moet ik eerlijk bekennen dat ik al voor lange tijd de bovenste constructie gebruik en het nogal wennen wordt om iets anders te gebruiken.

iig bedankt voor de toelichting.

Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen


  • Grum
  • Registratie: Juni 2001
  • Niet online
Hij is toch veel logischer ?

Je kijkt of der wel of geen rows zijn, waarom dan niet gewoon de functie die er SPECIAAL voor is gemaakt gebruiken :?

  • steenz
  • Registratie: Oktober 2000
  • Laatst online: 21-09-2024
Ok, de 1e variant is een stuk minder logisch, maar als iedereen maar gewoon topics zou openen over onlogisch programmeren...
Ik weet ook nog wel een paar structuren die mensen vaak gebruiken die niet netjes zijn... Ook posten?

  • kaandorp
  • Registratie: November 1999
  • Laatst online: 03-09 22:36
Ja graag! Goed innitiatief van Grum. Ben wel blij met dit soort dingen. Hier leer je tenminste wat van.

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Op dinsdag 23 april 2002 15:19 schreef Grum het volgende:
Hij is toch veel logischer ?

Je kijkt of der wel of geen rows zijn, waarom dan niet gewoon de functie die er SPECIAAL voor is gemaakt gebruiken :?
Omdat die door de hele recordset heen moet lopen. En dat kan nogal inefficient worden bij grotere resultaten. Je wilt niet weten hoeveel records er zijn, maar of er ueberhaubt records in je recordset zitten. Daarom.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Verwijderd

en dit dan
code:
1
2
3
4
5
6
7
8
9
10
11
if($theResult = mysql_query($theQuery))
{
   while($theRow = mysql_fetch_array($theResult,MYSQL_ASSOC))
   {
    // doe wat nuttigs 
   }
}
else
{
   // no rows
}

werkt ook goed en scheelt weer een functie :)

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Op woensdag 24 april 2002 12:01 schreef bigtree het volgende:

[..]

Omdat die door de hele recordset heen moet lopen. En dat kan nogal inefficient worden bij grotere resultaten. Je wilt niet weten hoeveel records er zijn, maar of er ueberhaubt records in je recordset zitten. Daarom.
Klinkt wel logisch dit.

Systeem | Strava


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 20:58

Janoz

Moderator Devschuur®

!litemod

Op woensdag 24 april 2002 12:01 schreef bigtree het volgende:

[..]

Omdat die door de hele recordset heen moet lopen. En dat kan nogal inefficient worden bij grotere resultaten. Je wilt niet weten hoeveel records er zijn, maar of er ueberhaubt records in je recordset zitten. Daarom.
num_rows hoeft helemaal niet door de hele recordset heen te lopen. Die functie is hier juist speciaal voor bedoeld. Hij leest dit zeg maar uit uit de resultset die de db genereerd. Die heeft dus zelf al geteld hoeveel records erin zitten. De enige manier die sneller is is door gewoon een count query uit te voeren, maar dan kun je niet bij de data natuurlijk.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 20:58

Janoz

Moderator Devschuur®

!litemod

Op woensdag 24 april 2002 12:06 schreef woeitje het volgende:
en dit dan
code:
1
2
3
4
5
6
7
8
9
10
11
if($theResult = mysql_query($theQuery))
{
   while($theRow = mysql_fetch_array($theResult,MYSQL_ASSOC))
   {
    // doe wat nuttigs 
   }
}
else
{
   // no rows
}

werkt ook goed en scheelt weer een functie :)
Dit werkt niet zoals het bedoeld is. mysql_query levert alleen false op als de query is mislukt, niet als er geen records worden teruggegeven.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • supersook
  • Registratie: Januari 2001
  • Laatst online: 06-09 07:52

supersook

Professioneel prutser

jah, deze foute code heeft mij ook een hoop problemen bezorgd, heb het toen zelf opgelost met mysql_num_rows > 0, maar zo kan dus blijkbaar ook.

Verwijderd

Op woensdag 24 april 2002 12:08 schreef Janoz het volgende:
Dit werkt niet zoals het bedoeld is. mysql_query levert alleen false op als de query is mislukt, niet als er geen records worden teruggegeven.
euhm ja..... wat loop ik nou te kletsen :( sorry was beetje in de war denk ik. Gister beetje teveel zon op me bol gehad, helemaal verbrand :o

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Op woensdag 24 april 2002 12:07 schreef Janoz het volgende:

[..]

num_rows hoeft helemaal niet door de hele recordset heen te lopen.
Je hebt gelijk; ik was in de war met ADO. Daar weet je pas het aantal resultaten als je bij het laatste record bent, net als bij mysql_unbuffered_query dus.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.

Pagina: 1