Resultaten splitsen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
//cat-output in table
while ($row = MYSQL_FETCH_ROW($result))
{
// count all links in an unique cat
$resc = MYSQL_QUERY("SELECT * FROM $table_linkdata WHERE cat = $row[0]");
$anzcat = MYSQL_NUM_ROWS($resc);
// generate output-tables
echo "<p>\n<tr>\n";
// when not empty show link
if($anzcat != 0) {
echo "<td id='index_cat'>\n<IMG SRC='folder.gif' WIDTH='16' HEIGHT='13' BORDER='0'> <a href='view.php?cat=$row[0]'><font size='2'><b>$row[1]</b></a> ($anzcat)</font>\n</td>\n";
} else {
// if empty hide link
echo "<td id='index_cat'>\n<font size='2'><b>$row[1]</b> ($anzcat)</font>\n</td>\n"; }
echo "</tr>\n<td id='index_desc'>\n".ARROW_FOR_CAT_DESC." $row[2]\n</td>\n";
echo "</tr>\n";
}
?>
//cat-output in table
while ($row = MYSQL_FETCH_ROW($result))
{
// count all links in an unique cat
$resc = MYSQL_QUERY("SELECT * FROM $table_linkdata WHERE cat = $row[0]");
$anzcat = MYSQL_NUM_ROWS($resc);
// generate output-tables
echo "<p>\n<tr>\n";
// when not empty show link
if($anzcat != 0) {
echo "<td id='index_cat'>\n<IMG SRC='folder.gif' WIDTH='16' HEIGHT='13' BORDER='0'> <a href='view.php?cat=$row[0]'><font size='2'><b>$row[1]</b></a> ($anzcat)</font>\n</td>\n";
} else {
// if empty hide link
echo "<td id='index_cat'>\n<font size='2'><b>$row[1]</b> ($anzcat)</font>\n</td>\n"; }
echo "</tr>\n<td id='index_desc'>\n".ARROW_FOR_CAT_DESC." $row[2]\n</td>\n";
echo "</tr>\n";
}
?>
Als er iemand is die weet hoe, ben ik hem zeer dankbaar.
Mark
Ik heb het geprobeerd te begrijpen maar ik kom er niet.
Sorry voor mijn onwetendheid
dat moet zeker wel in 1 query kunnen
Misschien eens leuk om eens te testen met die benchmark class van pear.
Quote:
mag ik vragen wat voor datamodel je hebt want ik vind het nogal database mishandeling om bij elke rij een nieuwe query uit te voeren
dat moet zeker wel in 1 query kunnen
dat moet zeker wel in 1 query kunnen
Het handelt zich ook hier om maar 1 enkele query die zolang wordt uitgevoerd tot alle resultaten zijn opgehaald, maar dit nu in een lijst ondereen.
Dit zou nu in 2 lijsten moeten. (langseen)
Zo worden <TD>inhoud1</TD> <TD>inhoud2</TD>, dus naast elkaar.
Het is één query die uitgevoerd wordt, en wat een datamodel is daar kan ik spijtig genoeg geen antwoord op geven, ik ben nog maar een tijdje bezig met php/MySql.
dit wil niet zeggen dat ik niks ken maar dit is mij na 1 avond intensief proberen dit zelf op te lossen niet gelukt daarom kom ik het nu hier vragen.
Arend, wat jij bedoeld daar heb ik ook het raden naar, ik kan niet echt opmaken of dit nu positief of negatief bedoeld is.
Mark
Gewijzigd op 30/03/2004 19:35:00 door Giga
De vraag naar het datamodel is gewoon over: hoe ziet je database eruit? Welke tabellen heb je en waarom heb je die zo gekozen?
De tabellen heb ik niet zelf gekozen, dit is normaal een link-list, die ik heb aangepast naar een php-script-list (http://www.gigadesign.be/php2/).
Er zijn 4 tabellen waarvan 2 verantwoordelijk zijn voor het weergeven van de resultaten ('cat' van kategorien en 'linkdata' voor het verkrijgen van de inhoud van elke categorie).
Als je eens gaat zien weet je wat ik bedoel ( weet je wel, maar dan zie je het ook eens ).
Mark
Quote:
toch vind ik dat je het goed moet doen.Och, de mysql queries duren toch nooit het langst, ik denk dat het bij dergelijke queries in theorie een wereld van verschil is, maar in de praktijk toch zo sloom als shit.
als je ooit nog eens in grote projecten terecht komt en je gaat het zo opzetten dan word het gewoon een gigantische flop
Giga: misschien ideetje om alle resultaten in een array te zetten en daarna met een loopje eruit halen?
Maar het kan volgens mij best, moet je maar eens die queries benchmarken, dat duurt niet zo gek lang, preformance verschil valt best mee te leven, de runtime van php zelf is gewoon 10 keer langer :)
Hou wel in de gaten dat zulke constructies soms gewoon nodig zijn wanneer je anders met een query met 30 INNER JOINS te maken krijgt. (En mysql gewoon brakke subquery ondersteuning heeft)
Grtz.
Adje
Quote:
trueIk ben van mening dat grote projecten niet in php moeten :)
Quote:
yup, maar ik vind het gewoon niet netjes en overbodigMaar het kan volgens mij best, moet je maar eens die queries benchmarken, dat duurt niet zo gek lang, preformance verschil valt best mee te leven, de runtime van php zelf is gewoon 10 keer langer :)
Quote:
helaas zijn subqueries nog niet echt geweldig bij mysql nee, maar het word beterHou wel in de gaten dat zulke constructies soms gewoon nodig zijn wanneer je anders met een query met 30 INNER JOINS te maken krijgt. (En mysql gewoon brakke subquery ondersteuning heeft)
in plaats van een hele lading inner joins kan je misschien beter gewoon de database anders in elkaar zetten
als je zo een query moet uitvoeren dan heb je of een slecht datamodel of het is iets wat je 1x per dag met een cronjob kan uitvoeren
Quote:
in plaats van een hele lading inner joins kan je misschien beter gewoon de database anders in elkaar zetten
als je zo een query moet uitvoeren dan heb je of een slecht datamodel of het is iets wat je 1x per dag met een cronjob kan uitvoeren
als je zo een query moet uitvoeren dan heb je of een slecht datamodel of het is iets wat je 1x per dag met een cronjob kan uitvoeren
Pappen of nathouden?
Quote:
.Giga: misschien ideetje om alle resultaten in een array te zetten en daarna met een loopje eruit halen?
Okke er is nu al veel gezegd over 'benchmarking', 'inner joins', 'subquerys'. Maar hoe los ik dit nu op, ik zou dus graag een voorbeeld zien ( niet dat ik lui ben ) maar daar leer ik het meeste van.
Rick: misschien kun je mij eens een voorbeeld tonen van een 'loop until'
Bedankt
Mark