Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dziwny błąd między ifami
Forum PHP.pl > Forum > Przedszkole
Carveth
Otóż mam bardzo dziwny błąd w skrypcie który pierwszy raz spotykam

  1. <?php
  2. if(isset($_POST['submit']))
  3. {
  4.    $test = $db -> Execute("SELECT id, owner FROM equipment WHERE name='Złoty pierścień' AND type='X' AND status='U' AND owner=".$player -> id.");
  5.    if ($test -> fields['owner'] != ".$player -> id.")
  6.    {
  7.        error('***!');
  8.    }
  9.    elseif ($player -> platinum < 50)
  10.    {
  11.        error('***!');
  12.    }
  13.        else
  14.    {
  15.        $db -> Execute('UPDATE players SET platinum=platinum-50 WHERE id='.$player -> id);
  16.        $db -> Execute('UPDATE players SET klasa='***' WHERE id=".$player -> id);
  17.        $db -> Execute('UPDATE players SET exp=exp+300 WHERE id='.$player -> id);
  18.        $db -> Execute('DELETE FROM equipment WHERE id='.$test -> fields['id'].' LIMIT 1');
  19.        $db -> Execute("INSERT INTO equipment (owner, name, power, type, cost, zr, wt, minlev, maxwt, amount, magic, szyb, lang, repair, obraz) VALUES(".$player -> id.",'***',50,'A',10000,7,40,5,40,1,'N',0,'pl', 150, 17)") or error("nie mogę dodać!");
  20.        error('****');
  21. }
  22. ?>


A wywala errora

Cytat
Catchable fatal error: Object of class Player could not be converted to string in /***/***.php on line 26

a linia 26 to zawsze pierwsze zapytanie czyli w tym przypadku

  1. <?php
  2. $db -> Execute('UPDATE players SET platinum=platinum-50 WHERE id='.$player -> id);
  3. ?>


PS. Silnik Vallheru
l0ud
Umieść to w znacznikach [php ] [/php ] - ciężko się połapać bez formatowania składni

edit: bez kolorowania widzę tylko błędną końcówkę linii przypisania do $test (na początku kodu)


--edit (@ociu)
Fajnie.. jest taki przycisk pt. "Raportuj". Na następny raz skorzystaj z niego.
Carveth
jakie rozwiązanie proponujecie?
l0ud
Zajrzyj na ten kod co dałeś, i zobacz odkąd się psuje kolorowanie - chyba tam coś nie tak? Popraw to (w pierwszym poście - żeby kolorowanie było już ok) i napisz, czy dalej coś nie tak.
ggg
Linijka 3. Niepotrzebny cudzysłów przed zamknięciem nawiasu.
drPayton
Forum zjada literki, więc ciężko będzie to poprawić.

Natomiast co do błędu, to jest kwestia specyfiki php5.2. Szerzej tu: http://drupal.org/node/98393

I jeszcze cytat z forum bytes.com:

Cytat
This is a new "feature" of 5.2 - for some mystical reason they've
removed implicit object-to-string conversion. You must provide explicit
__toString if you're printing or concatenating your objects.
Carveth
Trochę musiałem grzebać ale wkońcu się udało. Można zamknąć/usunąć
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.