Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: num_rows i error
Forum PHP.pl > Forum > PHP
daniel1302
  1. <?php
  2. public function Error ()
  3. {
  4. if (mysql_error()){
  5. $this ->reject = '<b><u>Błąd w zapytaniu!</u></b><br />
  6. ID błędu: <b>'.mysql_errno().'</b><br />
  7. Treść: '.mysql_error();
  8. return $this->reject;
  9. }
  10. }
  11. ?>

mysql_num_rows
  1. <?php
  2. public function numRows($query) 
  3. {
  4. $this -> reject = mysql_num_rows(mysql_query($query));
  5. if ($this -> reject > 0)
  6. {
  7. //if zapobiegający wywaleniu errora gdy zapytaniu zwróci 0
  8. $this -> reject = $this -> reject or die($this->Error());
  9. }
  10. return $this -> reject;
  11. }
  12. ?>



to jest kawałek mojej klasy
i musiałem za stosować tego if`a bo jak go niebyło w przypadku gdy zapytanie zgłosiło wynik = 0
to wywalało error
czy da sie to ominąć?
tzn usunąć ifa a zostawić obsługe błędu?
deirathe
nie wiem czy o to Ci chodzi:
  1. <?php
  2. public function numRows($query) 
  3. {
  4.  $this -> reject = mysql_num_rows(mysql_query($query))or $this->Error();
  5.  return $this -> reject;
  6. }
  7. ?>

a i w error dodaj exit();
daniel1302
Ale wtedy strona będzie nadal działać chodzi mi, że jak zastosuje or DIE i jesli i zwroci wynik 0 to strona przestaje sie wykonywac po zapytaniu
deirathe
czyli strona ma działać po wywaleniu błędu czy nie bo trochę się pogubiłem
daniel1302
Strona działa aż do odwołania się do funkcji klasy
$db->numRows(xxx);
a po zapytaniu już nie czyli stosuje funkcje die()
dlatego dałem tego ifa teraz działa, ale czy nie da się przyspieszyć
miałem gre i miałem 1500 graczy ale serwer padł bo Vallheru to zły skrypt i pisze swój
Cotter
Proponuję w ten sposób:
Kod
public function numRows($query)
        {
         $res = mysql_query($query);
        $this -> reject = mysql_num_rows($res);
        if (!$res)
        {
             die($this->Error());
        }
        return $this -> reject;
        }

Teraz jeżeli rezultat nie będzie poprawny zostanie wyrzucony error. W przeciwnym wypadku będzie wszystko ok (nawet jeśli $this->reject jest 0. Można jeszcze prościej:
Kod
public function numRows($query)
        {
         $res = mysql_query($query) or  die($this->Error();
        $this -> reject = mysql_num_rows($res);
        return $this -> reject;
        }
daniel1302
O dzięki ten 2 sposób mi pomógł
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.