Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz typu select pobierający dane z bazy danych zawierający zduplikowane dane, PHP+MySQL+HTML
wendor
post 12.03.2018, 17:29:14
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 12.03.2018

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


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


Go to the top of the page
+Quote Post
nospor
post 12.03.2018, 17:34:23
Post #2





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wendor
post 12.03.2018, 17:45:32
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 12.03.2018

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


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

Ten post edytował wendor 12.03.2018, 17:47:28
Go to the top of the page
+Quote Post
b4rt3kk
post 12.03.2018, 17:57:31
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


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


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
wendor
post 12.03.2018, 18:02:59
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 12.03.2018

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


Dzięki b4rt3kk exclamation.gif

brakowało mi tego wstawienia nulla exclamation.gif Jesteś the best exclamation.gif

Ten post edytował wendor 12.03.2018, 18:04:29
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 Wersja Lo-Fi Aktualny czas: 28.04.2024 - 00:22