Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z zapytaniem MySql w funkcji php, standardowe zapytanie przestaje działać jeśli umieszczę je w funkji
tommyexlee
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.06.2009

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


Witam,

Mam problem z zapytaniem mysql. Mianowicie mam taką operację:
  1. <?php
  2. mysql_connect(tu sa dane) or die(mysql_error());
  3. $costam='text';
  4. $id2=45;
  5.  
  6. $zapytanie="SELECT id,kolumna FROM $tabela WHERE kol2=$costam AND id_2=$id2";
  7. $odp=mysql_query($zapytanie) or die(mysql_error());
  8. $cos=mysql_fetch_array($odp);
  9. ?>


Wszystko działa ładnie, ale jak wrzucę to do funkcji, np:
  1. <?php
  2. mysql_connect(tu sa dane) or die(mysql_error());
  3.  
  4. function fun($z1,$z2){
  5. $tabela='tabelka';
  6. $zapytanie="SELECT id,kolumna FROM $tabela WHERE kol2=$z1 AND id_2=$z2";
  7. $odp=mysql_query($zapytanie) or die(mysql_error());
  8. $cos=mysql_fetch_array($odp);
  9. }
  10.  
  11. fun($z1,$z2);
  12. ?>


to wywala mi błąd: You have an error in your SQL syntax; check the manual that corresponds to your MYSQL server version for the right syntax to use near " at line 1.

Czy mógłby mi ktoś wyjaśnić dlaczego tak jest? Czyżby było jakieś ograniczenie na to gdzie można się pytać mysql o dane? Jak dla mnie to dziwne i bez sensu...
Liczę na waszą pomoc.
Z góry dziękuję.
Pozdrawiam,
Tomek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


  1. <?php
  2. $zapytanie="SELECT `id` , `kolumna` FROM `$tabela` WHERE `kol2`= '$z1' AND `id_2`=$z2";
  3. ?>


najlepiej jeszcze sprawdzić czy drugi parametr to liczba w razie coś lub chociaż zrzutować winksmiley.jpg

P.S. Na szybko spojrzałem i sądzę że to to, jeżeli nie to i tak tak powinno to być zapisane, a jak coś to jeszcze spojrze rano, dobranoc.

Ten post edytował melkorm 21.06.2009, 23:21:25


--------------------
Go to the top of the page
+Quote Post
tommyexlee
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.06.2009

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


1. Nigdy nie byłem w stanie zrozumieć po co są te ` znaczki, skoro działa bez nich...
2. Zrobiłem tak jak mówiłeś i niestety nie pomogło... Mało tego: usunąłem warunek WHERE i zostawiłem samo
  1. <?php
  2. $zapytanie="SELECT id,kolumna FROM $tabela
  3. ?>

i też nic z tego.
But thanks anyway smile.gif
Jeśli jednak wpadniesz na pomysł co może być nie tak, to bardzo proszę podziel się rozwiązaniem smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




  1. <?php
  2. $odp=mysql_query($zapytanie) or die('zapytanie:'.$zapytanie.'---blad:'.mysql_error());
  3. ?>

co ci wyswietlilo?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tommyexlee
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.06.2009

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


Dzięki nospor smile.gif
Dzięki Twojej poradzie znalazłem błąd.
Sorry, ale trochę wprowadziłem Was wszystkich w błąd. W funkcji nie miałem wpisu $tabela='tabelka'. Był on poza funkcją. I mysql nie wiedział skąd pobierać dane.
Czyli mój problem dotyczył zasięgu zmiennych (poza funkcją działało, a w funkcji już nie).
Dzięki jeszcze raz smile.gif
Pozdrawiam,
Tomek

btw. Widzę, że to jest zastosowanie pkt 6 w Twoim PHP-FAQ... ja zwykle zwracałem mysql_error() jeśli jest błąd. Nigdy nie wpadłem na to żeby dać echo zapytania... thx again

Ten post edytował tommyexlee 22.06.2009, 10:00:50
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 04:17