| Autor | Zpráva | ||
|---|---|---|---|
| anonyme Profil * |
#1 · Zasláno: 6. 3. 2014, 19:15:20
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 |
#2 · Zasláno: 6. 3. 2014, 19:28:19
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 |
#3 · Zasláno: 6. 3. 2014, 19:28:30
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 |
#4 · Zasláno: 6. 3. 2014, 19:29:08
Stačí ti použít jen jeden dotaz s JOINem, stránku tím zjednodušíš a urychlíš. Ukaž i první dotaz.
|
||
| anonyme Profil * |
#5 · Zasláno: 6. 3. 2014, 20:02:31 · Upravil/a: anonyme
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 * |
#7 · Zasláno: 7. 3. 2014, 04:06:49
Diky vyzkousim jak dojdu domu...
|
||
| anonyme Profil * |
#8 · Zasláno: 7. 3. 2014, 14:48:54
Vse ok, diky :)
|
||
|
Časová prodleva: 12 let
|
|||
0