Autor Zpráva
anonyme
Profil *
Zdravim, snazim se to radit podle "year" ale porad se to radi podle abecedy, sloupec year je int (11) null

while ($roles = mysql_fetch_object($queryroles)) {
                $querymovie = mysql_query ("SELECT * FROM movies WHERE id=$roles->movie_id ORDER BY year DESC");
                while ($movie = mysql_fetch_object($querymovie)) {                   
                      echo '<tr><td>'.$movie->year.'</td><td>'.$movie->name.'</td></tr>';
                }
             }
Fisir
Profil
Reaguji na anonyme:
year je klíčové slovo MySQL, pokud ho chceš využít jako název sloupce (nebo tabulky), musíš ho obalit zpětnými apostrofy: `year`.
Joker
Profil
anonyme:
Není to tím, že ten uvedený dotaz vybere v každém cyklu jen jeden záznam, takže není co řadit?
(Soudím podle toho, že podmínka je WHERE id = něco)
juriad
Profil
Stačí ti použít jen jeden dotaz s JOINem, stránku tím zjednodušíš a urychlíš. Ukaž i první dotaz.
anonyme
Profil *
Prvni dotaz je

$queryroles = mysql_query ("SELECT * FROM roles WHERE actor_id='$actor->id'");



A dotaz na $actor je

$queryactors = mysql_query ("SELECT * FROM actors WHERE id='$_GET[id]' AND gender='$gender'");

Jj Joker asi mas pravdu, zapeklita situace :(
juriad
Profil
Takže máš tři tabulky:
actors (id, gender, ...)
roles (actor_id, movie_id, ...)
movies (id, year, ...)
A ty se snažíš sestavit dotaz, který seřadí sestupně všechny filmy, ve kterých hraje herec s id = $_GET[id].
Nějak nechápu atribut gender, proč ho máš v podmínce?

SELECT m.* FROM movies m
JOIN roles r ON m.id = r.movie_id
WHERE r.actor_id = '$id'
ORDER BY m.year DESC

Nebo pokud chceš podrobnější podmínku (zahrnuje i ten gender):
SELECT m.* FROM movies m
JOIN roles r ON m.id = r.movie_id
JOIN actors a ON r.actor_id = a.id
WHERE a.id = '$id' AND a.gender = '$gender'
ORDER BY m.year DESC

Nikdy nevkládej vstup od uživatele přímo do dotazu. Musíš ho vždy ošetřit (představ si, že uživatel nahradí číslo za apostrof). Tady stačí
$id = intval($_GET['id'], 10)
anonyme
Profil *
Diky vyzkousim jak dojdu domu...
anonyme
Profil *
Vse ok, diky :)

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: