Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] mysql_num_rows - błąd
Forum PHP.pl > Forum > Przedszkole
BugsBunny
Kod ten miałem napisany w innej aplikacji i przeniosłem ją teraz do nowej. Efekt - NIE DZIAŁA
Kod
mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\homepage\dvd\index.php on line 43


a oto kod
  1. <?php
  2.  
  3.  
  4. function pobierz($co)
  5. {
  6. include ('dane.inc');
  7. $dblink = @mysql_connect($host,$user,$pass);
  8.  if (empty($dblink))
  9.  { echo "błąd przy podłączaniu do bazy dancyh";
  10.  }
  11.  if (mysql_select_db($db,$dblink) !== TRUE)
  12. { echo "błądz przy wybieraniu bazy danych";
  13. }
  14.  
  15. $zwroc = mysql_query($co,$dblink);
  16.  
  17. if ($wynik == TRUE)
  18. {echo "pobranie nie zawiera danych";  
  19. }
  20.  
  21. return $zwroc;
  22.  
  23. }
  24.  
  25.  
  26.  
  27.  $wynik = pobierz("SELECT * FROM `dvd` SORT BY `tytul`");
  28. for ($i = 0; $i < mysql_num_rows($wynik); $i++)  // TUTAJ POKAZUJE BŁĄD
  29.  {
  30.  $wiersze = mysql_fetch_array($wynik);  
  31.  
  32.  $film[$i] = new film($wiersze['id'],
  33. $wiersze['tytul'],
  34. $wiersze['dzwiek'],
  35. $wiersze['stan'],
  36. $wiersze['kto'],
  37. $wiersze['kiedy']);
  38.  }
  39.  
  40. ?>


Co tutaj może nie grać sad.gif
nospor
daj tak i zobacz co ci wyswietla:
  1. <?php
  2. $zwroc = mysql_query($co,$dblink) or die(mysql_error());
  3.  
  4. ?>
BugsBunny
Kod
Something is wrong in your syntax obok 'BY `tytul`' w linii 1

takie coś mi wyskoczyło , czyli bład tkwi gdzieś w moim zapytaniu a nie w skladni albo błędach logicznych. Poszukam
nospor
w mysql tak sie robi sortowanie: order by
  1. SELECT *
  2. FROM `dvd`
  3. ORDER BY `tytul`
BugsBunny
NO z tym się juz uporałem tylko teraz mam większy problem z moją klasą. Tworzę obiekty tak:
  1. <?php
  2.  
  3. for ($i = 0; $i < mysql_num_rows($wynik); $i++)
  4.  {
  5.  $wiersze = mysql_fetch_array($wynik);
  6.  
  7.  $film[$i] = new film;
  8.  $film[$i]->film($wiersze['id'],
  9. $wiersze['tytul'],
  10. $wiersze['dzwiek'],
  11. $wiersze['stan'],
  12. $wiersze['kto'],
  13. $wiersze['kiedy']);
  14.  }
  15. ?>


a oto początkowa część tej klasy
  1. <?php
  2. class film {
  3.  
  4.  
  5. var $film_id;
  6. var $film_tytul;
  7. var $film_dzwiek;
  8. var $film_stan;
  9. var $film_kto;
  10. var $film_kiedy;
  11.  
  12. function film($a,$b,$c,$d,$e,$f)
  13. {
  14. $this->film_id  = $a;
  15. $this->film_tytul = $b;
  16. $this->film_dzwiek = $c;
  17. $this->film_stan  = $d;
  18. $this->film_kto = $e;
  19. $this->film_kiedy = $f;
  20. }
  21. ?>


I taki błąd mi pokazuje angrysmiley.gif
Kod
Warning: Missing argument 1 for film() in c:\usr\krasnal\www\homepage\dvd\klasy.php on line 33

Warning: Missing argument 2 for film() in c:\usr\krasnal\www\homepage\dvd\klasy.php on line 33

Warning: Missing argument 3 for film() in c:\usr\krasnal\www\homepage\dvd\klasy.php on line 33

Warning: Missing argument 4 for film() in c:\usr\krasnal\www\homepage\dvd\klasy.php on line 33

Warning: Missing argument 5 for film() in c:\usr\krasnal\www\homepage\dvd\klasy.php on line 33

Warning: Missing argument 6 for film() in c:\usr\krasnal\www\homepage\dvd\klasy.php on line 33

Mecze się z tym już od godziny. Jako że w klasach jeszcze raczkuję to proszę o pomoc.
2. Jak zrobić wartośći zmienne w klasie jako prywatne żeby tylko przez funkcje je modyfikował bo jak dodaje private to bład pokazuję. sadsmiley02.gif
nospor
http://www.php.net/manual/pl/language.oop.php
przeczytaj dokladnie, szczegolnie rozdzial odnośnie konstruktorów. moze wpadniesz sam co mas źle winksmiley.jpg

edit: w php4 zmiennych nie ma prywatnych. mozna tylko przyjąc, ze niby są, ale w praktyce wszystkie są ogólnie dostępne
BugsBunny
Czytam i nie wiem. Jako ze klasami się bawiłem tylko w C++ to mi się wydaje że powinno to działać, ale jak to się mówi człowiek uczy się przez całe życie, a tym bardziej ja :-D
mike
A od kiedy tak:
  1. <?php
  2.  
  3. $film[$i] = new film;
  4.  
  5. ?>
...wywołuję się konstruktor? Mało tego od kiedy tak się wywoluje jakąkolwiek funkcje?

Konstruktor to funkcjia, która posiada nagłówek, a w nagłówku przy wywołaniu (w nawiasach) podaje się argumenty wywołania (o ile funkcja poiada argumenty).

Tak o wiele lepiej:
  1. <?php
  2.  
  3. $film[$i] = new film( $wiersze['id'], $wiersze['tytul'], $wiersze['dzwiek'], wiersze['stan'], $wiersze['kto'], $wiersze['kiedy'] );
  4.  
  5. ?>
BugsBunny
Jak pisałem to tak zrobiłem a potem mnie jakiś czort natchnął że zmieniłem. Już działa, ale do pełni szcześcia brakuje mi działającego w pełni Smarty tj.
  1. <?php
  2. $smarty->assign('tytul', $film->film_tytul);
  3. $smarty->assign('dzwiek', $film->film_dzwiek);
  4. $smarty->assign('stan', $film->film_stan);
  5.  $smarty->display( 'index.tpl' );
  6. ?>


$film to są te klasy które są opisane wcześniej.

index.tpl
  1. <table class="forum">
  2.    {section name=filmy loop=2}
  3.   <tr height="15">
  4.            <td width="350" class="forum">
  5.                  <p>{$tytul[filmy]}</p>
  6.         </td>
  7.         <td width="100" class="forum">
  8.           <p>{$dzwiek[filmy]}</p>
  9.         </td>
  10.         <td width="100" class="forum">
  11.           {$tytul[filmy]}
  12.         </td>  
  13.      </tr>
  14.      {/section}
  15.  </table>
  16.  <br>

Naczytałem się o sposobach zapętlania Smarty i co osoba to metoda worriedsmiley.gif pogubiłem się czego efektem jest niewyswietlanie nieczego sadsmiley02.gif Może napiszecie jakies konkrety jak to robić
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.