Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Błąd mysql_fetch_assoc(), Wczytywanie newsa z bazy.
zolasty
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 2.07.2009

Ostrzeżenie: (0%)
-----


Pomógłby mi ktoś zmienić ten kod żeby działało? (IMG:style_emoticons/default/sad.gif)
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /usr/home/awelc/domains/urokliwe.pl/public_html/engine/sql.class.php on line 46

  1. <?php
  2. //require_once('config.php');
  3. $id=$_GET['id'];
  4. $zap2 = mysql_query("SELECT * FROM news WHERE id ='$id'");
  5. $sql->query( $zap2 );
  6.  
  7. while($r=$sql->fetchAssoc()){
  8.  
  9. echo "<div class='title'><b>".$r['tytul']."</div></b>";
  10. echo "<div class='text'>".$r['news']."<br/><br/></div>";
  11. echo "<div class='text'><b>Data dodania: </b>".$r['data']."<br/><br/><br/></div>";
  12. }
  13.  
  14. ?>

sql.class.php
  1. <?php
  2. ////SQL
  3. class sql
  4. {
  5. private $connection;
  6. private $result;
  7. private $row;
  8. private $numRows;
  9. private $Queries = 0;
  10. //SINGLETON
  11. static protected $sqlObj;
  12. public static function getInstance()
  13. {
  14. if(self::$sqlObj==null) {
  15. self::$sqlObj = new self;
  16. }
  17. return self::$sqlObj;
  18. }
  19.  
  20. public function connect ( $host, $user, $pass, $db )
  21. {
  22. $this->connection = mysql_connect( $host, $user, $pass );
  23. $this->query( "SET NAMES 'utf8'" );
  24.  
  25. }
  26.  
  27. public function query( $query )
  28. {
  29.  
  30. $this->result = @mysql_query( $query );
  31. $this->Queries++;
  32.  
  33.  
  34. return 1;
  35. }
  36.  
  37. public function fetchArray()
  38. {
  39. $this->row = mysql_fetch_array( $this->result );
  40. return $this->row;
  41. }
  42.  
  43. public function fetchAssoc()
  44. {
  45. $this->row = mysql_fetch_assoc( $this->result );
  46. return $this->row;
  47. }
  48.  
  49. public function fetchRow()
  50. {
  51. $this->row = mysql_fetch_row( $this->result );
  52. return $this->row;
  53. }
  54.  
  55. public function numRows()
  56. {
  57. return $this->numRown = mysql_affected_rows( );
  58.  
  59. }
  60.  
  61. public function disconnect()
  62. {
  63. mysql_close( $this->connection );
  64.  
  65. }
  66. public function lastID()
  67. {
  68. return mysql_insert_id();
  69.  
  70. }
  71.  
  72. public function numQueries()
  73. {
  74. return $this->Queries;
  75. }
  76. }
  77.  
  78.  
  79.  
  80.  
  81. ?>


Ten post edytował zolasty 8.07.2010, 10:19:13
Go to the top of the page
+Quote Post
motyl-pl
post
Post #2





Grupa: Zarejestrowani
Postów: 294
Pomógł: 31
Dołączył: 2.04.2010

Ostrzeżenie: (0%)
-----


Wywala taki błąd jak by było coś źle w zapytaniu do bazy .. Sprawdź dokładnie SELECT
Go to the top of the page
+Quote Post
wookieb
post
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jezus maria. Kolejny.
Temat: Jak poprawnie zadac pytanie

I jeżeli tego DOKŁADNIE nie przeczytasz to nie mamy o czym gadać.

Poza tym twoja "klasa" jest na tyle żałosna, że nawet nie potrafi sprawdzić czy zapytanie się wykonało.

Ten post edytował wookieb 8.07.2010, 10:49:23
Go to the top of the page
+Quote Post
zolasty
post
Post #4





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 2.07.2009

Ostrzeżenie: (0%)
-----


Przeczytane i dodane do kodu:
  1. <?php
  2. //require_once('config.php');
  3.  
  4. ini_set('display_errors','1');
  5.  
  6. $id=$_GET['id'];
  7. echo $id." tu id newsa. ";
  8.  
  9. $zap2 = mysql_query("SELECT * FROM news WHERE id ='$id'");
  10.  
  11. echo $zap2;
  12.  
  13. $sql->query( $zap2 );
  14.  
  15. while($r=$sql->fetchAssoc()){
  16.  
  17. echo "<div class='title'><b>".$r['tytul']."</div></b>";
  18. echo "<div class='text'>".$r['news']."<br/><br/></div>";
  19. echo "<div class='text'><b>Data dodania: </b>".$r['data']."<br/><br/><br/></div>";
  20. }
  21.  
  22. ?>


Zwraca:
2 tu id newsa. Resource id #6
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /usr/home/awelc/domains/urokliwe.pl/public_html/engine/sql.class.php on line 46

Zapytanie w phpmyadmin:
SELECT *
FROM news
WHERE id = '2'
Zwraca dobry rekord.

A tą klasę napisał mi kolega ale są problemy.
Go to the top of the page
+Quote Post
wookieb
post
Post #5





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




metoda query przyjmuje treść zapytania a nie jego wynik...
Go to the top of the page
+Quote Post
krzysztof_kf
post
Post #6





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Cytat(wookieb @ 8.07.2010, 11:48:43 ) *
Jezus maria. Kolejny.
Temat: Jak poprawnie zadac pytanie

I jeżeli tego DOKŁADNIE nie przeczytasz to nie mamy o czym gadać.

Poza tym twoja "klasa" jest na tyle żałosna, że nawet nie potrafi sprawdzić czy zapytanie się wykonało.



Wookieb chyba za dużo się naoglądałeś MTV a dokładnie moje 18 urodziny nie zachowuj się jak byś był pępkiem świata .


zolasty

co ci wyświetla mysql_error ? dla połączenia z bazą danych
Go to the top of the page
+Quote Post
zolasty
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 2.07.2009

Ostrzeżenie: (0%)
-----


Teraz trochę to pozmieniałam (IMG:style_emoticons/default/sad.gif) ale chyba jeszcze gorzej...
Teraz wyrzuca:
2 tu id newsa. ZAPYTANIE:SELECT * FROM news WHERE id ='2'
Fatal error: Call to a member function fetchAssoc() on a non-object in /usr/home/awelc/domains/urokliwe.pl/public_html/modules/view_news.php on line 22
Może lepiej nie korzystać z tej klasy.

  1. <?php
  2. //require_once('config.php');
  3.  
  4. ini_set('display_errors','1');
  5.  
  6. $id=$_GET['id'];
  7. echo $id." tu id newsa. ";
  8.  
  9.  
  10. $sql = "SELECT * FROM news WHERE id ='$id'";
  11. echo 'ZAPYTANIE:'.$sql;
  12. mysql_query($sql) or die('BŁĄD:'.mysql_error());
  13.  
  14. //$zap2 = mysql_query("SELECT * FROM news WHERE id ='$id'");
  15. //echo $zap2;
  16. //$sql->query( $zap2 );
  17. //echo 'ZAPYTANIE:'.$sql;
  18.  
  19. while($r=$sql->fetchAssoc()){
  20.  
  21. echo "<div class='title'><b>".$r['tytul']."</div></b>";
  22. echo "<div class='text'>".$r['news']."<br/><br/></div>";
  23. echo "<div class='text'><b>Data dodania: </b>".$r['data']."<br/><br/><br/></div>";
  24. }
  25. ?>



Omg... Już wiem (IMG:style_emoticons/default/biggrin.gif) Jak się siedzi przez całą noc w php i javascript którego się nie potrafi to się robi bardzo głupie błędy. Ale dzięki (IMG:style_emoticons/default/smile.gif)
Skopiowałam kod z wypisywania wszystkich ogłoszeń żeby było "szybciej". Pętla jest zbędna. Wyrzuca w końcu tylko jednego newsa.

Ten post edytował zolasty 8.07.2010, 12:05:41
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(krzysztof_kf @ 8.07.2010, 12:27:06 ) *
Wookieb chyba za dużo się naoglądałeś MTV a dokładnie moje 18 urodziny nie zachowuj się jak byś był pępkiem świata .

Po pierwsze wypraszam sobie takie stwierdzenia
Po drugie na tym forum co rusz pojawia się pytanie o takie proste g.... spowodowane brakiem umiejętności czytania i znajomości PHP która JEST tutaj wymagana
Po trzecie dałem odpowiedź (numer 2) do której kolega się nie zastosował więc o co ci chodzi? Ja mam problem czy kolega?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 22:48