Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Nie zlicza rekordów. Funkcja COUNT!
Forum PHP.pl > Forum > Przedszkole
bartek4175
Kod:
  1. <?php
  2. require_once("szkielet.php");
  3. ?>
  4. <div class="main box_black">
  5. <span style="color:white;"><center>
  6. <?
  7. if($user['admin'] == 1){
  8. $opiss = mysql_query("SELECT `opis` FROM `ustawienia` WHERE 1") or die("Błąd w zapytaniu!");
  9. ?>
  10. <h1>Ustawienia</h1><Br>
  11. <div class="btn_green"><a href="#">Ustawienia Strony</a></div><br>
  12. <form action="" method="post">
  13. <? $tt = mysql_query("SELECT * FROM ustawienia");
  14. while($r = mysql_fetch_assoc($tt)) { ?>
  15. <b>Opis Strony:</b> <? echo'<input type="text" name="opis" value="'.$r['opis'].'" />'; ?> <Br>
  16. <br><br> <? } ?>
  17. <?
  18. ?>
  19. <input type="hidden" name="send" value="1" /><br>
  20. <input type="submit" value="Zmień!" />
  21. </form>
  22. <?
  23. if ($_POST['send'] == 1) {
  24. $opis = $_POST['opis'];
  25.  
  26. mysql_query("UPDATE `ustawienia` SET `opis`='$opis'") or die("Wystąpił Błąd w Zapytaniu!");
  27. echo "<h1>Pomyślnie zmieniono ustawienia!</h1>";
  28. }
  29.  
  30. ?>
  31.  
  32. <?
  33. $online = mysql_query("SELECT COUNT(*) FROM users WHERE onlinne = 1")or die(mysql_error());
  34.  
  35. $ofline = mysql_query("SELECT COUNT(*) FROM users WHERE onlinne = 0")or die(mysql_error());
  36.  
  37. $onlinne = mysql_fetch_assoc($online);
  38. $oflinne = mysql_fetch_assoc($ofline);
  39. ?>
  40. <div class="btn_green"><a href="#">Statystyki ONLINNE</a></div><br>
  41. <b>Zalogowanych w Tej chwili:</b><? $onlinne ?><br><br>
  42. <b>Niezalogowanych w Tej chwili:</b><? $oflinne ?>
  43.  
  44.  
  45. <?
  46. } else {
  47. echo "<h1>Nie masz uprawnien administratora!</h1>";
  48. }
  49. ?>
  50. </div></span></center>
  51.  
  52. <?
  53. require_once("stopka.php");
  54. ?>



a wyświetla się:

trueblue
  1. WHERE onlinne =

czy tu nie powinno być
  1. WHERE online =
nospor
Po pierwsze: mysql_fetch_assoc zwraca tablice a nie pojedyncza zmienną
PO drugie: by wyswietlic cos w php to sie uzywa ECHO a nie sama zmienna podaje...

@trueblue jakby byl blad zapytani to by sie wysietlil error z DIE. Patrzymy co jest w kodzie.
bartek4175
Cytat(nospor @ 21.03.2014, 20:03:29 ) *
Po pierwsze: mysql_fetch_assoc zwraca tablice a nie pojedyncza zmienną
PO drugie: by wyswietlic cos w php to sie uzywa ECHO a nie sama zmienna podaje...

@trueblue jakby byl blad zapytani to by sie wysietlil error z DIE. Patrzymy co jest w kodzie.

Teraz mam :
  1. <?
  2. $onlinne = mysql_query("SELECT COUNT(*) FROM users WHERE onlinne = 1")or die(mysql_error());
  3.  
  4. $oflinne = mysql_query("SELECT COUNT(*) FROM users WHERE onlinne = 0")or die(mysql_error());
  5.  
  6. ?>
  7. <div class="btn_green"><a href="#">Statystyki ONLINNE</a></div><br>
  8. <b>Zalogowanych w Tej chwili:</b><? echo"$onlinne"; ?><br><br>
  9. <b>Niezalogowanych w Tej chwili:</b><? echo"$oflinne"; ?>
  10.  
  11.  
  12. ...


i wyświetla się:


Zalogowanych w Tej chwili:Resource id #12

Niezalogowanych w Tej chwili:Resource id #13

nospor
W ktorym miejscu mojego posta kazalem ci wywalic mysql_fetch_assoc?
bartek4175
Cytat(nospor @ 21.03.2014, 20:07:08 ) *
W ktorym miejscu mojego posta kazalem ci wywalic mysql_fetch_assoc?

ale o poprzedni kod mi nie chodzi, bo działa tylko o ten biggrin.gif

  1. <?
  2. $onlinne = mysql_query("SELECT COUNT(*) FROM users WHERE onlinne = 1")or die(mysql_error());
  3.  
  4. $oflinne = mysql_query("SELECT COUNT(*) FROM users WHERE onlinne = 0")or die(mysql_error());
  5.  
  6. ?>
  7. <div class="btn_green"><a href="#">Statystyki ONLINNE</a></div><br>
  8. <b>Zalogowanych w Tej chwili:</b><? echo"$onlinne"; ?><br><br>
  9. <b>Niezalogowanych w Tej chwili:</b><? echo"$oflinne"; ?>
  10.  
nospor
Bo laskawie dodales echo jak kazalem i teraz COS ci sie wyswietla, ale to jeszcze nie znaczy ze dziala jak ma dzialac .... pozostal jeszcze pierwszy punkt mojego posta
bartek4175
Cytat(nospor @ 21.03.2014, 20:09:26 ) *
Bo laskawie dodales echo jak kazalem i teraz COS ci sie wyswietla, ale to jeszcze nie znaczy ze dziala jak ma dzialac .... pozostal jeszcze pierwszy punkt mojego posta

  1. $online = mysql_query("SELECT COUNT(*) FROM users")or die(mysql_error());
  2.  
  3. $ofline = mysql_query("SELECT COUNT(*) FROM users WHERE onlinne = 0")or die(mysql_error());
  4.  
  5. $onlinne = mysql_fetch_assoc($online);
  6. $oflinne = mysql_fetch_assoc($ofline);
  7. ?>
  8. <div class="btn_green"><a href="#">Statystyki ONLINNE</a></div><br>
  9. <b>Zalogowanych w Tej chwili:</b><? echo"$onlinne[onlinne]"; ?><br><br>
  10. <b>Niezalogowanych w Tej chwili:</b><? echo"$oflinne"; ?>


Tak? :C

nospor
A dziala? Watpie. Wiec nie tak.

print_r($onlinne);
i bedziesz wiedzial co ta tablica ma.....
bartek4175
Cytat(nospor @ 21.03.2014, 20:23:44 ) *
A dziala? Watpie. Wiec nie tak.

print_r($onlinne);
i bedziesz wiedzial co ta tablica ma.....

Zalogowanych w Tej chwili:Array ( [COUNT(*)] => 10 )
nospor
To ja wiem. To ty sie miales przyjrzec i wybrac wlasciwy index z tej tablicy. Zacznij wkoncu myslec. Wszystko juz masz podane na tacy.
bartek4175
Cytat(nospor @ 21.03.2014, 20:26:24 ) *
To ja wiem. To ty sie miales przyjrzec i wybrac wlasciwy index z tej tablicy. Zacznij wkoncu myslec. Wszystko juz masz podane na tacy.

Może jakaś wskazówka? Poradnik ? biggrin.gif
viking
Matko.

  1. SELECT
  2. (SELECT count(*) FROM users) AS wszyscy,
  3. (SELECT count(*) FROM users WHERE onlinne = 0) AS aktywni


Zrób sobie dump tego zapytania a do tablicy chyba umiesz się dostać?
kujol
  1. $zlicz= mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE `onlinne ` = '1'"));
  2. echo $zlicz;
sowiq
Cytat(kujol @ 21.03.2014, 21:06:43 ) *
  1. $zlicz= mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE `onlinne ` = '1'"));
  2. echo $zlicz;


O kurde, ambitnie biggrin.gif

Proponuję mały upgrade - iterować po rekordach i za każdym razem inkrementować licznik facepalmxd.gif
nospor
facepalmxd.gif

@viking, @kujol PRzeciez on juz ma wszystkie dane......

Jedyno co musi zrobic to zamiast
echo"$onlinne[onlinne]";
zrobic:
echo $onlinne['COUNT(*)'];

viking
Ja wiem. Ale zwróciłem tez przy okazji uwagę ze bez sensu wysyła po kilka zapytań tam gdzie można to na raz robić. Może się chłopak. przy okazji zainteresuje bardziej podstawami bd
nospor
Tak, tylko ze jak on nie potrafi banalnego indeksu z tablicy wyswietlic, mimo ze ma podane jaki toindex, to mieszanie mu podstawami w bazach zagubi go jeszczebardziej wink.gif
ZaXaZ
od siebie dodam żeby zamienić wszystkie otwarcia skryptu (<?) na (<?php)
<? jest już wycofywane ponoć.
I często większość skryptu nie działa przez to (nawet jeśli część działa)
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.