Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Niepoprawnie odczytywane zapytanie do bazy danych?
Forum PHP.pl > Forum > Przedszkole
heaton124
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ź.
Turson
Przecież query1 jest w tym przypadku zwykłym stringiem, bo ani nie wykonujesz zapytania mysql_query ani nie pobierasz rekordów
heaton124
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.
ctom
to co chcesz zrobić w $query1 zrób w poniższej logice -> podpowiedź $row['signup'] >= time
heaton124
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.
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.