Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz typu select pobierający dane z bazy danych zawierający zduplikowane dane
Forum PHP.pl > Forum > Przedszkole
wendor
Witam posiadam stronkę z formularzem która pobiera GET-em i zapytaniem sql dane z z bazy danych. Wszystko działa prawie ok ale mam jeden problem z polem wyboru w formularzu. Gdy wywołuję dane z bazy danych i wybieram uprawnienia przypisane do danego użytkownika to wypisuje mi uprawnienia danego użytkownika kilka razy.Chciałbym by lista pokazywała,że np. dany użytkownik ma uprawnienia użytkownika ale mogę je zmienić na administratora,moderatora,managera czy właściciela firmy.Pytanie brzmi czy macie jakiś pomysł by uprawnienia przypisane do danego użytkownika pojawiały się tylko raz, a lista wypełniana była pozostałymi uprawnieniami pobieranymi z tabeli "Rights". Poniżej przedstawiam zdjęcia obrazujące jak wygląda problem.

Przykładowo dla użytkowika posiadającego uprawnienia zwykłe czyli użytkownik wygląda to tak:



A dla użytkownika z uprawnieniami administratora wygląda to tak:



Poniżej przedstawiam fragment kodu z którym mam problem odpowiadający za wypisywanie danych dla pola wyboru w formularzu:

Kod
<tr><td>Prawa: </td><td>';
$question = mysql_query ("SELECT * FROM Rights");
echo '<select name="prawa">';

while($prawa = mysql_fetch_assoc($question)) {
echo"<option value=$dane[prawa]>$dane[prawa]</option>";                 // Wypisuje prawa przypisane dla danego użytkownika
echo"<option value=$prawa[prawa]>$prawa[prawa]</option>";             // Wypisuje wszystkie prawa z tabeli Rights
}
echo '</select></form>';
?>



Z góry dzięki za pomoc exclamation.gif! Mam nadzieję,że ktoś wpadnie na pomysł jak rozwiązać ten problem smile.gif


nospor
Czemu w petli masz jeszcze wyswietlanie dla kazdego rekordu o tego
echo"<option value=$dane[prawa]>$dane[prawa]</option>";
? Przeciez to ci sie duplikuje za kazdym razem.

przenosze
wendor
Wiem,że się duplikuje pytanie dlaczego? I jak się tej duplikacji pozbyć ?


Linijka echo"<option>$dane[prawa]</option>" ; wyświetla uprawnienia tylko dla danego użytkownia

Natomiast

Linijka echo"<option>$prawa[prawa]</option>" ; // Wypisuje wszystkie prawa z tabeli Rights czyli Administrator, Administrator2, Użytkownik, Moderator itp...

więc bez tego ani rusz...
Trzeba by tu jakiegoś if-a lub selecta zastosować ale niestety nie mam pomysłu jak go skonstruować żeby zadziałał....
b4rt3kk
Coś mocno przekombinowałeś. Jeśli dobrze rozumiem to:

  1. $dane['prawa'];


zawiera obecne uprawnienie użytkownika. Jest i może być tylko jedno, tak?

Więc podejrzewam, że kod powinien wyglądać mniej więcej tak:

  1. <tr><td>Prawa: </td><td>';
  2. $question = mysql_query ("SELECT * FROM Rights");
  3. echo '<select name="prawa">';
  4.  
  5. while($prawa = mysql_fetch_assoc($question)) {
  6. echo"<option value=$prawa[prawa] ";
  7. echo $prawa['prawa'] == $dane['prawa'] ? 'selected' : null;
  8. echo ">$prawa[prawa]</option>"; // Wypisuje wszystkie prawa z tabeli Rights
  9. }
  10. echo '</select></form>';
  11. ?>
wendor
Dzięki b4rt3kk exclamation.gif

brakowało mi tego wstawienia nulla exclamation.gif Jesteś the best exclamation.gif
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.