Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: losowanie z bazy danych
Forum PHP.pl > Forum > Bazy danych
contact
Witam,

Mam taki problemik:

Losuje sobie baner z bazy :


Kod
"SELECT * FROM tabela ORDER BY  RAND();"



Jak zrobić aby losował mi tylko te banery, które mają "zgodę" na emisję ?

aby losowo były wybierane te rekordy co mają emisja=TAK[/code]
Jabol
[sql:1:6f4f81e255]SELECT * FROM tabela WHERE emisja='TAK' ORDER BY id[/sql:1:6f4f81e255]
FiDO
Chyba sie pomyliles troszke Jabol (wiem, ze literowka, ale trzeba poprawic winksmiley.jpg )
[sql:1:1176acb595]
SELECT *
FROM tabela
WHERE emisja='TAK'
ORDER BY RAND();
[/sql:1:1176acb595]
Jabol
jak mozna dac order by rand()? Przeciez rand to nie nazwa pola? a moze to jakas technika?
uboottd
Normalnie, piszemy "order by rand()" i mamy smile.gif

A powazniej: po ORDER BY moze wystapic zarowno nazwa pola jak i wyrazenie (zreszta nazwa kolumny jest szczegolnym przypadkiem wyrazenia) w ktorym mozna jak najbardzie uzywac wbudowanych funckji. Wiec nic nie stoi na przeszkodzie ze uzyc RAND(), a poniewaz dla kazdego wiersza ta wartosc jest ewaulowana raz wiec przypisze to kazdemu wierszowi przypadkowa wartosc, a nastepnie po nich posortuje - i oto BACH! mamy wiersze w przypadkowej kolejnosci...
FiDO
Cytat
jak mozna dac order by rand()? Przeciez rand to nie nazwa pola? a moze to jakas technika?

No nie mow, ze w 'Twoim' Postgresie tego nie ma? winksmiley.jpg
kurtz
Hej
Cytat
jak mozna dac order by rand()? Przeciez rand to nie nazwa pola? a moze to jakas technika?
http://www.mysql.com/doc/en/Mathematical_f...ns.html#IDX1292 jeden ze starszych argumentow "dlaczego wole mysql" ;)


Pozdrawiam
miki_ok
chodzi o to, ze jak dolozylem order by rand() to wywala mi dane ze wszystkich kolumn, a nie jak potrzebuje tylko z wybranych. Uzywam takiego zapytania:
[php:1:4f5eb9b13d]<?php
$zapytanie = "SELECT * FROM obiekty WHERE typ = '$metoda_szukania' order by rand()"
?>[/php:1:4f5eb9b13d]

gdzie $metoda_szukania to nazwa wybranej kolumny wybierana z formy "select" czyli menusa..

wie ktos jak to naprawic?
adwol
Cytat
chodzi o to, ze jak dolozylem order by rand() to wywala mi dane ze wszystkich kolumn, a nie jak potrzebuje tylko z wybranych.

[sql:1:43191fe995]SELECT wybrana_kolumna FROM obiekty WHERE typ = '$metoda_szukania' order by rand()[/sql:1:43191fe995]
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.