Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Pobieranie danych z bazy danych
soil
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 27.05.2009

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


Witam,
dopiero raczkuje w temacie php/mysql w zwiazku z czym mam pytanie.

Mam tabele w bazie danych
  1. ocena
  2. 1
  3. 2
  4. 2
  5. 3
  6. 5
  7. 4
  8. 5
  9. 6
  10. 6


Nastepnie chce pobrac z tej tabeli dane, ale w taki sposob bym mogl wyswietlic ilosc danej oceny oraz srednia. W tej chwili zatrzymalem sie na:
  1. <form action="" method="post">
  2. <select name="ocena" onchange="this.form.submit()">
  3. <option value="">Wybierz ocene</option>
  4. <option value="1">1</option>
  5. <option value="2">2</option>
  6. <option value="3">3</option>
  7. <option value="4">4</option>
  8. <option value="5">5</option>
  9. <option value="6">6</option>
  10. </select>
  11. </form>
  12.  
  13. <?php
  14.  
  15.  
  16. $serwer = "localhost";  
  17. $login  = "root";
  18. $haslo  = "root";  
  19. $baza   = "szkola";
  20. $tabela = "oceny";  
  21.  
  22. $ocena = $_POST['ocena'];
  23.  
  24. if($ocena) {
  25.    
  26.  
  27.    if (mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza)) {
  28.        
  29.        
  30.        $wynik = mysql_query("SELECT * FROM oceny WHERE ocena='$ocena'")
  31.        or die("Błąd w zapytaniu!");
  32.        
  33.        mysql_close();
  34.    }
  35.    else echo "Nie mogę połączyć się z bazą danych!";
  36.    
  37.    
  38.    while($rek = mysql_fetch_array($wynik)) {
  39.        echo $rek['ocena']." <br /> ";
  40.        
  41.  
  42.      
  43.    }
  44.    
  45. }
  46.  
  47. ?>


Prosze o podsuniecie rozwiazania. Poki co nie chcialby modyfikowac struktury tabeli, zrobie to dopiero w ostatecznosci.

Pozdrawiam,
Soil.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Foxx
post
Post #2





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


Ilość danej oceny możesz obliczyć stosując COUNT:
  1. <?php
  2. $wynik = mysql_query("SELECT COUNT(*) FROM oceny WHERE ocena='".$ocena."'") or die("Błąd w zapytaniu!");
  3. ?>

Natomiast co do średniej to nie do końca rozumiem. Chyba nie chodzi Ci o średnią związaną z wybraną oceną, bo jezeli ktoś wybierze cokolwiek to średnia TEJ oceny będzie równa tej ocenie. Z czego chcesz liczyć średnią?
Jeżeli ze wszystkich ocen - użyj AVG(ocena)
Go to the top of the page
+Quote Post
damian_15
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 1
Dołączył: 27.05.2009

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


Jesli chcesz wyswietlic liste wszystkoich ocen oraz ich ilosci to proponuje takie zapytanie:
  1. SELECT ocena, count( * )
  2. FROM `oceny` GROUP BY ocena
Go to the top of the page
+Quote Post
soil
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 27.05.2009

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


Dzieki, o to chodzilo! (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)



Kurcze, mam teraz inny problem. Mam taki kod:

  1. <?php
  2. $rezultat =mysql_query("SELECT ocena, count( * ) FROM `oceny` GROUP BY ocena ") or die("Błąd w zapytaniu!");
  3.    echo "<br />";
  4.    while ($record = mysql_fetch_array($rezultat, MYSQL_ASSOC))
  5.    {
  6.        foreach ($record as $field_name => $field_value)
  7.        {
  8.        echo "<br />".$field_value."<br />";            
  9.        }
  10.        echo "<br />";
  11.    }
  12. ?>


ktory wyswietla mi wynki w taki sposob:
1 <- ocena
6 <- ilosc ocen

2
9

itp. jak zrobic by ocena i ilosc ocen byly pod innymi zmiennymi (teraz sa pod $field_value) tak by mozna bylo je opisac np.

Ocena: 1
Ilosc ocen:6

Ocena: 2
Ilosc ocen: 9

Dzieki za odpowiedz.
Pozdrawiam,
Soil

Ten post edytował soil 27.05.2009, 18:14:27
Go to the top of the page
+Quote Post
TheaSiX
post
Post #5





Grupa: Zarejestrowani
Postów: 110
Pomógł: 10
Dołączył: 3.09.2006
Skąd: Bishop Auckland

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


  1. <?php
  2. $rezultat =mysql_query("SELECT ocena, count( * ) AS ilosc FROM `oceny` GROUP BY ocena ") or die("Błąd w zapytaniu!");
  3.   echo "<br />";
  4.   while ($record = mysql_fetch_array($rezultat, MYSQL_ASSOC))
  5.   {
  6.       $ocena = $row["ocena"];
  7.       $ilosc = $row["ilosc"];
  8.       print " Ocena: $ocena<br> Ilość: $ilosc<br><Br>";
  9.   }
  10. ?>


Ten post edytował TheaSiX 27.05.2009, 21:51:04
Go to the top of the page
+Quote Post
soil
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 27.05.2009

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


Niestety wyswietla tylko nazwy

Ocena:
Ilosc:

Pewnie ma to zwiazek z tym, jak wyglada tabela:
id ocena
1 2
2 4
3 1
4 5
5 1
6 6

chociaz moge sie mylic..

Pozdrawiam,
Soil
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




theasix popelnil blad, ktory ty bezmyslnie skopiowales...

  1. <?php
  2. $rezultat =mysql_query("SELECT ocena, count( * ) AS ilosc FROM `oceny` GROUP BY ocena ") or die("Błąd w zapytaniu!");
  3.  echo "<br />";
  4.  while ($row = mysql_fetch_array($rezultat, MYSQL_ASSOC))
  5.  {
  6.      $ocena = $row["ocena"];
  7.      $ilosc = $row["ilosc"];
  8.      print " Ocena: $ocena<br> Ilość: $ilosc<br><Br>";
  9.  }
  10. ?>


poza tym włącz sobie wyswietlanie wszystkich bledow, a takie rzeczy bedziesz na biezaco wylapywal i nie bedziesz musial zasmiecac forum
http://nospor.pl/php-faq-n29.html#faq-2
Go to the top of the page
+Quote Post
soil
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 27.05.2009

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


Skopiowalem bezmyslnie, bo moja wiedza jest praktycznie zerowa. W kazdym razie dzieki za pomoc. Dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




nie zrozum mnie źle, nie chcę tutaj po tobie jechac czy cos. Napiszę to co napisze byś na przyszlosc nie popelnial takich bledow. Tlumaczenie o zerowej wiedzy jest tutaj tylko zaslanianiem się.

Do rzeczy:
przy pięcio linijkowym kodzie naprawdę bez większego problemu można dojrzeć, ze zmienne ktorych się uzywa, nigdzie nie mają przypisanych wartości. Tutaj twoją zmienną była $row. Dodatkowo pamiętaj o tym włączeniu wyswietlaniu bledow, a wowczas masa bledow na stronie da ci wskazowkę
podążaj za białym królikiem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
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: 27.12.2025 - 02:54