Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] grupowanie
Reiven
post
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 1
Dołączył: 17.03.2006

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


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

Ten post edytował Reiven 5.08.2009, 12:40:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
athei
post
Post #2





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


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']
Go to the top of the page
+Quote Post
redelek
post
Post #3





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


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;


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
Reiven
post
Post #4





Grupa: Zarejestrowani
Postów: 100
Pomógł: 1
Dołączył: 17.03.2006

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


  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..
Go to the top of the page
+Quote Post
athei
post
Post #5





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


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. ?>


Ten post edytował athei 5.08.2009, 13:49:23
Go to the top of the page
+Quote Post
Reiven
post
Post #6





Grupa: Zarejestrowani
Postów: 100
Pomógł: 1
Dołączył: 17.03.2006

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


zapłace parę groszy za gotowe rozwiązanie smile.gif bo sam nie mogę dać rady..
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 20:18