Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SELECT where? :F
Forum PHP.pl > Forum > Bazy danych > MySQL
q250
Mam w bazie danych liste teledyskow. Lista ma powiedzmy 20 pozycji. W kazdej pozycji okreslona jest ocena tego teledysku od 1 do 10.

Chce zrobic tabelke TOP 10, a wiec pobrac 10 pozycji z tabeli teledyskow od najwyzszej oceny do najnizszej...

SELECT teledyski_ocena FROM teledyski WHERE teledyski_ocena < 10 ORDER BY teledyski_ocena DESC LIMIT 10

I wychodzi jeden wynik w tablicy.... w dodatku niewiadomo jaki teledysk z ocena 9...
Niemoge sobie wyobrazic nawet takiego zapytania, bede wdzieczny za pomoc.

(W tabeli teledyski mamy rekordy, teledysk_nazwa, teledysk_ocena itp).

UPDATE:
mam tez teledyski_datestamp i chcialbym zrobic, aby top 10 teledysko bylo zalezne od daty rowniez... czyli top10 z dodanych teledyskow w ciagu ostatniego tygodnia, to troche skomplikuje sprawe com? winksmiley.jpg
lopik
  1. SELECT * FROM teledyski WHERE teledyski_ocena <= 10 ORDER BY teledyski_ocena DESC LIMIT 10


Cytat("q250")
(W tabeli teledyski mamy rekordy, teledysk_nazwa, teledysk_ocena itp).

Powinno być jeszcze `teledysk_id` ;>
q250
jest teledyski_id oczywiscie winksmiley.jpg, ale teraz gdy chce wyswietlic z tej listy po kolei nazwy tych teledysko daje:

1. ".$data['teledyski_name']."<br />
2. ".$data['teledyski_name']."<br />
3. ".$data['teledyski_name']."<br />

i wszedzie mam tosamo winksmiley.jpg ta sama nazwe teledysku ... powinienem jakos zaznaczyc ze ma wziasc $data['teledyski_name !nastepny_name!'] ? Czy zapytanie jest zle....

No i ten dodatek, WHERE teledyski_datestamp < "time() - 36000" <-- powiedzmy ze to jest tydzien
gdzie go w zapytaniu doczepic jakos tak?

Kod
SELECT * FROM teledyski WHERE teledyski_ocena <= 10, teledyski_datestamp <= 'time() - 36000'  ORDER BY teledyski_ocena DESC LIMIT 10
lopik
Podaj kod jak wyświetlasz teledyski ? - czyżbyś nie używał funkcji mysql_fetch_xxx questionmark.gif dry.gif

A co do tego tygodnia, to musisz w WHERE dodać odpowiedni warunek tak jak napisałeś, tylko dobrze obliczyć date winksmiley.jpg
Tu masz pomocnika 11.6. Date and Time Functions
q250
moja baza wyjsciowa jest php fusion i robie to tak:


$result =dbquery("SELECT teledyski_id, teledyski_ocena, teledyski_name FROM ".$db_prefix."teledyski WHERE teledyski_ocena <= 10 ORDER BY teledyski_ocena DESC LIMIT 10");
$data = dbarray($result);


potem wyswietlam

echo "
1. ".$data['teledyski_name']."<br />
2. ".$data['teledyski_name']."<br />
3. ".$data['teledyski_name']."<br />
";


PS
Ten array w calosci wyglada tak:

Array ( [teledyski_id] => 59 [teledyski_ocena] => 10 [teledyski_name] => Jay-Z )


Czyli chyba niedziwne ze wszedzie jest jeden name... skoro w tablicy po tym zapytaniu tez jest tylko jeden
lopik
Eh ale zaraz, po co to sprawdzanie w WHERE (; tak ma być:

  1. SELECT * FROM teledyski ORDER BY teledyski_ocena DESC LIMIT 10 ;


Nie wiem jak to jest z fusionem, ale chyba to $data = dbarray($result); powinno w pętli być:
Coś w stylu:
  1. <?php
  2. while($data = dbarray($result)) {
  3. echo '<p>'.$data['teledyski_id'].' '.$data['teledyski_name'].' '.$data['teledyski_ocena'].'</p>';
  4. }
  5. ?>


Ale pewności nie mam, bo nie bawiłem się Fusionem. (:
q250
Dziala smile.gif respekt lopik, dzieki za szczegolowa pomoc, to mi pomoze na przyszlosc rowniez
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.