multi query
Hejsa,Lukkede det andet spørgsmål, da der ikke var nogen aktivitet.
Har prøvet forskellige ting over de sidste 3 uger, men har ikke kunne finde fejlen. Har samtidig fået opgraderet mysql til 4.13 beta, for at benytte den nye form for queries, men har heller ikke kunne få dét til at virke. Håber på at finde en løsning, da jeg ikke kan udvikle videre før en løsning er fundet.
Tidligere threads:
http://www.eksperten.dk/spm/524421
http://www.eksperten.dk/spm/522465
Test side: http://www.tackleprices.com/products/fishing-reels/series2.php
Nuværende site (working): http://www.tackleprices.com/products/fishing-reels/series.php
kode:
$query = mysql_query("SELECT brand.id
FROM brand
WHERE status='1'
AND validation_status='1'
AND exists(SELECT * FROM series
WHERE brand_id=brand.id
AND type='Reels'
AND validation_status='1'
AND exists(SELECT * FROM products
WHERE series_id=series.id
AND type='Reels'
AND validation_status='1'
AND exists(SELECT * FROM prices
WHERE product_id=products.id)
} } }
ORDER BY brand.brand") or die (mysql_error());
while($fetch = mysql_fetch_array($query)) {
<table>
<tr>
<td><a href="http://<? echo $fetch[brand_link];?>" target="_blank"><h2><? echo $fetch[brand];?></h2></a></td>
</tr>
</table>
}
Får forresten denne fejl:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '} } } ORDER BY brand.brand' at line 15
Hvis der er nogle der er interreseret i den gammle query:
//Select all active brands ordered by brand
$query = mysql_query("SELECT * FROM brand WHERE status='1' AND validation_status='1' ORDER BY brand") or die (mysql_error());
while($row = mysql_fetch_array($query)) {
unset($serie_no);
//If there are any active series when we select them and sort them by name.
$query2 = mysql_query("SELECT * FROM series WHERE brand_id='$row[id]' AND type='Reels' AND validation_status='1' ORDER BY series ") or die (mysql_error());
while($row2 = mysql_fetch_array($query2)) {
/*
Check if there is any active prices based on the active products (again based on active series and brands).
To do this we query all active products based on active series.
For each product we check if it has any related prices.
We use $no to make sure we only create ONE table for each brand, otherwise the query will create
a new table for each product.
*/
unset($no);
$query3 = mysql_query("SELECT * FROM products WHERE series_id='$row2[id]' AND type='Reels' AND validation_status='1' ") or die (mysql_error());
while($row3 = mysql_fetch_array($query3)) {
$sql_doublecheck3 = mysql_query("SELECT * FROM prices WHERE product_id='$row3[id]' ") or die (mysql_error());
$doublecheck3 = mysql_num_rows($sql_doublecheck3);
if(($doublecheck3 != 0) && ($no != 1) && ($serie_no != 1)) {
$serie_no = 1;
$no = 1;
$i = 0;
