Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Problem z zapytaniem do bazy
tinware
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 23.08.2009
Skąd: Wołomin

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


Witajcie.

Mam skrypt zliczający osoby, ktore pobraly dany plik oraz spis osob ktory ten plik pobraly.


  1. {
  2. $wynik2 = mysql_query ("SELECT * FROM Detective WHERE operacja='Pobieranie pliku' and id_operacji='$nr' and osoba='".$_SESSION['login']."' ORDER by nr DESC;");
  3. $i=0;
  4. $ile = mysql_num_rows($wynik2);
  5. echo "$ile razy ";
  6. }
  7. echo "(";
  8. /////////////////////////////////////////////////////
  9. $wynik3 = mysql_query ("SELECT * FROM Detective WHERE operacja='Pobieranie pliku' and id_operacji='$nr' ORDER by osoba DESC;");
  10. $i=0;
  11. $ile = mysql_num_rows($wynik3);
  12. while ($rekord2 = mysql_fetch_assoc ($wynik3))
  13. {
  14. $nr = $rekord2['nr'];
  15. $data = $rekord2['data'];
  16. $osoba = stripslashes( ($rekord2['osoba']));
  17.  
  18. echo "$osoba, ";
  19. }
  20. /////////////////////////////////////////////////
  21. echo ")";




1. W skrypcie zliczającym zlicza ilosc razy pobran pliku przez uzytkownika z SESJI, a chcialbym zeby zliczal pobrania wszystkich uzytkownikow OPROCZ uzytkownika z SESJI.


2. Uzytkownicy, ktorzy dany plik pobrali:
Kod
(qvasu, natala1411, karolina0401, djplate, djplate, djplate, Danius, dami620, )

Jeśli dany użytkownik pobierze wiecej niz jeden raz to powinno pokazac go ze pobral jeden raz a nie 3 w przypadku "djplate"


(IMG:http://iv.pl/images/65785697004496103283.jpg)


W jaki sposób poprawić te błędy?

Oto zmienne tabeli Detective: nr, data, osoba, operacja, id_operacji

Ten post edytował tinware 26.04.2011, 22:17:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
BaN
post
Post #2





Grupa: Zarejestrowani
Postów: 158
Pomógł: 43
Dołączył: 9.11.2007

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


Brakuje nawiasów, mysql_query() jest funkcją
Nie wiem po co liczysz rekordy, po co przetwarzasz w pętli i po co stosujesz stripslashes()?
Dostaniesz tylko jeden rekord, a jeśli dopuszczasz wpisywanie do bazy jakiś dziwnych znaków, to raczej htmlspecialchars()
Przeczytałeś dokumentację tych funkcji?
  1. $result = mysql_query("SELECT COUNT(*) AS ile, GROUP_CONCAT(DISTINCT osoba ORDER BY osoba DESC SEPARATOR ', ') AS osoby
  2. FROM Detective
  3. WHERE operacja='Pobieranie pliku' AND id_operacji='{$nr}'");
  4. if ($result) {
  5. $row = mysql_fetch_assoc($result));
  6. echo $row['ile'];
  7. if (strlen($row['osoby']) > 0) {
  8. echo ' (' . htmlspecialchars($row['osoby']) . ')';
  9. }
  10. }
Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 10:57