Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Niepoprawnie odczytywane zapytanie do bazy danych?
heaton124
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 8.12.2013

Ostrzeżenie: (0%)
-----


Witam, cześć.
Na początek wklejam kawałek kodu:
  1. $query = 'SELECT * FROM list WHERE `id` = '.$id.' LIMIT 1';
  2. $query1 = 'SELECT * FROM list WHERE `signup` >= CURDATE() AND `id` = '.$id.' LIMIT 1';
  3. $result = mysql_query($query);
  4. $row = mysql_fetch_array($result);
  5.  
  6. if ($row['q'] == 'a') {
  7. echo "tekst1";
  8. }
  9.  
  10. if ($row['q'] == 'b' && $query1 == true) {
  11. echo "tekst2";
  12. }
  13.  
  14. if ($row['q'] == 'b' && $query1 != true) {
  15. echo "tekst3";
  16. }


Efekt końcowy jest taki, że $row['q'] działa poprawnie. Dla wartości 'a', wyświetlany jest tekst1, jednak dalsze zapytania działają tak, że przy KAŻDYM elemencie z wartością 'b' przy $row['q'] wyświetla się tekst2, nie ważne jaki jest wynik zmiennej $query1. Domyślam się, że ten kod tutaj jest napisany po inwalidzku, ale skróciłem go jak się dało. Gdzie popełniam błąd?

Pozdrawiam i z góry dzięki za odpowiedź.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Przecież query1 jest w tym przypadku zwykłym stringiem, bo ani nie wykonujesz zapytania mysql_query ani nie pobierasz rekordów
Go to the top of the page
+Quote Post
heaton124
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 8.12.2013

Ostrzeżenie: (0%)
-----


Czyli w jaki sposób powinienem to zrobić, aby sprawdzać te warunki? Muszę stworzyć kilka podstron i na każdej inaczej formułować zapytanie $query?
Musi się dać to zrobić jakoś inaczej, bo w tym przypadku nie mogę zrobić kilku podstron - .htaccess'em przekierowałem ten plik by wyświetlał się jako przyklad.com/x/47 zamiast przyklad.com/x?id=47, i nie specjalnie zadawalałaby mnie teraz nowa formuła, by część rekordów wyświetlała się w sposób przykład.com/y/46.

Nie mniej jednak dzięki za odpowiedź, dam 'pomógł' po zakończeniu tematu.
Go to the top of the page
+Quote Post
ctom
post
Post #4





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

Ostrzeżenie: (0%)
-----


to co chcesz zrobić w $query1 zrób w poniższej logice -> podpowiedź $row['signup'] >= time


--------------------
Polecam MyDevil hosting idealny dla deweloperów
Go to the top of the page
+Quote Post
heaton124
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 8.12.2013

Ostrzeżenie: (0%)
-----


Już działa. ctom miał oczywiście racje, ale sam próbowałem to wcześniej zrobić i nie działało.
'Dla potomnych':
Gdy wstawiałem logikę taką: $row['signup'] < time("Y-m-d") nie działało. Musiałem użyć apostrofów zamiast cudzysłowów.

Dziwne, czytałem że można używać apostrofów i cudzysłowów naprzemiennie gdzieś na tym forum wink.gif
Tak czy inaczej dzięki, lecą pochwały.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 05:03