[PHP/MySQL] Prob met order op prioriteit met (sub)query

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste luitjes,

Een situatie waar ik geen raad mee weet.
Ik gebruik een MySQL db om producten in op te slaan. Ik heb een producten tabel, submenu tabel en een prod_in_submenu tabel. In de submenu tabel staan alle mogelijke submenuus van de website en in de prod_in_submenu tabel geef ik aan welk product in welk submenu moet komen. Dit omdat een product in meerdere submenuus kan voorkomen.
Ik heb een mogelijkheid ingebouwd een prioriteit op te geven bij een product en hierop moet ik dus een ORDER BY toepassen, maar dat krijg ik niet voor elkaar.

In de eerste query alle producten uit het gekozen submenu geselecteerd. Vervolgens in de volgende while loop haal ik d.m.v. een query de productspecificaties op. Maar daar kan ik natuurlijk niet meer sorteren.

Ik hoop dat jullie begrijpen wat ik bedoel, zo niet laat even weten wat ik eraan moet doen het duidelijk te maken.

Het probleem is dus de sortering op prioriteit. Verder werkt het goed.

PHP:
1
2
3
4
5
6
7
8
$sql = "SELECT prod_id FROM $prod_in_submenu WHERE submenu_id='$id'";
$result = mysql_query($sql) or die('Kon gegevens niet selecteren<br>'.mysql_error());
while($item = mysql_fetch_row($result))
{
        $sql2 = "SELECT * FROM $product WHERE product_id='$item[0]'";
        $result2 = mysql_query($sql2) or die('Kon gegevens niet selecteren<br>'.mysql_error());
        while($item2 = mysql_fetch_array($result2))
        {


Dank voor jullie hulp, Hans.

Acties:
  • 0 Henk 'm!

Verwijderd

Je kan de table $prod_in_submenu en de table $porduct aan elkaar breien met een JOIN.
SELECT t1.blabla, t2.blaba FROM table1 t INNER JOIN table2 t2 ON t2.field = t1.field
en daar kan je dan nog een ORDER BY opdoen wat jou probleem moet verhelpen normaal..

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat werkt PERFECT. Ik had weleens iets gelezen over die tabellen samenvoegen, maar kreeg het nooit goed aan de gang. Dank voor je duidelijke voorbeeld.