Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z num_rows
Forum PHP.pl > Forum > Przedszkole
Jen
Witam serdecznie.
Mam problem z policzeniem ilosci zwroconych z bazy rekordow. Ponizej wklejam kawalek kodu:

  1. <?php
  2.  
  3. if (isset($_POST['isbn']))
  4. {
  5.  $polaczenie = new mysqli("$host", "$uzytkownik", "$haslo", "$baza");
  6.  
  7.  $operacja = $polaczenie->query("SELECT * FROM uczelnia_biblioteka_ksiazka WHERE ISBN='".$_POST['isbn']."'");
  8.  
  9. // tu wklejam jedna z dwoch linijek ponizej
  10.  
  11.  $polaczenie->close();
  12. }
  13.  
  14. ?>


Jezeli stosuje:
  1. <?php
  2. $ilosc = $operacja->num_rows;
  3. ?>


Dostaje komunikat:
"Notice: Trying to get property of non-object in <sciezka>"

A jezeli:
  1. <?php
  2. $ilosc = mysqli_num_rows($operacja);
  3. ?>


Dostaje:
"Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in <sciezka>"

Czy ktos moglby mi pomoc w policzeniu ilosc zwracanych wynikow? Jak widac jestem poczatkujaca. Z gory dziekuje za wszelkie sensowne odpowiedzi. Uzywam php 5 i MySQL 5.
Pozdrawiam,
J.
zeli
z tego co wiem to:

mysql_affected_rows('nazwa_polaczenia') zwraca ilosc wierszy objetych dzialaniem zapatytania.
nospor
blednie zalozylas ze udalo ci sie utworzyc obiekt: new mysqli... to ci zwraca false.
http://pl.php.net/manual/en/function.mysqli-connect.php
masz tam przyklad z obslugą bledow. wykonaj go a bedziesz wiedzial co masz źle
Jen
Cytat(nospor @ 2006-02-25 15:05:08)
blednie zalozylas ze udalo ci sie utworzyc obiekt: new mysqli... to ci zwraca false.

Nie, polaczenie chyba nie zwraca mi false. W skrypcie uwzglednilam wypisywanie bledu jezeli polaczenie byloby trefne. Podajac kod w pierwszym poscie nie chcialam go zasmiecac, wiec pominelam sprawdzanie polaczenia.
Jeszcze raz wkleje tym razem caly:

  1. <?php
  2.  
  3. require_once("../config.php");
  4.  
  5. if (isset($_POST['isbn'])) 
  6. {
  7.  
  8. $polaczenie = new mysqli("$host", "$uzytkownik", "$haslo", "$baza");
  9.  
  10. if (mysqli_connect_errno()) {
  11.  printf("Connect failed: %s\n", mysqli_connect_error());
  12.  exit();
  13. }
  14.  
  15. $operacja = $polaczenie->query("SELECT * FROM uczelnia_biblioteka_ksiazka WHERE ISBN='".$_POST['isbn']."'");
  16.  
  17. $ilosc = $operacja->num_rows; 
  18.  
  19. $polaczenie->close();
  20.  
  21.  
  22. }
  23. ?>


W pliku config.php przechowywane sa dane do bazy (host, uzytkownik, haslo, nazwa bazy) i na pewno sa z niego dobrze czytane, bo bez problemu mozna je wypisac.

Czy mozliwe, ze problem jakims cudem tkwi w konfiguracji php? Mam raczej wszedzie domyslne ustawienia.
nospor
przepraszam, za szybko czytalem. Zapytanie nie zwraca ci wyniku, lecz false.
Daj tak:
  1. <?php
  2. $operacja = $polaczenie->query("SELECT * FROM uczelnia_biblioteka_ksiazka WHERE ISBN='".$_POST['isbn']."'");
  3. if (!$operacja){
  4. echo $polaczenie->error;
  5. }
  6.  
  7. ?>
Jen
Wielkie dzieki! W bledzie pojawil sie komunikat, ze zastosowany uzytkownik nie ma uprawnien dostepu. Zmienilam na roota i smiga. Przejrze prawa dostepu dla tego uzytkownika, ktorego uzywalam wczesniej. Nie domyslilabym sie, ze problem moze tkwic w uprawnieniach. Thx raz jeszcze.
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.