Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Resource id #6- co to za błąd? oO
Forum PHP.pl > Forum > Przedszkole
ArekJ
Witam,
otóż próbuję skleić sobie czat/sb, ale niestety nie idzie mi :/ Dokładniej mam problem z pobraniem czegoś z bazy. Zrobiłem połączenie dwóch tabel lecz wywala błąd:
Resource id #6
Kod pobierania danych wygląda tak
  1. SELECT cz.tekst, p.login FROM czat cz LEFT JOIN uzytkownicy p ON p.id = cz.id_w ORDER BY cz.id DESC LIMIT 5

Gdzie jest błąd? Szukałem informacji o tym błędzie, ale nigdzie nie mogę nic o nim znaleźć.
nospor
to nie zaden blad.... przeczytaj w manualu co zwraca mysql_query
http://pl.php.net/manual/pl/function.mysql-query.php
i jak odebrac wynik zapytania
http://pl.php.net/manual/pl/function.mysql-fetch-array.php

zamykam, bo to nawet na przedszkole lekka przesada

edit: otwieram, bo okazalo sie, ze kolega mial problem z wyslowieniem i chodzi ździebko o co innego.
@arek opisz problem dokladnie jeszcze raz tu, zapodaj dokladnie kod, ktory generuje Twoj "blad" i nie mecz mnie juz na PW winksmiley.jpg
ArekJ
Dobra smile.gif
Kod wygląda tak:
  1. <?php
  2. include 'includes/config.php';
  3. $tekst = mysql_query('SELECT cz.tekst, p.login FROM czat cz LEFT JOIN uzytkownicy p ON (p.id = cz.id_w) ORDER BY cz.id DESC LIMIT 5');
  4.  
  5. if(mysql_num_rows($tekst)>0){
  6.    echo '<table style="width:100%">';
  7.        
  8.    while($a = mysql_fetch_array($tekst)){
  9.        echo '<tr class="chat"><td style="width:50px;background:#bbbbff;color:">'.$a['login'].'</td><td style="background:#9999ff;"> '.$a['tekst'].'</tr>';
  10.        
  11.        
  12.    }
  13.    echo '</table>';
  14. }
  15. ?>

I właśnie zwraca wartość Resource id #6 , która według @nospora była zpowodowana nie użuwaniem mysql_fetch_array. Uważał tak gdyż nie podałem całego kodu, a ja użuwam tej funkcji i niestety to nic nie daje. Nie zabardzo wiem jak to naprawić. Czekam na podpowiedzi,
wookieb
Po pierwsze nie "zwraca" bo zwraca to funkcja a tutaj nie widze nigdzie "return"
To co mowisz to pewnie $tekst. Napewno działa bo gdyby nie działało to by zwrocilo błąd, że mysql_num_rows ma nieprawidłowy argument. A u cieie pewnie zapytanie nie zwraca zadnych rekordow bo takich nie ma i tyle.
nospor
zeby otrzymac tekst "Resource id #6" musisz gdzies w kodzie miec cos takiego:
  1. <?php
  2. $res = mysql_query(....);
  3. echo $res;
  4. ?>

U ciebie tego nie ma w kodzie co pokazales. Albo pokazujesz nam niecaly kod, albo takie cos jest w includes/config.php
albo w bazie masz taki wpis, ale mowiles mi na PW ze tabele masz pustą, wiec to odpada
ArekJ
Mam jeszcze powiązane z tym pliki
czat.php
  1. <script>
  2. $(document).ready(function(){
  3.  
  4.  $("#send").submit(function(){
  5.      
  6.       $.ajax({
  7.         type: "POST",
  8.        url: "wyslij.php",
  9.         data:"tekst="+$("#tekst").val(),
  10.        success: function(){
  11.                $("#chat").load("pobierz.php");
  12.                $("#tekst").val('');
  13.                }})
  14.    
  15.    
  16.     return false;
  17.    });
  18.    window.setInterval(function(){
  19.         $("#chat").load("pobierz.php");
  20.        
  21.    },3000);
  22.    
  23. });
  24. </script>
  25. <form method="post" id="send" action="wyslij.php" >
  26. <input type="text" name="tekst" id="tekst" />
  27. <input type="submit" name="send"  value="wyślij" />
  28. </form>
  29. <div id="chat">
  30. <?php include "pobierz.php"; ?>
  31. </div>

i wyslij.php
  1. <?php
  2. include 'includes/config.php';
  3.  
  4. mysql_query("INSERT INTO czat SET `id_w`=".$_SESSION['id'].", `tekst`='".mysql_escape_string($_POST['tekst'])."'");
  5.  
  6. header("Location: czat.php");
  7. die();
  8.  
  9. ?>



EDIT: Już działa, pomógł mi kolega na gadu-gadu. Okazało się, że jest to wina includowania pliku do index.php i tam wyswietlania zmiennej $tekst.
kod wyglada tak
  1. <?php
  2. $act = $_GET['act'];
  3.                                      $act_pages = array('test', 'rejestracja', 'check');
  4.                                      if($act != NULL AND file_exists($act.".php") AND in_array($act,$act_pages) AND strpos($act,'http:// ') === false){
  5.                                      include ''.$act.'.php';
  6.                                      echo $tekst;
  7.                                      }
  8.                                      else{
  9. ...}
  10. ?>

Po zmienieniu zmiennej $tekst na jakas inna wszystko działa. dziekuję za chęć pomocy smile.gif Temat chyba do zamknięcia...
wookieb
A czy widzisz tutaj kod wyswietlajacy tego co mówi nospor?
ArekJ
@wookieb właśnie nie smile.gif Problem wyjaśniony, zobacz edita w poprzednim moim poście.
nospor
no i sprowadzilo sie do tego, ze nie pokazales nam wszystkiego i ze nie czytales co ci sie pisalo:
ze masz gdzies echo $res, gdzie $res to wynik mysql_query() , czyli u ciebie $tekst tongue.gif
ArekJ
No widzisz, nie pamiętałem, że tak ta zmienna w index'ie się nazwya smile.gif Ale oczywiście mieliście rację, że gdzieś mam w tym błąd smile.gif
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.