1 2 3 4 5 6 | |ID|Catagorie| +--+---------+ |1 |Eten | |2 |Sport | |3 |Studie | |4 |etc, etc | |
1 2 3 4 5 6 7 | |ID|Catagorie|Item |Naam | +--+---------+---------+------+ |1 |Eten |Montignac|Arie | |2 |Sport |Voetbal! |Tinus | |3 |Studie |PHP |Kees | |4 |Eten |Moermans |Bertus| |5 |etc |etc |etc | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $query="SELECT * FROM catagorie"; $result=mysql_query($query); while($row=mysql_fetch_assoc($result)){ echo"<div>".$row[catagorie]."<br />"; $query_item="SELECT * FROM item WHERE catgorie='".$row['catgorie']."' LIMIT 3"; $result_item=mysql_query($query_item); while($record=mysql_fetch_assoc($result_item)){ echo $record[item]."<br />"; } echo"</div>"; } ?> |
Volgens mij haal ik dan gewoon de laatste 3 records van 1 categorie uit de tabel. EN ik moet 17 maal de laatste 3 hebben.quote:Op woensdag 28 september 2005 20:46 schreef Nevermind het volgende:
Volgens mij kun je het in één query doen door een LEFT JOIN te doen op `Catagorie`.
stiekem heb ik helemaal geen tabel catagorie of categorie, maar heeft deze een compleet andere naam. Dit was echter makkelijker uitleggenquote:categorie overigens?
Subqueries zijn vanaf mysql 4.1 mogenlijk.quote:Op woensdag 28 september 2005 20:50 schreef Chandler het volgende:
best pittig trouwens, kun je ook queries in queries doen? anders lijkt me dit heel erg omslachtig en zul je idd aan die 18 queries blijven zitte
1 2 3 4 5 6 7 | SELECT c.CategoryID, c.CategoryName, p.ProductID, p.ProductName FROM products p INNER JOIN categories c ON c.CategoryID = p.categoryID INNER JOIN products p2 ON p2.CategoryID = c.CategoryID AND p2.ProductName <= p.ProductName GROUP BY p.ProductID, p.ProductName, c.CategoryID, c.CategoryName HAVING COUNT(p2.ProductID) <= 5 ORDER BY c.CategoryName, p.ProductName |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | CategoryID CategoryName ProductID ProductName 1 Beverages 1 Chai 1 Beverages 2 Chang 1 Beverages 39 Chartreuse verte 1 Beverages 38 Côte de Blaye 1 Beverages 24 Guaraná Fantástica 2 Condiments 3 Aniseed Syrup 2 Condiments 4 Chef Anton's Cajun Seasoning 2 Condiments 5 Chef Anton's Gumbo Mix 2 Condiments 15 Genen Shouyu 2 Condiments 6 Grandma's Boysenberry Spread 3 Confections 48 Chocolade 3 Confections 26 Gumbär Gummibärchen 3 Confections 49 Maxilaku 3 Confections 25 NuNuCa Nuß-Nougat-Creme 3 Confections 16 Pavlova |
Ik ga 'm zometeen ff uitproberenquote:Op woensdag 28 september 2005 22:14 schreef SuperRembo het volgende:
bevat de producten die boven het product staan
Ja, hij is wat lastig om zo ff kort uit te leggen. Wat ook nog belangrijk is, is dat de joinconditie van de 2e products tabel (p2.CategoryID = c.CategoryID AND p2.ProductName <= p.ProductName) en de sortering van het resultaat (ORDER BY c.CategoryName, p.ProductName) bij elkaar horen. Misschien moet je zelf ff spelen met de query, en 'm eens uitvoeren met de COUNT(p2.ProductID) in 't resultaat of een keerte zonder group bij.quote:Op woensdag 28 september 2005 22:22 schreef Swetsenegger het volgende:
Sterker nog, ik begrijp geen moer van je query
Dat is om het kort en overzichtelijk te houden. Ik gebruik ook 2 x de tabel products, dus ik moet wel een alias gebruiken.quote:Even kijken, in ieder geval ga je met tabel aliassen werken.
Ai, ik hoopte dat dat bij het vereenvoudigde voorbeeld hoordequote:Hmz, eens even kijken hoe ik dat voor mijn probleem ga gebruiken. Plus ook dat ik in mijn tabel item niet de categorie id heb opgeslagen, maar echt de catagorie naam
Ja ik ben al aan het experimenteren, want het gaat niet helemaal goed.quote:Op woensdag 28 september 2005 22:35 schreef SuperRembo het volgende:
[..]
Ja, hij is wat lastig om zo ff kort uit te leggen. Wat ook nog belangrijk is, is dat de joinconditie van de 2e products tabel (p2.CategoryID = c.CategoryID AND p2.ProductName <= p.ProductName) en de sortering van het resultaat (ORDER BY c.CategoryName, p.ProductName) bij elkaar horen. Misschien moet je zelf ff spelen met de query, en 'm eens uitvoeren met de COUNT(p2.ProductID) in 't resultaat of een keerte zonder group bij.
[..]
Dat is om het kort en overzichtelijk te houden. Ik gebruik ook 2 x de tabel products, dus ik moet wel een alias gebruiken.
[..]
Ai, ik hoopte dat dat bij het vereenvoudigde voorbeeld hoorde
1 2 3 4 5 6 7 | SELECT g.genre, a.title, a.ad_id FROM genre g INNER JOIN ad a ON a.genre = g.genre INNER JOIN ad a2 ON a2.genre = g.genre AND a2.ad_id <= a.ad_id GROUP BY a.title HAVING COUNT(a2.ad_id) <= 3 ORDER BY g.genre, a.ad_id DESC |
1 2 3 4 5 6 7 | SELECT g.genre, a.title, a.ad_id FROM genre g INNER JOIN ad a ON a.genre = g.genre INNER JOIN ad a2 ON a2.genre = g.genre AND a.ad_id <= a2.ad_id GROUP BY a.title HAVING COUNT(a2.ad_id) <= 3 ORDER BY g.genre, a.ad_id DESC |
1 2 3 4 5 6 7 8 9 | SELECT c.CategoryID, c.CategoryName, p.ProductID, p.ProductName, FROM products p INNER JOIN categories c ON c.CategoryID = p.categoryID WHERE ( SELECT COUNT(*) FROM products p2 WHERE p2.CategoryID = c.CategoryID AND p2.ProductName <= p.ProductName ) <= 5 ORDER BY c.CategoryName, p.ProductName |
Het verbaast me altijd dat ik voor echt complexe queries en vraagstukken hier WEL een antwoord of een goed idee krijg van mensen als SuperRembo en Roonaan, terwijl op phpfreakz.nl, bij uitstek de php vraagbaak, meestal niet.quote:Op donderdag 29 september 2005 07:26 schreef Chandler het volgende:
SuperRembo, dat ziet er weer eens super Topf uit man!... wat een knowledge
Yups, ik dank ook veel aan hunquote:Op donderdag 29 september 2005 09:42 schreef Swetsenegger het volgende:
[..]
Het verbaast me altijd dat ik voor echt complexe queries en vraagstukken hier WEL een antwoord of een goed idee krijg van mensen als SuperRembo en Roonaan, terwijl op phpfreakz.nl, bij uitstek de php vraagbaak, meestal niet.
Ik zeg, we maken een walk of fame in de OPquote:Op donderdag 29 september 2005 10:16 schreef Darkomen het volgende:
[..]
Yups, ik dank ook veel aan hun
Van de tweakers heb ik ook een aantal keren goede suggesties gehad.quote:Op donderdag 29 september 2005 11:35 schreef JeRa het volgende:
Altijd baas boven baas, he persoonlijk ga ik met PHP-problemen (if any) altijd op Fok! zoeken en problemen in andere talen vuur ik wel op Tweakers af
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?php if($_GET['id'] == 'link') { include("link.php"); } elseif($_GET['id'] == 'news') { include("news.php"); } elseif($_GET['id'] == 'ticket') { include("ticket.php"); } elseif($_GET['id'] == 'contact') { include("contact.php"); } elseif($_GET['id'] == 'link_add') { include("link_add.php"); } elseif($_GET['id'] == 'link_edit') { include("link_edit.php"); } else { include("main.php"); } ?> |
1 2 3 4 5 6 7 8 9 10 | <?php $files = array("bestand1", "bestand2", "bestand3"); if(isset($_GET['file'] && in_array($_GET['file'], $files)){ include($_GET['file'] . ".php"); } else { include("main.php"); } ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |