• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z zapytaniem do bazy MySQL

Cloud VPS
0 głosów
288 wizyt
pytanie zadane 22 marca 2016 w PHP przez Lucrais Obywatel (1,270 p.)
zmienione kategorie 22 marca 2016 przez Arkadiusz Waluk

Cześć,

Mam mały problem ze zdefiniowaniem odpowiedniego zapytania do bazy danych. Mianowicie: na stronie mam element "select", przez który z listy wybieram opcję A, opcję B, opcję C, itd. 

Wygląda to tak: 

$result = $polaczenie->query("SELECT * FROM baza WHERE typ='$typ' ORDER BY Nazwa $jak ");

Pod zmienną $jak mam "ASC" lub "DESC", natomiast w zmiennej $typ siedzi opcja A, B lub C, aby wypluwało na ekran tylko poszczególne rekordy z bazy. Co jednak w sytuacji, gdy chcę wyrzucić na ekran wszystko co siedzi w bazie? Definiowanie $typ=true, $typ=1, $typ=0 czy coś z tych rzeczy nie działa. Albo inaczej - gdy do zmiennej $typ wstawię wartość 0, to bezpośrednio wpisując zapytanie w bazie przez phpmyadmin działa, lecz na stronie już nie. Wiem że jest formuła która działa: WHERE typ IS NOT NULL, ale jej nie mogę wykorzystać ze względu na znak równości w zapytaniu przed zmienną. Czy jest jakaś droga aby zrobić coś takiego, czy muszę w takiej sytuacji zmodyfikować całe zapytanie? 

2 odpowiedzi

0 głosów
odpowiedź 22 marca 2016 przez Mateusz11 Pasjonat (22,910 p.)
Co to ma wspólnego z C++?

SELECT * jest złe

A nie można tego zrobić switch`em?
komentarz 22 marca 2016 przez Lucrais Obywatel (1,270 p.)
Z C++ nie ma to niczego wspólnego, i nigdzie również tak nie napiałem :)

$typ = * również nie działa, $typ=% tak samo. Zarówno w apostrofach jak i bez.

Ostatecznie zrobię to switchem, chciałem się jedynie dowiedzieć czy mogę tego w jakiś sposób uniknąć, gdyż bez switcha mam parę linijek kodu mniej.

 

EDIT: Faktycznie, zły dział przez przypadek mi się kliknął, przepraszam :)
komentarz 22 marca 2016 przez Mateusz11 Pasjonat (22,910 p.)
W kategorii pytania dałeś C++, lecz nasz aktywny mderator @Arkadiusz Waluk, już zmienił kategorie

$typ=* $typ=% ????
komentarz 22 marca 2016 przez Lucrais Obywatel (1,270 p.)
Wtedy zapytanie miałoby postać

SELECT * FROM baza WHERE typ= * (czyli wszystko) lub % (czyli dowolne znaki) ale nie działa, więc chyba nielogicznie myślę. Po prostu próbowałem wszystkiego, żeby działało wyszukiwanie wszystkich pozycji, bez usuwania znaku równości (żeby została część typ=, i tylko dopisać coś za tym). Jeśli nie ma takiej możliwości, to użyję switcha i zmodyfikuję zapytanie :)
0 głosów
odpowiedź 23 marca 2016 przez RegularLemon Stary wyjadacz (12,280 p.)
A nie możesz mieć osobnego zapytania dla pobrania wszystkich elementów z bazy? Wystarczy w IF sprawdzić czy isset($typ) i użyć wtedy odpowiedniej wersji zapytania.

Podobne pytania

–2 głosów
1 odpowiedź 338 wizyt
pytanie zadane 30 czerwca 2016 w PHP przez Kacper Duda Obywatel (1,970 p.)
0 głosów
2 odpowiedzi 352 wizyt
pytanie zadane 29 listopada 2015 w PHP przez Widemo Użytkownik (920 p.)
0 głosów
1 odpowiedź 571 wizyt

93,486 zapytań

142,419 odpowiedzi

322,771 komentarzy

62,900 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...