Autor Zpráva
kopi
Profil
Zdravím,
mám sql dotaz přes dvě tabulky - ten funguje.

$query = "SELECT id_auta,doba_financovani,najezd, min(basic) as basic, a.* 
           FROM `operak_osobni_auta` o  
           JOIN `osobni_auta` a 
           ON (a.motor = '2.0') and (a.stav = 'aktivni')";
                   
$result = mysqli_query($conn,$query);

Žádný takový záznam v db ale není, ale vyhazuje to ve všech sloupcích tabulky NULL. Ikdyž pak ověřuju

if(mysqli_num_rows($result))
{
   while($row = mysqli_fetch_assoc($result)
   {
     ... kod
   }
}

žádný záznam v tabulce není, ale mysqli_num_rows to pustí jako, že existuje jeden řádek, ale hodnoty v něm jsou NULL. Jak mám ošetřit, aby když jsou hodnoty NULL, se nic nezobrazilo?

Díky
Keeehi
Profil
kopi:
mám sql dotaz přes dvě tabulky - ten funguje
Ale máš ho špatně. Za ON mají být sloupce z jedné tabulky které se mají mapovat na sloupce z druhé tabulky (přibližně o.id_auta = a.id). Ty podmínky které tam teď máš mají být až ve WHERE.
kopi
Profil
a joooo... díky, tohle jsem uplně přehlídnul.
kopi
Profil
ale pořád tam mám ty hodnoty NULL a mysqli_num_rows mi vrací, že existuje 1 jeden řádek, ale s NULL hodnotami.
Keeehi
Profil
Pokud to máš správně, celý řádek jen s NULL hodnotami by tam být neměl. Takže to asi stále není správně. Jak to vypadá teď?
kopi
Profil
SELECT id_auta,doba_financovani,najezd, min(basic) as basic, a.* 
           FROM `operak_osobni_auta` o  
           JOIN `osobni_auta` a 
           ON `id_auta` = `id`
           WHERE (a.motor = '2.0') and (a.stav = 'aktivni')

původně jsem tam měl ON id_auta = a.id, ale to mi phpMyadmin hází chybí neznámý sloupec a.id
TomášK
Profil
Pokud implicitně groupuješ, což se děje implicitně kvůli použití MIN, tak MySQL vždy vrátí právě jeden řádek.
kopi
Profil
TomášK:
mám to bez GROUP BY
Michales
Profil
kopi:

což se děje implicitně kvůli použití MIN
kopi
Profil
Michales:
super, díky moc... to jsem nevěděl, už to funguje. Ještě jednou díky

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