Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [HTML][MySQL][PHP]Select z grupami z Mysql

Napisany przez: krzesik 29.03.2023, 10:24:01

Witam,
czy istnieje możliwość aby w wyświetlanej liście pojawiły się wartości z zapytania Mysql jak poniżej?

  1. <http://december.com/html/4/element/select.html id="dino-select">
  2. <http://december.com/html/4/element/optgroup.html label="Grupa 1">
  3. <http://december.com/html/4/element/option.html>1</http://december.com/html/4/element/option.html>
  4. <http://december.com/html/4/element/option.html>2</http://december.com/html/4/element/option.html>
  5. <http://december.com/html/4/element/option.html>3</http://december.com/html/4/element/option.html>
  6. </http://december.com/html/4/element/optgroup.html>
  7. <http://december.com/html/4/element/optgroup.html label="Grupa 2">
  8. <http://december.com/html/4/element/option.html>4</http://december.com/html/4/element/option.html>
  9. <http://december.com/html/4/element/option.html>5</http://december.com/html/4/element/option.html>
  10. <http://december.com/html/4/element/option.html>6</http://december.com/html/4/element/option.html>
  11. </http://december.com/html/4/element/optgroup.html>
  12. </http://december.com/html/4/element/select.html>


natomiast w tabeli Mysql tak to wygląda

id | nazwa | grupa
1 | 1 |Grupa 1
2 | 2 |Grupa 1
3 | 3 |Grupa 1
4 | 4 |Grupa 2
5 | 5 |Grupa 2
6 | 6 |Grupa 2


Napisany przez: nospor 29.03.2023, 11:15:17

Tak, najpierw pogrupuj sobie dane:
http://nospor.pl/grupowanie-wynikow.html

a potem wyswietlaj jak chcesz

Napisany przez: krzesik 29.03.2023, 13:07:39

Dziękuję, prawie o to mi chodziło, mam teraz coś takiego:

  1. $query = "SELECT id, NazwaDokumentu, Rejestr FROM Dokumentacja ORDER BY Rejestr ASC, NazwaDokumentu ASC";
  2. $wynik0 = mysql_query($query);
  3.  
  4.  
  5. $categories = array();
  6. while ($row = mysql_fetch_array($wynik0)){
  7. $cid = $row['id'];
  8.  
  9. IF (!isset($categories[$cid]))
  10. $categories[$cid] = array('name' => $row['Rejestr'], 'products' => array());
  11.  
  12. IF (!empty($row['NazwaDokumentu'])) //jeśli istnieje produkt
  13. $categories[$cid]['products'][] = array('name' => $row['NazwaDokumentu']);
  14. }
  15.  
  16. echo '
  17. <select class="form-control" name="Link0">
  18. <option style="color:blue" value="">Wybierz dokument zapisany na serwerze</option>';
  19. foreach ($categories AS $idCat => $category)
  20. {
  21. echo "<optgroup label=\"".$category[name]."\">";
  22.  
  23. foreach ($category['products'] AS $product)
  24. {
  25. echo '<option value="'.$id.'">'.$product['name'].'></option>';
  26. }
  27.  
  28. }


a wynik mam taki.... :-(
Grupa 1
1
Grupa 1
2
Grupa 1
3
Grupa 2
1
Grupa 2
2
Grupa 2
3




Napisany przez: nospor 29.03.2023, 13:26:02

Kurcze. No ale miales moj przyklad dostosowac do swoich danych. Czy u ciebie ID jest odnosniekiem grupy? No nie. U mnie bylo, u cibeie nie jest. U ciebie wyznacznikiem grupy jest pole grupa

Napisany przez: krzesik 29.03.2023, 13:39:25

:-) Kurczę, oczywista oczywistość - dziękuję, o to mi chodziło

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)