Autor Zpráva
andynewcastleth
Profil
Hlavní tabulka AUTA a dvě rozšiřující tabulky provázané skrz IDAUTA:

AUTA
id | jmeno
1 | ford
2 | audi
...

MODELY
id | idauta | model | cena
1 | 1 | MODEL A | 10 000
2 | 1 | MODEL B | 20 000
...

BARVY
id | idauta | barva
1 | 1 | cervena
2 | 1 | bila
...

MŮJ DOTAZ 1 : Jak udělat následující skript (viz poznámka)? Použiji k tomu CROSS JOIN nebo jak?

$results = $mysqli->query("SELECT * FROM auta");
while($row = $results->fetch_assoc()){
   
   echo $row["jmeno"];
   //jak vypsat "cena zacina jiz od: xxx KC"?????????

   
}

MŮJ DOTAZ 2: Jak udělat následující skript (je stejný, akorát má 3. tabulku)?

$results = $mysqli->query("SELECT * FROM auta");
while($row = $results->fetch_assoc()){
   
   echo $row["jmeno"];
   
   //jak vypsat "cena zacina jiz od: xxx KC"?????????
   //jak vypsat "mame k dispozici xxx barevnych kombinaci"?????????
   
}
Kajman
Profil
Můžete upravit prvotní dotaz, aby ty informace hned vyhledal. Něco jako
SELECT a.*,
       m.*,
       (SELECT Count(*)
        FROM   barvy b
        WHERE  b.idauta = a.id) pocet_barev
FROM   auta a
       LEFT JOIN (SELECT idauta,
                         Min(cena)            cena_od,
                         Max(cena)            cena_do,
                         Count(DISTINCT cena) ruznych_cen
                  FROM   modely
                  GROUP  BY idauta) m
              ON a.id = m.idauta
andynewcastleth
Profil
Já do toho dotazu ještě potřebuji doplnit podmínku WHERE, tedy v mem prikladu by to bylo:

$results = $mysqli->query("SELECT * FROM auta WHERE povoleno='$xml_status' AND kategorie='$xml_karegorie'");
while($row = $results->fetch_assoc()){
   
   echo $row["jmeno"];
   //jak vypsat "cena zacina jiz od: xxx KC"?????????
 
   
}

Jak ji dostanu do toho řešení? Zkoušel jsem, ale nedaří se....
Kajman
Profil
Ukažte, jak jste to zkoušel, třeba tam bude jen drobná chyba.
andynewcastleth
Profil
Mé řešení bylo to zkopírovat na úplný konec dotazu. Což vyústilo v chybu syntaxe... .


Nedalo mi to nevyzkoušel znovu a nyní to funguje. Zřejmě jsem jen špatně kopíroval.

I když jsem trochu bojoval s upraveným dotazu na moji situaci, tak se mi to podařilo dát dohromady a nyní to funguje bezvadně!

Tedy mockrát děkuji za pomoc.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0