Archief - [prog][php-mysql]

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Palmke

Legacy Member
edit: Ik had dit precies beter in het webdesign forum gepost volgens mij.
Mijn excuses hiervoor! Kan een mod deze topic verplaatsen aub?


Ik ben aan een projectje bezig hier en zit met een probleem,
php code schrijven voor kleine websites is geen probleem, je schrijft er meestal wat op los en kijkt zo niet echt naar het aantal queries per pageload je maakt.

Nu zit ik met een iets grootschaliger project en zit dus met dit probleem!
Ik het de "bottleneck" gevonden waar ik de meeste queries uithaal en dit is namelijk volgend stukje code:
Code:
$query = mysql_query("select * from tabel");
while ( $array = mysql_fetch_array($query))
{
              $tweede_query = mysql_query("select * from tabel2 where group_id='".$array[0]."'");
               while ( $tweede_array = mysql_fetch_array($tweede_query))
                {
                           echo $tweede_array[0];
                 }
}


zoals jullie zien maakt dit een heel aantal queries de eerste $query veel resultaten terug geeft.

Ik vroeg mij af of jullie misschien tips hebben om dit te vereenvoudigen of compleet anders aan te pakken?
Ik zou dus een efficiente methode willen bekomen met een zoweinig mogelijk aantal queries!

Ook had ik nog een tweede vraag, wat is zo het gemiddelde van aantal queries per pageload voor grote websites?

Alvast bedankt.

killgore

Legacy Member
$query= myqsl_query("SELECT * FROM tabel t1 LEFT JOIN tabel2 t2 ON t2.groupid=t1.id");

kweet niet wat de naam is van het veld in $array[0], kgokte id.
Gebruik ook mysql_fetch_assoc, is op 100 queries of zo in het totaal maar 1 ms trager dan mysql_fetch_array, maar levert o zoveel duidelijkere code!

Palmke

Legacy Member
Bedankt voor je reply, ik ben wat met joins aan het proberen en ik hoop dat het lukt.
bedankt

Tyfius

Legacy Member
Opletten met die joins. Dat gaat afaik maar vanaf mysql > v4.1
Sommige hosts die met de laatste ef de vorige debian stable werken (andere distro's ook) maken dikwijls nog gebruik van mysql 4.0

killgore

Legacy Member
Tyfius zei:
Opletten met die joins. Dat gaat afaik maar vanaf mysql > v4.1
Sommige hosts die met de laatste ef de vorige debian stable werken (andere distro's ook) maken dikwijls nog gebruik van mysql 4.0
JOINS gaan al langer hoor :o. Mssch sommige syntaxen maar vanaf 4.1, maar het algemeen concept van joins steekt al in mysql van VOOR versie 4 dacht ik.

Palmke

Legacy Member
De joins werken perfect, er word 1 query gemaakt voor alle menu's op te halen.
Daarna 1 query / menu dus ik vind dit best een goede oplossing! Bedankt

orez

Legacy Member
Tyfius zei:
Opletten met die joins. Dat gaat afaik maar vanaf mysql > v4.1
Sommige hosts die met de laatste ef de vorige debian stable werken (andere distro's ook) maken dikwijls nog gebruik van mysql 4.0

Tiens ik werk nochtans met MySQL 4 en da werkt toch nogal perfect...
Vanwaar haal je dit gezever? Joins werken al vanaf MySQL 2.5

killgore

Legacy Member
ru`orez zei:
Tiens ik werk nochtans met MySQL 4 en da werkt toch nogal perfect...
Vanwaar haal je dit gezever? Joins werken al vanaf MySQL 2.5
kdenk da em verward met subqueries, die er toch nauw aan gelinkt zijn.
DIe werken idd enkel vanaf 4.1 (of zelfs maar 5.0, kzou het niet onmiddelijk weten aangezien ik ze niet vaak gebruik :p)

WHiSPy

Legacy Member
killgore zei:
kdenk da em verward met subqueries, die er toch nauw aan gelinkt zijn.
DIe werken idd enkel vanaf 4.1 (of zelfs maar 5.0, kzou het niet onmiddelijk weten aangezien ik ze niet vaak gebruik :p)

Subqueries zijn mysql 4.1. Views, stored procedures en triggers zijn mysql 5. :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan