Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dziwne zachowanie tworzonego zapytania
Sadamowski
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 4.07.2011

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


Witam,

Problem z pogranicza PHP i MySQL.... od razu do konkretów:

tworzę zapytanie dla MySQL:

  1. $query = "SELECT * FROM pep_decor
  2. WHERE pg_AA IN ('K','L','*') AND (pg_user = '" . $user . "' OR pg_user = 1) AND pg_active = 1";


to już zwracało mi błąd na bazie danych więc wy-echowałem $query i jako wynik dostaję:

SELECT * FROM pep_decor WHERE pg_AA IN ('K','L','*') AND (pg_user = 'Adam' OR pg_user = 1) AND pg_active = 1SELECT * FROM pep_decor WHERE pg_AA IN ('K','L','*') AND (pg_user = 'Adam' OR pg_user = 1) AND pg_active = 1

czyli jakby podwoił zapytanie..... WTF?(IMG:style_emoticons/default/questionmark.gif)

natomiast jesli wsadzam w instrukcje IN zmienną która wygląda : $deriv="'K','*'";

wtedy zapytanie wygląda następująco:

  1. $query = "SELECT * FROM pep_decor
  2. WHERE pg_AA IN (" . $deriv . ") AND (pg_user = '" . $user . "' OR pg_user = 1) AND pg_active = 1";


to w odpowiedzi na echo dostaję:

'SELECT * FROM pep_decor WHERE pg_AA IN ('K','*') AND (pg_user = 'Adam' OR pg_user = 1) AND pg_active = 1/SELECT * FROM pep_decor WHERE pg_AA IN (/) AND (pg_user = 'Adam' OR pg_user = 1) AND pg_active = 1

skąd wzięły się te slasze... nie wiem co jest grane bo jesli ten IN zastąpię osobnymi warunkami oddzielonymi OR to wszystko jest cacy.

Mózg mi chyba zaraz strzeli...
bedę wdzięczy za jakiekolwiek wskazówki

Ten post edytował Sadamowski 4.07.2011, 17:17:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
pedro84
post
Post #2





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Pokaż więcej kodu.
Go to the top of the page
+Quote Post
Sadamowski
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 4.07.2011

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


no nie za bardzo jest co pokazac bo to poczatek funkcji jest..ale bardzo prosze

  1. function SelectDeco ($deriv,$user,$default=null)
  2. {
  3.  
  4.  
  5.  
  6. $query = "SELECT * FROM pep_decor
  7. WHERE pg_AA IN (" . $deriv . ") AND (pg_user = '" . $user . "' OR pg_user = 1) AND pg_active = 1";
  8.  
  9. echo $query; // tu testowo wyswietla zapytanie
  10.  
  11.  
  12. $result = mysql_query($query) or die( mysql_error() ); // or die ('Server Error');
  13.  
  14.  
  15. $ret ="";
  16.  
  17. while($row = mysql_fetch_assoc($result)) {
  18.  
  19. i tak dalej i tak dalej
  20.  
  21.  
  22.  
  23.  
  24.  
Go to the top of the page
+Quote Post
l0ud
post
Post #4





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Zajmijmy się 1 przypadkiem, gdzie zapytanie jest zdublowane. Zamiast echo $query daj var_dump($query) i wklej co wypisze.
Wydaje mi się, że po prostu funkcję wywołujesz 2 razy, drugi raz gdzieś przypadkowo.
Go to the top of the page
+Quote Post
Sadamowski
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 4.07.2011

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


dzieki lOud za włączenie się do dyskusji:
oto var_dump:

string 'SELECT * FROM pep_decor

WHERE pg_AA IN ('K','*') AND (pg_user = 'Adam' OR pg_user = 1) AND pg_active = 1' (length=117)

string 'SELECT * FROM pep_decor

WHERE pg_AA IN (/) AND (pg_user = 'Adam' OR pg_user = 1) AND pg_active = 1' (length=111)

ciekawe czemu dubluje

cięzko mi uwieżyc, że gdzieś jeszcse wywołuje funkcję bo odpalałem ją z czystego pliku..jakaś paranoiczna sytuacja?(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) ?


dobra...cos nie tak k...a

na moim netbooku nawet nie piśnie i działa ok...

przeinstaluje PHP'a i zobacze co dalej

Go to the top of the page
+Quote Post
l0ud
post
Post #6





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Profilaktycznie możesz wkleić tutaj cały skrypt, ale skoro działa gdzie indziej, być może to jakiś problem z konfiguracją serwera lub przeglądarki. Spróbuj na innej.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 18.09.2025 - 10:38