Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Zapytanie w zmiennej
DeN_
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.03.2013

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


witam, spotkałem się dziś z poważnym problemem. Posiadam zapytanie Sql w zmiennej, kiedy próbuje połączyć się w sposób pokazany poniżej wyskakuje błąd:
  1. $sql = $zapytanie3;
  2. $rs = $mysqli->query($sql);
  3.  
  4. if($rs === false) {
  5. trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $mysqli->error, E_USER_ERROR);
  6. }
  7. else {
  8. $rows_returned = $rs->num_rows;
  9. }
  10. $rs->data_seek(0);

natomiast gdy wyświetlę zmienną za pomocą echa i skopiuje to co się wyświetliło do zawartości zmiennej $sql wszystko działa tak jak powinno. Gdzie mam szukać przyczyny ?
Go to the top of the page
+Quote Post
Turson
post
Post #2





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

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


Pokaż więcej kodu, z zapytaniem
Go to the top of the page
+Quote Post
DeN_
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.03.2013

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


  1. if (isset($_SESSION['zapytanie3'])){ $sql=''.$_SESSION['zapytanie3'].'';
  2. }
  3. else{
  4. $sql="SELECT SUM(zuzycie) FROM dokladne_zuzycie WHERE uzytkownik = '".$_SESSION['id']."' and zrodlo ='".$_SESSION['source']."' and (czas='22' or czas='23'
  5. or czas='24' or czas='1' or czas='2' or czas='3' or czas='4' or czas='5' or czas='13' or czas='14') ";
  6. }
  7. $rs=$mysqli->query($sql);
  8.  
  9. if($rs === false) {
  10. trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $mysqli->error, E_USER_ERROR);
  11. }
  12. else {
  13.  
  14.  
  15. $rows_returned = $rs->num_rows;
  16. }
  17. $rs->data_seek(0);
  18.  



Zapytanie, której jest w innym pliku tworzone z dwóch tablic i zmienione w stringa implode'm a następnie przekazane do sesji wygląda tak:
  1. SELECT SUM(zuzycie) FROM dokladne_zuzycie WHERE uzytkownik =" 1" AND zrodlo ="Ab2" AND DATA = "2014-01-03" AND czas IN("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24") OR DATA = "2014-01-04" AND czas IN("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24")

Go to the top of the page
+Quote Post
Turson
post
Post #4





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

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


No dobra, ale jaki ten błąd wywala bo nie napisałeś
Go to the top of the page
+Quote Post
DeN_
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.03.2013

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



  1. Fatal error: Wrong SQL: select SUM(zuzycie) from dokladne_zuzycie WHERE uzytkownik =" 1" and zrodlo ="Ab2" and data = "2014-01-03" and czas in("6","7","8","9","10","11","12","14","15","16","17","18","19","20","21") or data = "2014-01-04" and czas in("6","7","8","9","10","11","12","14","15","16","17","18","19","20","21") in C:\WebServ\httpd\Praca_T\oszczednosci.php on line 115
  2.  

Wpisałem kod do PHPmyAdmin i tam też działa.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




W komuniakcie bledu powinno byc to:
Error: ' . $mysqli->error
jednak nigdzie nie widze w tym komunikacie co pokazales.... czary?
Go to the top of the page
+Quote Post
DeN_
post
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.03.2013

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


Dziwna sytuacja, wpisałem kod ręcznie, celowo zrobiłem literówkę i wyświetliło to o czym piszesz ale jak wpiszę zmienną to wyświetla tylko to co przedstawiłem.
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cos mieszasz.... kod co tu nam pokazales zawiera inne zapytanie niz na twoim rzekomym bledzie. Lepiej poprsawnie zlokalizuj ktory to kod
Go to the top of the page
+Quote Post
DeN_
post
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.03.2013

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


Zapytanie jest inne bo zmieniłem dane wejściowe, ogólnie to dostaje dane wejściowe z posta w formie tablicy, później łącze je w stringa i powstaje zmienna która ma być zapytaniem, bez względu na dane wejściowe zawsze jest ten sam problem.
Go to the top of the page
+Quote Post
_Borys_
post
Post #10





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


Skoro z formularza pobierasz to może masz niechciane znaki, spacje, znaki nowej linii itd.
Oczyść dane z formularza funkcją trim() lub podobne i potem łącz w stringa.
Go to the top of the page
+Quote Post
DeN_
post
Post #11





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 19.03.2013

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


Cytat(_Borys_ @ 29.01.2014, 23:02:59 ) *
Skoro z formularza pobierasz to może masz niechciane znaki, spacje, znaki nowej linii itd.
Oczyść dane z formularza funkcją trim() lub podobne i potem łącz w stringa.

Wlekie, wielkie dzięki z tym właśnie był problem (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
phpion
post
Post #12





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Zapytanie może i działa, ale czy zwraca prawidłowe wyniki? W warunkach masz OR - czy przypadkiem nie brakuje Ci nawiasów? cos AND cos OR cos AND cos to co innego niż (cos AND cos) OR (cos AND cos).
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: 26.08.2025 - 20:12