Autor Zpráva
abecedy
Profil *
Zdravím, mám tabulku

populace
id, id_zeme, pocet_obyvatel

a pak tabulku
zeme
id, nazev

z tabulky populace vypisuji všechny země(názvy) z tabulky zeme, jak docílím, řazení podle názvu?
SELECT * FROM populace ORDER BY id_zeme DESC 

jenže takhle se to řadí podle čísel (id) nikoliv podle názvu, lze to nějak udělat?
Chuchycek
Profil
Taky zdravím, Musíš propojit tabulky mezi sebou.
SELECT * 
FROM populace p 
LEFT JOIN zeme z 
ON p.id_zeme=z.id 
ORDER BY z.zeme DESC
Stalker
Profil
Chuchycek:
Trošičku OT, ale kdyby jsi napsal LEFT JOIN zeme z, tak by to mělo stejný smysl? Jaký je v tom rozdíl?
Chuchycek
Profil
Stalker:
Jo beru zpět, neuvědomil jsem si, že přiřazuju data k tabulce populace. Ale i tak to závisí na něm jestli chce vybrat všechna data z tabulky a nebo jen ty, které lze spojit.
abecedy
Profil *
Chuchycek:
díky moc, funguje parádně


ještě mám problém a to ten, že po té mám něco jako

  $sql = MySQL_Query("SELECT * 
FROM populace p 
LEFT JOIN zeme z 
ON p.id_zeme=z.id 
ORDER BY z.nazev DESC");

while ($row = MySQL_Fetch_Array($sql)) {

<a href=\"/detail-nabidky/".$row['id']."\" class=\"black\"><strong>".$row_5['nazev']."</strong>";
...
....
...

problém je v tom, že ".$row['id']." zobrazuje ID z tabulky zeme, nikoliv populace, můžete prosím pomoc?
Tori
Profil
abecedy:
Máte dva sloupce se stejným názvem (populace.id a zeme.id), takže ve výsledku dostanete pod tím názvem jen poslední z nich. Totéž jako kdybyste takhle přiřazoval do pole:
$row['id'] = $populace['id'];
$row['id'] = $zeme['id'];
Dejte tomu sloupečku alias: SELECT *, p.id AS id_populace FROM ..., klíčové slovo AS je nepovinné.
abecedy
Profil *
nyní to mám:
 $sql = MySQL_Query(SELECT *, p.id AS id_populace
FROM populace p 
LEFT JOIN zeme z 
ON p.id_zeme=z.id 
ORDER BY z.nazev DESC");
ale výsledek stejný
Tori
Profil
abecedy:
No a to ID bude potom v $row['id_populace'] (zapomněla jsem napsat).

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: