Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem (nie wiem jak opisać)
Forum PHP.pl > Forum > Przedszkole
jarek998
Przy pisaniu skryptu, napotkałem na błąd i nie wiem jak go rozwiązać.
Dokładniej, pisze skrypt i do tego chce podpiąć funkcje, gdy to robię wszystko znika, ale tylko w tedy gdy w tej funkcji jest zawarte zapytanie do bazy.
W innym wypadku, wszystko działa poprawnie.

Skrypty 1 (do którego jest podpinana funkcja):
  1. <?php
  2. include("inc/poloczenie.php");
  3. include("inc/zalogowany.php");
  4. include("inc/gora.php");
  5. menu();
  6. include("inc/walki.php");
  7. walcz();
  8. if(empty($_GET['id'])){
  9. echo "<h3>Ostatnie Sparingi</h3>";
  10. }
  11.  
  12. include ("inc/dol.php");
  13. ?>

<?php
function walcz(){
}
?>

Raportowanie błędów włączyłem:
  1. ini_set('display_errors', 1);


Czekam z niecierpliwością na jakikolwiek odzew, bo jest bardzo ciekawy co jest nie tak smile.gif
Pozdrawiam
Kshyhoo
Pokaż funkcję walcz.

PS, nie programuj w święta - bug się rodzi wink.gif
jarek998
Jakiekolwiek zapytanie do bazy bym nie napisał jest błąd
  1. function walcz(){
  2. $sel = $pdo->prepare("SELECT * FROM uzytkownicy WHERE id:id");
  3. $sel->bindValue(":id", $gracz['id'], PDO::PARAM_INT);
  4. $sel->execute();
  5. }

Raportowanie błędów pokazuje takie coś:
Notice: Undefined variable: pdo in inc/walki.php on line 8 Fatal error: Call to a member function prepare() on a non-object in /inc/walki.php on line 8
nospor
manual php -> zasieg zmiennych
jarek998
Dodałem potrzebne pliki do skryptu gdzie jest funkcja ale dalej to samo
nospor
Ja nie mowilem o plikach... Zajrzales do dzialu do ktorego cie skierowalem? Tam nie ma nic o plikach tylko o GLOBAL
jarek998
No tak, zajrzałem tylko nie rozumiem. :/
nospor
To oprocz zajrzenia jeszcze przeczytaj. Masz tam przyklady ktore raczej wszystko wyjasniaja i pokazuja jak nalezy uzywac GLOBAL
jarek998
Tak, czytam ale nie rozumiem thumbsdownsmileyanim.gif

Dodałem na początku funkcji:
  1. function walcz(){
  2. global $pdo;
  3. $sel = $pdo->prepare("SELECT * FROM uzytkownicy WHERE id:id");
  4. $sel->bindValue(":id", $gracz['id'], PDO::PARAM_INT);
  5. $sel->execute();
  6. }

teraz wyskakuje że jest błąd w 11 linij czyli bindValue. Tamto się poprawiło i działa.
Kshyhoo
Treść komunikatu łaskawie...
nospor
zasieg zmiennych dotyczy kazdej zmiennej a nie tylko $pdo... skoro gdzies tam tworzysz zmienna $gracz to ona tez ma byc w gobal. Ja rozumiem ze to swieta, ale mysl troche
jarek998
Dzięki nospor, faktycznie święta to i się myśleć nie chce goatee.gif
Wszystko pięknie działa. specool.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.