Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] grupowanie
Forum PHP.pl > Forum > Przedszkole
Reiven
Witam,
Mam problem. Chcę zrobić coś takiego że mam pewną tabele X w niej mam kilka wpisów.
Przykładowo takie:
ID | NAZWA | Info
1...| Kot.......| szary
2...| Pies......| czarny
3...| Kot.......| niebieski

i teraz jak zrobić żeby wyświetlało mi:

1 x Pies
......1x szary

2 x Kot ?
......1x szary
......1 x niebieski
athei
Może wyciągnij najpierw nazwę i ilość.
  1. SELECT COUNT(1) AS Ile, `nazwa` FROM `zwierze` GROUP BY `nazwa` ORDER BY Ile ASC

Póżniej w pętli foreach wypisz nazwę, ilość i wyciągnij info dla konkretnej nazwy
  1. SELECT `info` FROM `zwierze` WHERE `nazwa`= $row['nazwa']
redelek
Wczoraj męczyłem się z innym tematem , ale w manualu MySQL znalazłem coś takiego może to Ci pomoże

If you use GROUP BY, output rows are sorted according to the GROUP BY columns as if you had an ORDER BY for the same columns. To avoid the overhead of sorting that GROUP BY produces, add ORDER BY NULL:
SELECT a, COUNT(cool.gif FROM test_table GROUP BY a ORDER BY NULL;
MySQL extends the GROUP BY clause so that you can also specify ASC and DESC after columns named in the clause:
SELECT a, COUNT(cool.gif FROM test_table GROUP BY a DESC;
Reiven
  1. $query = "SELECT COUNT(1) AS Ile, `nazwa` FROM `zwierze' GROUP BY `nazwa` where kogo=`$login` AND sell = `0` ORDER BY Ile ASC";


Coś źle w tym robię?

ogólnie to mam coś takiego:

  1. <?php
  2. function koszyk()
  3. {
  4.  
  5. <table width='249'>";
  6. $zaloguj_login = $_SESSION["login2_c"]; if (!$_SESSION["haslo2"])
  7. {
  8.  
  9. <td width='180'>
  10. Koszyk dostępny jedynie dla zarejestrowanych użytkowników!
  11. </td>
  12. </table>
  13. ";
  14. }
  15. else
  16. {
  17.  
  18. $zaloguj_login2 = $_SESSION["login2"];
  19.  
  20. include("config.php");
  21. mysql_connect ("$dbhost","$dblogin","$dbpass");
  22. mysql_query('SET CHARACTER SET utf8');
  23. $id = $_GET['id'];
  24. #$query = "SELECT * from koszyk where kogo='$zaloguj_login2' AND sell = '0' ORDER BY id DESC";
  25. $query = "SELECT COUNT(1) AS Ile, `co` FROM `koszyk` GROUP BY `co` where kogo=`$zaloguj_login2` AND sell = `0` ORDER BY Ile ASC";
  26. mysql_query('SET CHARACTER SET utf8');
  27. $result = mysql_query($query);
  28. $ile = mysql_numrows($result);
  29. if ($ile == 0)
  30. {
  31. echo "<table><td><Center><b>Brak przedmiotów w Twoim koszyku!</b></center></td></table>";
  32. }
  33. else
  34. {
  35. while($row = mysql_fetch_array($result)) {
  36. $co = $row['co'];
  37. $id = $row['id'];
  38. $cena = $row['cena'];
  39. $sztuk = $row['sztuk'];
  40. $kolor = $row['kolor'];
  41. $rozmiar = $row['rozmiar'];
  42.  
  43. echo'<tr><td  class="boks">';
  44. echo '<b>Nazwa:</b> '.$co.' '.$kolor.'- '.$rozmiar.' - <a href="usun_z_koszyka,'.$id.'.html">Usuń</a><br>';
  45. #echo'<br><b>Sztuk:</b> '.$sztuk.'<br>  <center><a href="usun_z_koszyka,'.$id.'.html">Usuń z koszyka</a></center></td></tr>';
  46.  
  47. # echo '<form name="zaloguj" action="kasa.html" method="post" style="margin: 0;">
  48. #   <tr><td><input type=hidden name="co_koszyk" value="'.$co.'" size=13></td></tr>
  49. #   <tr><td><input type=hidden name="cena_koszyk" value="'.$cena.'" size=13></td></tr>
  50. #    <TR> <td align=center colspan=2 >
  51. #     </td></tr>
  52. #     ';
  53. #
  54.  
  55. }
  56.  
  57. echo" <a href='koszyk.html'>Przejdź do pełnego koszyka</a>
  58. </td>
  59. </table>
  60. ";
  61. #echo"
  62. #<b>Do zapłaty:</b><br>
  63. #";
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. #$r = mysql_query($query);
  71. #while($rows = mysql_fetch_array($r))
  72. #{
  73. #$i+=$rows['cena'];
  74. #}
  75.  
  76. #  $vat = 22;
  77. # $brutto = ($i*$vat)/100+$i;
  78.  
  79. #echo" $i zł netto <br>
  80. # $brutto zł brutto ";
  81.  
  82.  
  83.                      
  84.  
  85.  
  86. }
  87.  
  88.  
  89.    # echo '<input type="image" src="img/dokoszyka.gif" alt="Dodaj do koszyka" /></form>';
  90.  
  91. }
  92.  
  93. }
  94. ?>


i chcę to przerobić na to co napisałem wyżej..
athei
Mylisz ` i '.
  1. <?php
  2. $query = "SELECT `kol1`, `kol2` count(*) AS 'Ile' FROM `tabela` WHERE `kol1`='{$text}' AND `kol2`={$liczba}" ORDER BY 'Ile' ASC;
  3. ?>
Reiven
zapłace parę groszy za gotowe rozwiązanie smile.gif bo sam nie mogę dać rady..
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.