Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczne wybieranie kolumn w zapytaniu do bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
jerzes
Witam smile.gif
Mam tabele z kilkunastoma kolumnami: np. id, nazwa, opis, data dodania
W jaki sposob mozna wyslac zapytanie do bazy danych w ktorym w zaleznosci od wybranej opcji bede mogl wybierac w zapytaniu interesujace mnie kolumny??
Uzycie instrukcji typu "if(...)" raczej nie wchodzi w gre bo trzebaby napisac kilkanascie warunkow.
Pozdr. i dzieki za ewentualna pomoc
c3zi
To moze switch rozwiaze twoj problem ?

PS Opisz dokladniej o co tobie chodzi
jerzes
No switch tez musialby byc dosc rozbudowany.
Chodzi o to ze mam proste zapytanie ktore wyswietla mi kilka kolumn.
Dodatkowo chce wrzucic opcje ktora wyszukuje mi konkretne dane. Problem polega na tym ze raz chce wybrac do wyswietlenia wiecej kolumn a raz mniej. I teraz pytanie: czy mozna zrobic jedno zapytanie w mysql ktore w zaleznosci od sytuacji wybierze jedna kolumne lub wiecej??
np.
  1. SELECT id,nazwa FROM tabela WHERE id>2
a jesli wybiore opcje z data i opisem to zapytanie bedzie:
  1. SELECT id,nazwa,opis,DATA FROM tabela WHERE id>2
mozna zrobic switch'a jesli ma sie do wyboru 3 opcje ale jesli ma sie ich 10??
Norbas
Zbuduj zapytanie w PHP. Schemat działania:
Kod
$sql = '';
// jeżeli pole 'nazwa_pola' jest wymagane (na podstawie jakiś opcji o których nie piszesz),
// to dodanie nazwy pola do zapytania
if ($opcje['nazwa_pola'])
  $sql .= 'nazwa_pola,';
// itd. dla pozostałych pól
// ...

if ($sql) {
  $sql = substr($sql, 0, strlen($sql)-1); // usunięcie ostatniego przecinka
  $sql = 'SELECT ' . $sql . ' FROM tabela WHERE id>2';
  // wykonanie zapytania i odczytanie wyników
}
jerzes
Dzieki o cos podobnego mi chodzilo smile.gif
Jeszcze tego nie testowalem ale wydaje sie byc ok.
Myslalem ze jest jakas mozliwos zrobienia tego na samym SQLu.Ale czasami najprostrze rozwiazania sa najlepsze :]
Mam tylko watpliwosci co do zmiennej $sql w ostatniej instrukcji warunkowej.Czy parser nie wyrzuci bledu jak sa zadeklarowane 2 zmienne o tej samej nazwie>>
Opcje o ktorych nie pisalem to kolumny wybierane na podst. checkboxow. Czyli tworze tablice do ktorej zapisuje wybrane pola cos w stylu
  1. <input type="checkbox" name="tablica[]" value="nazwa_kolumny">
maryaan
Cytat(jerzes @ 9.04.2007, 23:11:41 ) *
Czy parser nie wyrzuci bledu jak sa zadeklarowane 2 zmienne o tej samej nazwie
tu nigdzie nie deklarujesz zmiennej, ona sie "sama" deklaruje przy pierwszym uzyciu, natomiast jesli w zasiegu jednej zmiennej uzyjesz "innej" zmiennej o tej samej nazwie to po prostu nadpiszesz ta pierwsza
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.