php voorkomen query in query

  • Onderwerp starter Onderwerp starter baws
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

baws

Terugkerende gebruiker
Lid geworden
9 apr 2010
Berichten
1.258
Hallo,

In mijn database heb ik verschillende merken en die merken hebben weer series.
Bijvoorbeeld:

Merk 1
-serie 1a
-serie 1b


Merk2
-serie 2a
-serie 2b

Nu doe ik :

Select * from merk

En dan in de while loop

Select * from Serie Where MerkId = $row['merkid'];


dus als ik 20 merken heb zou ik 20x deze laatste query doen.


Hoe kan ik dus voorkomen dat ik deze query in een andere query doe.
 
Gebruik maken van een JOIN lijkt mij
[sql]SELECT
*
FROM
Serie s,
merk m
WHERE
s.MerkId = m.merkid[/sql]

Of
[sql]
SELECT
*
FROM
Serie s
INNER JOIN merk m ON m.merkid = s.MerkId[/sql]
 
Ok maar hoe kan ik dit resultaat dan terug geven met maar 1 x het merk in de rij.
IK had deze query ook gevonden, maar nu krijg ik bijvoorbeeld 3 x het merk mars met 3 verschillende types.
Maar wat ik wil is 1 x het merk en eronder de 3 types.
 
Laatst bewerkt door een moderator:
PHP:
$merk = '';

while($row = mysqli_fetch_assoc($result))
{
    // Check of het een ander merk is
    if($merk !== $row['merk']) {
        $merk = $row['merk'];
        echo $merk;
    }
    // De info van de serie tonen
}
 
Ok super bedankt ik heb het nu als :

PHP:
$query = "SELECT     * FROM     Serie ,     Merk WHERE    Serie.MerkId = Merk.MerkId ORDER BY Merk.MerkId";
$result = $db->query($query);
while($row = mysqli_fetch_assoc($result))
{
    // Check of het een ander merk is
    if($merk !== $row['MerkId']) {
        $merk = $row['MerkId'];
        echo "<b>".$row['MerkNaam']."</b>";
    }
    echo $row['SerieNaam']."<br>";
}

Voor degene die deze code gaan gebruiken zorg ervoor dat je order by gebruikt anders is het volgende merkid anders en krijg je merken dubbel in de lijst.
 
Maar ik heb dus geen gebruik gemaakt van inner join maar het werkt toch. is dit dus eigenlijk niet nodig via php?
 
De queries welke ik gaf zijn volgens mij identiek qua resultaat, het maakt dus in dit geval niet uit of je een WHERE of INNER JOIN gebruikt.

Als iemand daar een gegrond antwoord op heeft: voel je vrij om te reageren :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan