Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP] Nie mogę wysłać jako argument funkcji zapytania SQL, dlaczego?
lamcpp
post
Post #1





Grupa: Zarejestrowani
Postów: 372
Pomógł: 2
Dołączył: 10.05.2009

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


witam, stworzyłem taką funkcję do nawigacji na stronie(tworzącą linki Następny i poprzedni) i wyswietlający aktualne zdjęcie:
  1. function nawigacja($prev,$next)
  2. {
  3. echo "<a href='index.php?id={$_GET['id']}&wysw=yes'><img src='".$images_dir."/".$_GET['plik']."' border='0' alt='".$res[1]."' /></a>";
  4. $rezultat = mysqli_query($dbc,$next);
  5. $rezultat2 = mysqli_query($dbc,$prev);
  6. while($spr = mysqli_fetch_array($rezultat))
  7. {
  8. echo "<a href='index.php?wysw=yes&glob=1&plik={$spr['plik']}&nazwa={$spr['nazwa']}&id=".$spr['id']."'>Następne</a>";
  9. }
  10. while($spr = mysqli_fetch_array($rezultat2))
  11. {
  12. echo "<a href='index.php?wysw=yes&glob=1&plik={$spr['plik']}&nazwa={$spr['nazwa']}&id=".$spr['id']."'>Poprzednie</a>";
  13. }
  14. }


wywołuję ją tak:
  1. $prev = "SELECT zdjecie.id,nazwa,plik FROM zdjecie WHERE zdjecie.id <{$_GET['id']} ORDER BY id DESC LIMIT 1";
  2. $next = "SELECT zdjecie.id,nazwa,plik FROM zdjecie WHERE zdjecie.id >{$_GET['id']} ORDER BY id ASC LIMIT 1";
  3. nawigacja($prev,$next);


ale niestety funkcja nie działa, tzn nie działają argumenty przesyłane do funkcji, czyli zapytania SQL. Czy nie można wysyłać zapytan jako argumenty funkcji? jesli nie to jak to obejsc?
Takie komunikaty wyskakują:
Cytat
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in D:\usr\galeria\funkcje.php on line 22

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in D:\usr\galeria\funkcje.php on line 23

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in D:\usr\galeria\funkcje.php on line 24

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in D:\usr\galeria\funkcje.php on line 28


Czyli tak jakby te argumenty do funkcji wogole się nie przesyłały. Ale dlaczego tak się dzieje? wsyzstko jest na 100% dobrze napisane, ponieważ sprawdzałem ten sam kod ale bez funkcji i działa. I na pewno problem ma związek z treśćią zapytan przesyłanych do funkcji, sprawdzałem umieszczając te zapytania poza funkcją i wszystko jest wporządku. No ale one muszą być w funkcji.

Prosiłbym o pomoc. Myślałem, że może te argumetny nie mają cudzysłowiów albo coś, no ale przecież umieszczone są jako łancuch znaków...
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




Przeciez komunikat wyraźnie mowi jaki to argument:
Cytat
mysqli_query() expects parameter 1 to be mysqli, null given

ktory to pierwszy argument? No u Ciebie $dbc. Czyli $dbc jest null. A dlaczego? Bo nie przeczyales o zasięgu zmiennych:
http://pl2.php.net/manual/pl/language.variables.scope.php


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

"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
lamcpp
post
Post #3





Grupa: Zarejestrowani
Postów: 372
Pomógł: 2
Dołączył: 10.05.2009

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


no wystarczyło dodać:
  1. global $dbc; global $images_dir;

Ale powiem szczerze, byłem przyzwyczajony do zmiennych globalnych własnie z C++, że nie trzeba ich dodatkowo wywoływać wewnątrz zmiennej lokalnej, dla mnie to trochę niedorzeczne.

Niemniej jednak trzeba się przyzwyczaić:) Dzięki nospor za pomoc.
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: 19.08.2025 - 16:56