Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php&mysql]Problem z mysql_numrows
Forum PHP.pl > Forum > Przedszkole
darthblue
witam
  1. <?php
  2. $id = $_SESSION["id"]
  3. $query = "SELECT * FROM msg WHERE do = $id;";
  4. $result = mysql_query($query);
  5. $num = mysql_numrows($result); //tu jest blad
  6.  
  7. echo "<table border='1'>";
  8. echo "<TR><TD width='60' bgcolor='red'>PW ID</TD><TD width='60' bgcolor='red'>OD</TD><TD width='200' bgcolor='red'>TEMAT</TD><TD width='80' bgcolor='red'>DATA</TD></TR>";
  9. $i = 0;
  10. while ($i < $num) {
  11.  
  12. $id = mysql_result($result,$i,"id"); 
  13. $od=mysql_result($result,$i,"od");
  14. $topic=mysql_result($result,$i,"topic");
  15. $data=mysql_result($result,$i,"data");
  16.  
  17. echo "<TR><TD width='30' bgcolor='green'>$id</TD><TD width='60' bgcolor='blue'>$od</TD><TD width='200' bgcolor='grey'><a href='read.php?id=$id'>$topic</a></TD><TD width='80' bgcolor='green'>$data</TD></TR>";
  18.  
  19. $i++;
  20. }
  21. echo "</table>";
  22. ?>

Błąd: Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource
Problem moze lezec po stronie sesji bo jak zmienie w zapytanie $id na np 1 to dziala
luniak
z tego co ja się orientuję powinno być
nie:
  1. $num = mysql_numrows($result);

tylko:
  1. $num = mysql_num_rows($result);
darthblue
Nie to musi byc cos z argumentem
luniak
A idruga żecz zauważyłem żw w zapytanie:

  1. <?php
  2. $query = "SELECT * FROM msg WHERE do = $id;";
  3. ?>

Moim zdanie powinno wyglądać tak:
  1. <?php
  2. $query = "SELECT * FROM `msg` WHERE `do` = '$id'";
  3. ?>


A i jeszcze jsdno, dlaczego używasz czegoś takiego;
  1. <?php
  2. while ($i < $num) {
  3.  
  4. $id = mysql_result($result,$i,&#092;"id\"); 
  5. $od=mysql_result($result,$i,&#092;"od\");
  6. $topic=mysql_result($result,$i,&#092;"topic\");
  7. $data=mysql_result($result,$i,&#092;"data\");
  8.  
  9. echo &#092;"$id$od<a href="read.php?id=$id">$topic$data\";
  10.  
  11. $i++;
  12. }
  13. ?>

questionmark.gif
nie lepiej zrobić to tak:
  1. <?php
  2. while ($row = mysql_fetch_array($result)) {
  3.  
  4. $id = $row[&#092;"id\"]; 
  5. $od=$row[&#092;"od\"];
  6. $topic=$row[&#092;"topic\"];
  7. $data=$row[&#092;"data\"];
  8.  
  9. echo &#092;"$id$od<a href="read.php?id=$id">$topic$data\";
  10.  
  11.  
  12. }
  13. ?>
</a href='read.php?id=$id'></a href='read.php?id=$id'>
darthblue
Po zmianie wychodzi ten sam blad co w num_rows. Jak zmienie $id w zapytaniu na 1 to dziala czyli to musi byc cos z tymi sesjami
  1. <?php
  2. function login($user, $pass) //logowanie, tworzenie sesji
  3. {
  4. session_set_cookie_params (1800, '/', 'solaris.yoyo.pl');
  5. session_register("zalogowany");
  6. connect();
  7. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  8. if($_SESSION["zalogowany"]!=1){
  9. if(mysql_query("SELECT * FROM gracze WHERE login = '".htmlspecialchars($user)."' AND pass = '".htmlspecialchars($pass)."'")){
  10. $_SESSION["zalogowany"]=1;
  11. $q = mysql_query("SELECT id FROM gracze WHERE login = '".htmlspecialchars($user)."' LIMIT 1");
  12. $d = mysql_fetch_assoc($q);
  13. echo "Zalogowano poprawnie $user($d[id]).<br>";
  14. $_SESSION["id"] = $d[id];
  15. }else echo 'Podane dane sa niepoprawne';
  16. }
  17. }
  18. ?>
skrypt logowania, moze w nim lezy problem?
luniak
a spróbuj wywołać w tym pierwszym skrypcie zaraz po zadeklarowaniu $query coś takiego:
  1. <?php
  2. $query = "SELECT * FROM msg WHERE do = $id";
  3. echo $query;
  4. ?>

i zobacz co on podstawia jako $id
darthblue
  1. SELECT * FROM 'msg' WHERE 'do' = ;
Czyli cos jest z id, z sesjami ;///

Niewiem czemu, moze to wina serwera z tymi sesjami. W skrypcie logowania jest ustalana zmienna $_SESSION["id"] ale jak ujzyje jej w innym skrypcie to nie dziala ;/

UPS sorry za jeden post pod drugim.
PawelC
Zobacz to:
  1. <?php
  2.  
  3. $user = trim($_POST['user']);
  4. $pass = trim($_POST['pass']);
  5. $id = trim($_POST['id']);
  6. $loguj="select * from gracze where login='$user' and pass='$pass'";
  7. $rekordy = mysql_query($loguj);
  8. if(mysql_num_rows($rekordy)==0)
  9. {
  10.  echo 'Podany login i haslo jest błędne'; 
  11.  exit;
  12. }
  13. else
  14. {
  15.  $_SESSION['id'] = $_POST['id'];
  16. print $_SESSION['id'];
  17.  
  18.  exit;
  19. }
  20. ?>

Jeżeli dany użytkownik będzie to wyświetli Ci zawartość Session['id']; a jak niebędzie to error
darthblue
no dobra to działa, ale jak robie cos z uzyciem np fetch_assoc to wywala blad
  1. [b]Warning[/b]: mysql_fetch_assoc(): supplied argument IS NOT a valid MySQL result resource

a zapytanie to np.
  1. <?php
  2. $c = mysql_fetch_assoc(mysql_query("SELECT kills,deaths FROM fractions WHERE nazwa = 'Combine Soldiers'"));
  3. ?>
PawelC
Sprawdź ten kod:
  1. <?php
  2. $down="SELECT kills,deaths FROM fractions WHERE nazwa = 'Combine Soldiers'";
  3. $wykonaj=mysql_query($down) or die(mysql_error());
  4. while($pokaz=mysql_fetch_assoc($wykonaj)){
  5. print "kills: ";
  6. print ''.$pokaz[0].'';
  7. print '<br />';
  8. print "Deaths: ";
  9. print ''.$pokaz[1].'';
  10. ?>
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.