Hallo iedereen,

Ik ben bezig met een formulier waarmee Afdelingshoofden het volgende kunnen zien:
1 welke taken ze in de geselecteerde periode af moeten hebben
2 welke taken lopen
3. welke taken ze mee kunnen beginnen in de geselecteerde periode

Ik heb op dit moment 3 query`s hiervoor. Zou ik dit kunnen combineren in 1query (denk dat die pagina dan sneller wordt, of heb ik dat verkeerd)?

De query ziet er als volgt uit voor 1.taken die afgerond moeten zijn :
$sql="SELECT OMSCHRIJVING, BONNUMMER,TEKENINGNR,GEREED, ORDERNUMMER, REGELNUMMER, STARTDATUM, EINDDATUM

FROM ORDERRG
WHERE OMSCHRIJVING = 'Engineering' AND EINDDATUM BETWEEN '$startdatumtest' AND '$einddatumtest'


De andere query is precies het zelfde maar dan is de where als volgt:
2. WHERE OMSCHRIJVING = 'Engineering' AND STARTDATUM < '$startdatumtest' AND EINDDATUM >'$einddatumtest'

3. OMSCHRIJVING = 'Engineering' AND STARTDATUM BETWEEN '$startdatumtest' AND '$einddatumtest'

Ik heb al van alles gezocht maar ik kan nog niet echt iets vinden !

Angela
Ze toen toch allemaal hetzelfde. Wat wil je eigenlijk doen?
+confuzzled teh puzzled+
Als je op je pagina 3 verschillende soorten gegevens wilt weergeven, zul je ook 3 verschillende queries op je database uit moeten voeren. Je kunt alle gegevens wel met 1 query ophalen, maar dan moet je met php onderscheid gaan maken tussen de verschillende resultaten en dat is niet logisch.
Ze doen allemaal het zelfde maar ik heb dus nu 3 query`s op dezelfde pagina staan en ik wil er graag 1 van maken omdat ik denk dat dit sneller is. Ik weet alleen niet zeker of dat veel kwa snelheid oplevert ???
Ik snap sowieso het punt van 3 queries, die hetzelfde doen, op één pagina niet?
Angela, prop de resultaten eenmalig in een array en gebruik die array daarna gewoon 3x met foreach.

Dus eerst zoiets:

$sql = 'SELECT ..........';
$query = mysql_query($sql);

(...)

$resultaten = array();

while ($row = mysql_fetch_assoc($query) {
$resultaten[] = $row;
}

daarna kun je dan doen:

foreach ($resultaten as $row) {
echo $row['column'];
}
Gerben Jacobs schreef op 11.10.2007 16:11
Ik snap sowieso het punt van 3 queries, die hetzelfde doen, op één pagina niet?


Ok ik zal het even beter proberen uit te leggen. Ik heb een pagina gemaakt waar Afdelingshoofden een startdatum en een einddatum in kunnen voeren bijvoorbeeld startdatum 08-10-2007 en een einddatum 12-10-2007 en op zoeken kunnen klikken.

Dan gaat de startdatumzoek en de einddatumzoek naar de pagina wat ik hier boven al een beetje heb beschreven. De afdelingshoofden krijgen op deze pagina 3 tabbelen te zien: 1 De taken die ze tussen de startdatum en einddatum af moeten hebben 2 De taken die lopen 3 De taken die tussen de startdatum en einddatum kunnen starten (met dit overzicht delen ze zelf de taken uit aan verschillende medewerkers van hun afdeling). Vandaar dat ik 3 querys heb.

Maar ik dacht dat ik misschien die 3 query`s met de verschillende where clausules zou kunnen samenvoegen zodat ik er maar 1 heb en de pagina misschien sneller wordt met het laden !?

Ik weet dus niet of mijn idee kan.

De queries doen toch niet hetzelfde? Je gebruikt 3x een verschillende WHERE clausule, dus die queries zullen alledrie verschillende resultaten opleveren!

Je kunt die verschillende WHERE clausules wel gescheiden door OR in 1 query proppen, maar hoe ga je later dan bepalen welk gegeven bij welke query hoort?
google: multiple query's, verdiep je daar in

vb:
select a.id, b.id, c.id, a.test, b.test, c.test from atabel as a, btabel as b, ctabel as c where a.id = b.id and b.id = c.id

je kunt hier verschikkelijk veel mee doen
Tja, je zou het kunnen doen (als jouw tabel opmaak dat toe laat) maar dan krijg je wat Blache zei dat je met PHP dingen moet gaan controleren.

Kan je beter losse queries gebruiken.
RGN|Tommy schreef op 11.10.2007 16:21
google: multiple query's, verdiep je daar in

vb:
select a.id, b.id, c.id, a.test, b.test, c.test from atabel as a, btabel as b, ctabel as c where a.id = b.id and b.id = c.id

je kunt hier verschikkelijk veel mee doen
Het is duidelijk dat je niet begrijpt hoe het werkt; adviseer het dan iemand ook niet. Het is namelijk fout. Bij verschillende WHERE clauses heb je (bijna?) nooit iets aan joins.

Reageren