Skocz do zawartości

Zdjęcie
- - - - -

Błąd


3 odpowiedzi w tym temacie
  • Zaloguj się, aby dodać odpowiedź
Ups...
1
Neutralna

Napisano 12 lipca 2015 - 22:54

#1

Bawię się pewnym skryptem, niestety na stronie głównej otrzymuje taki błąd

Strict Standards: Non-static method db::_query() should not be called statically in lokalizacja pliku on line 133
Warning: Cannot modify header information - headers already sent by (output started at lokalizacja pliku) in lokalizacja pliku on line 220

Skrypt wygląda tak:

http://wklej.to/ISzC2

 


  • 0

writen

    Stary wyjadacz

  • 458 postów
    • Czas spędzony online: 29d 22h 59m 44s
133
Znakomita!

Napisano 13 lipca 2015 - 00:03

#2

Nie no, nie chce mi się analizować całej klasy. ale
Próbujesz wywołać metodę, która nie jest statyczna w sposób taki jakby była. Wywołanie metody _query() powinno wyglądać tak $this->_query()

Drugi błąd mówi, że próbujesz wysłać nagłówek gdy te już został wysłany. Prawdopodony scenariusz jest taki, że wywołujesz funkcję header() już po wyświetleniu jakiś danych np. funcją echo. Tak nie można robić. Tego się jednak nie dopatrzyłem w tym skrypcie. Być może ten błąd dotyczy innego pliku?


  • 0

logo-green-dark.png


Ups...
1
Neutralna

Napisano 13 lipca 2015 - 01:38

#3

Co do header, wycinek:

if( $error -> status() ){


            $batch['tlumaczenie'] = escape($_POST['tlumaczenie']);
            $tmp_cat = explode(',',$batch['kategorie']); unset ($batch['kategorie']);
            
if($db -> update('movie',$batch,null,$id)){

$db->q('DELETE FROM `category_movie` WHERE `movie_id` = "'.intval($id).'" ');
foreach ($tmp_cat as $v) {
$db->insert('category_movie',array(
'movie_id'=>intval($id),
'category_id'=>intval($v),
));


}


$item = $db->row('SELECT * FROM `movie` WHERE `id` = "'.intval($id).'" LIMIT 0,1');
$item = movie::parse($item,false);


header('Location: '.$item['link']);
exit();


    CMS::setContent( info::success('Film został pomyślnie zaktualizowany. <a href="admin.php?mode=movie&function=list">Wróć do listy filmów</a>') );
                 $showform=false;
} else {
    $error->put( l::t('sys','error_mysql') . $db->error ); 
               if(!empty($batch['okladka'])){
               @unlink( $batch['okladka'] );
                      @unlink( file::prefix($batch['okladka']) );
                  }
            } 
} else {
 if(!empty($batch['okladka'])){
       @unlink( $batch['okladka'] );
              @unlink( file::prefix($batch['okladka']) );
          }
}

Wypatrzyłem coś jeszcze:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given

A to wygląda tak.

public function fetchAssoc($mysql_query) {
$this->result = mysql_fetch_assoc($mysql_query);
if ($this->result) return $this->result;
else return false;
}

Pozbyłem się błędu "Non-static".


Użytkownik Ups... edytował ten post 13 lipca 2015 - 01:53

  • 0

Yeoman

    Stary wyjadacz

  • 358 postów
    • Czas spędzony online: 6d 19h 43m 48s
169
Znakomita!
  • LocationKatowice

Napisano 13 lipca 2015 - 16:48

#4

mysql_fetch_assoc przyjmuje rezultat zapytania z tego jak dobrze pamiętam, a Ty mu przesyłasz true lub false.

 

Pierw musisz wykonać przykładowo:

$result = mysql_query();

a później:

mysql_fetch_assoc($result);

Spróbuj sobie debuggować za pomocą var_dump()


  • 0

2ed58r7.png





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych