query in query
Onderstaand een query in query wat niet de juiste oplossing is. Hoe zou ik het anders aan kunnen pakken?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
include('dbconnect.php');
$query = "SELECT DISTINCT merk FROM producten ORDER BY merk";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$merk = $row['merk'];
echo $merk;
$query = "SELECT type FROM producten WHERE merk = ".$merk."";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$type = $row['type'];
echo $type;
}
}
?>
include('dbconnect.php');
$query = "SELECT DISTINCT merk FROM producten ORDER BY merk";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$merk = $row['merk'];
echo $merk;
$query = "SELECT type FROM producten WHERE merk = ".$merk."";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$type = $row['type'];
echo $type;
}
}
?>
hoezo werkt het niet ? geeft hij een error of een melding of wat ?
een query in query kan toch ook niet of wel?
maar geeft hij wel iets weer bij echo $merk ?
en anders kan je altijd nog kijken naar Multi Query
Gewijzigd op 22/06/2011 22:06:37 door Marco PHPJunky
Maar waarom stopt hij bij de eerste en laat hij niet alle merken met types zien?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
include('dbconnect.php');
$query = "SELECT DISTINCT merk FROM producten ORDER BY merk";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$merk = $row['merk'];
echo $merk;
$query = "SELECT type FROM producten WHERE merk = '$merk'";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$type = $row['type'];
echo $type;
}
}
?>
include('dbconnect.php');
$query = "SELECT DISTINCT merk FROM producten ORDER BY merk";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$merk = $row['merk'];
echo $merk;
$query = "SELECT type FROM producten WHERE merk = '$merk'";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$type = $row['type'];
echo $type;
}
}
?>
Toevoeging op 22/06/2011 22:14:45:
en als ik "ORDER BY merk" weg haal in de query dan laat hij alleen het laatst ingevoerde merk zien?
laat hij wel alles zien als je alleen de 1ste query door een while() heen haalt ?
of waarom haal je het anders distinct op ?
Dit zijn de ingevoerde merken met types tot nu toe:
Porsche 300
Chevrolet Corvette
Volvo 125
Ford T800
Porsche 911
Als ik "ORDER BY merk" weghaal is de output: Porsche911300
Hij doet het dus wel goed, alleen laat hij maar één merk zien ipv alle merken?
zijn dat verschillende collums ? of 1 en dezelfde
Toevoeging op 22/06/2011 22:49:21:
ik heb het gevonden. In de tweede query wordt ook $result gebruikt, net als in de eerste query.
Als je in de tweede query $result verandert in iets anders dan doet hij het. Marco bedankt voor het meedenken :-)
Kan je niet gewoon meteen joinen? of heb je ze allemaal nodig?
Zie hier
als je de boel werkend hebt, haal dan de "or die" er nog uit, en zet er een goede foutafhandeling in: Gewijzigd op 23/06/2011 06:49:42 door Tobias Tobias