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
Sadamowski
post
Post #2





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

Posty w temacie


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: 12.10.2025 - 06:16