Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pobranie tylko jednej wartości
Forum PHP.pl > Forum > Bazy danych
zdzichu
Witajcie. Stworzyłem sobie tabelę tpl_var. Jego struktura to:
Kod
id | assigned_to | name | value

Tabela ta odpowiada za zmienne szablonów w cmsie. Pole assigned_to odpowiada za przypisanie zmiennej do danego szablonu (jeśli NULL to jest to zmienna globalna, dostępna dla każdego szablonu). Chciałbym jednak zachować taką hierarchię: jeśli są zmienne o dwóch identycznych nazwach, to pobieram tą wartość, której assigned_to != NULL.
w tej chwili zapytanie wygląda tak:
  1. <?php
  2. $result = $db->execute("SELECT * FROM __tpl_vars WHERE assigned_to IS NULL OR assigned_to='".$actual_theme."' ");
  3. ?>

podejrzewam, że muszę dodać do tego jeszcze jakiś LIMIT() czy coś, jednak nie mam pojęcia jak to ugryźć... z góry dzięki za pomoc:)
Norbas
  1. ... ORDER BY assigned_to DESC LIMIT 1
zdzichu
no niestety... tak by było najprościej, ale jest to nie możliwe z jednego powodu: limit powoduje, że pobiera tylko jedną wartość z całego zapytania.
A przecież zmiennych może być kilka(mam na myśli zmienne o różnym name, bo o identycznym przewiduję max 2 ).
No, chyba, że da się użyć Limita w inny sposób.
Norbas
Zrób bez LIMIT smile.gif. W wypadku dwóch rekordów o tej samej wartości 'assigned_to' - wartość z NULL dostaniesz jako drugą (w pętli).
zdzichu
hmm.. niby działa, jednak moze to sprawiac pewne problemy później. Czy jest jednak metoda, która rozwiąże mój problem w pełni prawidłowo?
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.