Witam, problem mam taki że robie stronkę i się zawiesiłem w jednym miejscu.
Zrobiłem sobie spis wszystkich użytkowników i na końcu tabeli dodałem dwie opcje "Edytuj" i "Usuń" i nie wiem jak zrobić żeby edytowało akurat tego konkretnego użytkownika. Wiem że najłatwiej to zrobić po numerze id z bazy.
Sam formularz edycji i usuwania jestem w stanie zrobić ale w nim bym musiał sam wpisywać dane użytkownika, którego chce usunąć/edytować a mi chodzi o to żebym mógł edytować odrazu po kliknieciu w link edycji.
Oto kod uzytkownicy.php
<?php if ( $_SESSION['admin']!=1 ) { http://www.php.net/die("Nie jestes adminem"); } include("menu.php"); http://www.php.net/echo "<br><br><br><br><fieldset><legend>Użytkownicy</legend> Lista wszystkich zarejestrowanych użytkowników portalu. W celu edycji, dodania, bądĽ usunięcia użytkownika proszę wybrać opcję z menu powyżej lub skożystać z opcji pod tabelką. </fieldset>"; $zapytanie = http://www.php.net/mysql_query("SELECT * FROM `uzytkownicy` order by id ASC") or http://www.php.net/die(http://www.php.net/mysql_error()); $wykonaj = http://www.php.net/mysql_num_rows($zapytanie); http://www.php.net/echo "<p>Wszystkich użytkowników = ".$wykonaj."</p>"; http://www.php.net/echo"<table class='m-tabela'> <tr> <td><b>Id:</b> </td> <td><b>Imię:</b> </td> <td><b>Nazwisko:</b> </td> <td><b>Login:</b> </td> <td><b>Miejscowość:</b> </td> <td><b>Telefon:</b> </td> <td><b>Mail:</b> </td> <td><b>GG:</b> </td> <td></td> <td><b>Opcje:</b></td> </tr>"; while($rekord=http://www.php.net/mysql_fetch_array($zapytanie)) { http://www.php.net/echo"<tr><td> ".$rekord['id']." </td><td> ".$rekord['imie']." </td><td> ".$rekord['nazwisko']." </td><td> ".$rekord['login']."</td><td> ".$rekord['adres']." </td><td> ".$rekord['telefon']." </td><td> ".$rekord['mail']."</td><td><a href='gg:".$rekord['gg']."'><IMG SRC='http://status.gadu-gadu.pl/users/status.asp?id=".$rekord['gg']."& styl=1' ALT='Gadu-Gadu'>".$rekord['gg']."</a></td><td></td><td><a href=\"?dzial=admin&poddzial=edytujusera\"><img src=\"images/b_edit.png\" alt=\"Edytuj\" name=\"Edytuj\" title=\"Edytuj\"></a>  <a href=\"?dzial=admin&poddzial=usunusera\"><img src=\"images/b_drop.png\" alt=\"Usuń\" name=\"Usuń\" title=\"Usuń\"></a></tr>"; } http://www.php.net/echo"</table>"; ?>
przy każdym użytkowniku daj <input type="radial" name="userid" value="tu id użytkownika"> i na dole przycisk edycji który prześle dane formularza do strony odpowiadającej za edycję użytkowników, albo rób przy każdym użytkowniku przyciski usuń/edytuj (co moim zdaniem jest praktyczne, ale za ciekawie nie wygląda)
id użytkowników przesyłaj metodą get ( w linkach, np. http://www.twojastrona.com/admin.php?action=edituser&userid=5 )
Właśnie mam przy każdym userze opcje edycji i usuwania.
I chce pozostać przy tej opcji.
No to najlepiej w takim wypadku przesyłaj owo id_usera poprzez $_GET. W skrypcie zaś sprawdzaj uprawnienia usera wykonującego skrypt i w zależności od tego pozwól na usunięcie lub edycję. Przy edycji oczywiście po sprawdzeniu uprawnień sprawdź parametr user_id i pobierz z bazy dane jeśli możesz. Reszta edycji już typowa. W efekcie plik do edycji wygląda mniej więcej tak:
Takie podejście pozwoli Ci ładnie ogarnąć co dzieje się w kodzie bo oddziela logikę od prezentacji, jeśli nie korzystasz z OOP z jakichś względów A jak pokombinujesz to zrobić z tego bibliotekę do generowania formularzy już nietrudno. Jeśli się zaś przyjrzysz, to plik ten pozwala na użycie pliku zarówno do edycji jak i tworzenia. Zależnie od tego czy $pola['id'] będzie 0 czy większe od 0 wywołasz albo insert albo update. A obecność prawidłowego $_GET['id'] spowoduje dodatkowo wyciągnięcie z bazy wartości do edycji. Z kolei $_POST ustawione sygnalizuje walidację danych z formularza otrzymanych. Jedynie można się zastanawiać czy pierwsze ma być sprawdzanie GET czy może $_POST, albo zrobienie ifelse by wykluczyć wariowanie z przesłaniem obu, co może być niepożądane.
<?php $pola = http://www.php.net/array(); $errors = http://www.php.net/array(); if( http://www.php.net/isset( $_GET ) AND !http://www.php.net/empty( $_GET ) AND http://www.php.net/array_key_exists( 'id', $_GET ) ) { //sprawdzenie $_GET['id'] i ustawienie go jako $pola['id'] //pobranie danych z bazy i wpisanie do $pola } if( http://www.php.net/isset( $_POST ) AND !http://www.php.net/empty( $_POST ) AND http://www.php.net/array_key_exists( 'send', $_POST ) ) { //walidacja danych //Jeśli są jakieś problemy to wrzuć błąd do $errors['name_pola'] :) //sprawdzenie czy wszystko OK zasadzie: if( http://www.php.net/empty( $errors ) ) { //tutaj update lub insert } else { //a tutaj możesz zrobić coś dodatkowo jeśli są błędy, bo wyświetlasz i tak je obok konkretnych pól ich tyczących :) } //update jeśli wszystko ok i zrobienie $pola['name_pola'] = $_POST['name_pola'] by wyświetlić owe dane w formie oraz dodatkowo po insercie: //$pola['id'] = mysql_insert_id(); //co ma na celu wykluczyć choć część dubli a userowi jeśli zauważy błąd udostępnić już edycję tegoż rekordu a nie insert ponownie jeśli to było dodanie nowego. } ?> a tutaj formularz na zasadzie <form method="post" action=""> <input type="text" name='pole1' value="<?php http://www.php.net/echo $pola['pole1']; ?>" /> <?php if( http://www.php.net/isset( $errors['pole1'] ) ) http://www.php.net/echo '<p class="error">'.$errors['pole1'].'</p>'; ?> <input type="hidden" value="<?php http://www.php.net/echo $pola['id']; ?>"> <input type="submit" value="Wyślij" /> </form>
Dzięki za obszerny tutek. Sorki że dopiero teraz odpisuje ale czasu nie miałem.
Thek Twój tutek jest bardzo dobry i duzo rzeczy objasnia, ale niestety nie dokońca wiem jak to zdziałać.
Ale i tak wielkie dzięki
Jeśli masz oparte na formularzu podobnym do tego z mojego objasnienia, to wystarczy zrobić na stronie ze wszystkimi userami porobić odpowiednie linki kierujące do strony edycji o odpowiednim parametrze GET['id'].
Dzisiaj pokombinuje, zobaczymy co mi wyjdzie z tego.
Wróce z editem
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)