Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][mysql] SELECT oraz warunki
Forum PHP.pl > Forum > Przedszkole
pshemoNL
Witam,

Spędziłem kilkanaście godzin na rozwiązanie problemu i niestety muszę się poradzić w poniższej kwestii ponieważ żadne ze znanych mi metod oraz tych znalezionych nie działają.

Otóż mam reklamę, która powinna wyświetlać się tylko użytkownikowi z danego regionu. Czyli reklama posiada atrybut lokalizacji 7 oraz powinna wyświetlać się tylko użytkownikowi o lokalizacji 7. Jest jeszcze kilka innych warunków, które działają a wspomniany kod do modyfikacji wygląda obecnie tak:

  1. $qq = mysqli_query($con,"SELECT owner,id,description FROM normal_ads WHERE (queued <> 0 AND status = 1) AND (`id` NOT IN (SELECT ad_id FROM viewed_ads WHERE user_id = '{$_SESSION['user_id']}' AND type = 1)) ORDER BY id ASC LIMIT $offset, $ads");


W powyższym kodzie powinno znaleźć się jeszcze coś na wzór
  1. AND localize = '{$_SESSION['localize']}'
- choć oczywiście ten wzór jest błędny i nie działa.
nospor
nie bardzo rozumiem problem. Wiesz jaki masz dodac warunek wiec go dodaj.
pshemoNL
Tak jak pisałem we wstępie próbowałem wszelkich możliwych sposobów i niestety albo wyświetlają się i tak wszystkie reklamy (a więc warunek nie działa) albo po prostu wyrzuca błąd.
nospor
$qq = mysqli_query($con,"SELECT owner,id,description FROM normal_ads WHERE (queued <> 0 AND status = 1) AND (`id` NOT IN (SELECT ad_id FROM viewed_ads WHERE user_id = '{$_SESSION['user_id']}' AND type = 1)) AND localize = '{$_SESSION['localize']}' ORDER BY id ASC LIMIT $offset, $ads");
pshemoNL
Niestety taki kod powoduje, że nie wyświetla się żadna reklama. Zapomniałem sprecyzować, że chodzi o localize właśnie z normal_ads.
Kolejna moja próba wygląda tak i również bez sukcesu, jednak powinno to być coś ten deseń:

  1. $usrlcl = mysqli_query($con,"SELECT localize FROM users WHERE user_id = '{$_SESSION['user_id']}'");
  2. $qq = mysqli_query($con,"SELECT title,id,description,localize FROM normal_ads WHERE (queued <> 0 AND status = 1 AND localize = '$usrlcl') AND (`id` NOT IN (SELECT ad_id FROM viewed_ads WHERE user_id = '{$_SESSION['user_id']}' AND type = 1)) ORDER BY id ASC LIMIT $offset, $ads");
nospor
A od kiedy
$usrlcl = mysqli_query
zwraca wartosci jaka cie interesuje?? Toz to zwraca wynik zapytania a nie wartosc...
1) Manual
2) Patrz co zwracaja funkcje ktorych uzywasz
pshemoNL
Dziękuję! zakochany.gif

Zostawiam poprawny kod, jeśli moi potomkowie będą mieli podobny problem w przyszłości:

  1. $usrlcl = mysqli_query($con,"SELECT localize FROM users WHERE user_id = '{$_SESSION['user_id']}'");
  2. $details = mysqli_fetch_array($usrlcl);
  3. $qq = mysqli_query($con,"SELECT title,id,description,localize FROM normal_ads WHERE (queued <> 0 AND status = 1 AND localize = '{$details['localize']}') AND (`id` NOT IN (SELECT ad_id FROM viewed_ads WHERE user_id = '{$_SESSION['user_id']}' AND type = 1)) ORDER BY id ASC LIMIT $offset, $ads");
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.