Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Left join i wybieranie losowe
Forum PHP.pl > Forum > Bazy danych > MySQL
qeuw
Otóz próbuje napisac skrypt ktory wyswietla kategorie, i pokazuje jedno losowe zdjecie dla kazdej z kategorii.
Probowałem w taki sposob ale on nie działa.
  1. SELECT *
  2. FROM kategoria LEFT JOIN zdjecie ON (kategoria.kat_id=zdjecie.zdj_kat_id) OR ORDER BY rand() LIMIT 1
kszychu
A co robi tam ten niebieski or?
popbart
A po co tu left join? Przecież left join podstawia wartości null dla kategorii w której nie ma zdjęć. I 'or' też odpada winksmiley.jpg
  1. SELECT *
  2. FROM kategoria INNER JOIN zdjecie ON (kategoria.kat_id=zdjecie.zdj_kat_id)
  3. ORDER BY rand() LIMIT 1
kszychu
Cytat(popbart @ 2005-01-13 16:15:29)
A po co tu left join? Przecież left join podstawia wartości null dla kategorii w której nie ma zdjęć.

Ano może właśnie po to: by wyświetlić też puste kategorie.
popbart
Cytat
Ano może właśnie po to: by wyświetlić też puste kategorie.

A tak w ogóle to powinno być tak tongue.gif
  1. SELECT * FROM(SELECT *
  2. FROM kategoria LEFT JOIN zdjecie ON (kategoria.kat_id=zdjecie.zdj_kat_id)
  3. ORDER BY rand()) AS tab GROUP BY tab.kat_id
qeuw
Niestety te kody nie wyświetlaja tegoco chce lub nie działaja.
Napisze jak ma to wygladac bo mogłem zle opisac sytuacje.
Mam galerie, znajduja sie w niej 3 tabele kategoria,podkategoria,zdjecie. W tabeli zdjecie znajduje sie odwolanie do id tabel: kategorii i podkategorii. Chce aby kazda kategoria miała jakies losowe zdjecie, przypadajace do kazdej z kategorii.
popbart
Mój select działa tylko na mysql > 4.1.x (subquery) sad.gif
Jeśli masz starszego to może tak prymitywniej
  1. <?php
  2. $query=&#092;"select * from kategoria\";
  3. $result=mysql_query($query);
  4.  
  5. for($i=0,$max=mysql_num_rows($result);$i<$max;$i++)
  6. {
  7.  $tab=mysql_fetch_assoc($result);
  8.  
  9.  echo $tab['id_kat'].&#092;" \";
  10.  
  11.  $query2=&#092;"select * from zdjecie where zdj_kat_id=\".$tab['id_kat'].\" order by rand() limit1\";
  12.  $result2=mysql_query($query);
  13.  $tab2=mysql_fetch_assoc($result);
  14.  
  15.  echo $tab['link'];
  16.  
  17. }
  18. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.