Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][MYSQL]Problem z sortowaniem
Forum PHP.pl > Forum > Przedszkole
xyxy
Jak w temacie, może mam gdzieś błąd, może mi czegoś brakuje, nie wiem... uczę się dopiero.
Tu mam wyswietlanie na stronce zawartości tabeli:
Kod
$result = mysql_query("SELECT `id`, `imie`, `nazwisko`, `firma` FROM `klienci");
    
     while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
     {
          print '<table><tr>
         <td width=15 align="center">
         <input type="radio" name="idselect" value="'.$row["id"].'"' . ($_POST['idselect'] == $row["id"] ? ' checked="checked"' : '') . ' />
         </td>';
        
         print '<td width="30" align="center">'.$row[id].'</td>
                <td width="100" align="center">'.$row[imie].'</td>
                <td width="100" align="center">'.$row[nazwisko].'</td>
                <td width="100" align="center">'.$row[firma].'</td>';
         print '</tr></table>';
    
     }

Tak wyglada select:
Kod
    <select name="sortowanie1">
           <option value="sort_firmy" <? print (strcmp($_POST['sortowanie1'], 'sort_firmy')?'':' SELECTED'); ?> >Firmy</option>
           <option value="sort_id" <? print (strcmp($_POST['sortowanie1'], 'sort_id')?'':' SELECTED'); ?> >Id</option>
       </select>
       <select name="sortowanie2">
           <option value="sort_rosnaco" <? print (strcmp($_POST['sortowanie2'], 'sort_rosnaco')?'':' SELECTED'); ?>>Rosnaco</option>
           <option value="sort_malejaco"<? print (strcmp($_POST['sortowanie2'], 'sort_malejaco')?'':' SELECTED'); ?>>Malejaco</option>
       </select><input type="submit" name="button_sortuj" value="sortuj">


Tak wyglada obsługa buttona:
Kod
if(!empty($_POST['button_sortuj']))
   {
  
  
       if (($sortowanie1 == 'sort_firmy') && ($sortowanie2 == 'sort_rosnaco'))
           {
               $Q = "SELECT * FROM `klienci` ORDER BY `klienci`.`firma` ASC;";
               $R = mysql_query($Q);
           }
       elseif (($sortowanie1 == 'sort_firmy') && ($sortowanie2 == 'sort_malejaco'))
           {
               $Q = "SELECT * FROM `klienci` ORDER BY `klienci`.`firma` DESC;";
               $R = mysql_query($Q);
           }
       elseif (($sortowanie1 == 'sort_id') && ($sortowanie2 == 'sort_rosnaco'))
           {
               $Q = "SELECT * FROM `klienci` ORDER BY `klienci`.`id` ASC;";
               $R = mysql_query($Q);
           }
       elseif (($sortowanie1 == 'sort_id') && ($sortowanie2 == 'sort_malejaco'))
           {
               $Q = "SELECT * FROM `klienci` ORDER BY `klienci`.`id` DESC;";
               $R = mysql_query($Q);
           }
blooregard
W warunkach w obsłudze buttona zamień sortowanie1 i sortowanie2 na $_POST['sortowanie1'] i $_POST['sortowanie2'].

A, i nigdzie nie widzę, żeby wogóle te selecty i button były jako elementy formularza. Gdzieś zgubiłeś <form> </form> ?
xyxy
Zmieniłem, ale dalej nie działa, znacznik <form> tez jest
blooregard
Kod
<form action="dodklienta.html" method=post>


A nie powinno to iść do jakiegoś skryptu .php czasem ?
xyxy
w dodklienta.html jest skrypt wraz z formularzem. Wszystko mi działa tylko nie sortowanie.
EarthCitizen
Problem polega na tym, że Ty pobierasz dane bez opcji sortowania, wyświetlasz tabelkę a dopiero później sprawdzasz warunki i sposób sortowania.

Rozbij sobie jakoś logicznie ten kod, akcje wewnątrz if'ów daj do oddzielnych plików i wszystko łącz w klienci.php, wtedy będzie Ci łatwiej kontrolować ten kod i wyłapywać takie błędy.
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.