Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP][MySQL + PHP] - usunięcie rekordu z bazy za pomocą formularza
Forum PHP.pl > Forum > Przedszkole
dawideq03
Witam,

mam (mam nadzieje) trywialne pytanie. Otóż próbuje zrobić formularz który usunie mi z bazy wybrany (oznaczony id) rekord . SELECT i INSERT działają, jednak nie mogę sobie poradzić z DELETE.

A mianowicie, skrypt wygląda następująco:

Kod
<?php

//skrypt odpowiedzialny za dodawnaie nowego użytkownika do bazy danych
//        1. Wyświetlenie listy użytkowników
//        2. Dodanie nowego użytkownika
//        3. Usunięcie użytkownika

        mysql_connect("localhost", "baza_danych", "haslo") or
            die ("Nie można połączyć się z bazą");
        mysql_select_db ("dawidbtest28") or
            die ("Nie można połączyć się z bazą");
        
        // 1. Wyświetlenie listy użytkowników
        
        $wynik = mysql_query("SELECT login, id FROM users") or
            die ("błąd w zapytaniu");
        
        while ($rekord = mysql_fetch_assoc ($wynik)) {
        $id = $rekord['id'];
        $login = $rekord['login'];
        
        print "$id";
        print "$login";
        print "\n";
        
        }
        
        
        // 2. Dodanie użytkownika do bazy danych
        
        if (isSet($_POST['user']) && $_POST['user'] = 'dodaj' ) { //dodanie rekordu
            
            if (isSet($_POST['login']) &&  isSet($_POST['haslo'])) {
            
            $query = "INSERT INTO users (login, haslo) VALUES ('".$_POST['login']."' , '".$_POST['haslo']."');";
            $wynik = mysql_query ($query) or
                die ("błąd w zapytaniu");
            }

                 // 3. Próba usunięcia użytkownika o wybranym id                  

        } elseif (isSet($_GET['co']) && isSet($_GET['id']) && $_GET['co'] == 'usun' ) {
            $wynik = mysql_query("DELETE FROM users WHERE nr = '".$_GET['id']."';"); or
                die ("błąd w zapytaniu");
            
            }
        
                //formularz dodania - działa :]        

        print "</table>";
        print '<form method="POST" action="/foreach/podstrony/adduser.php"><div>Dodaj użytkownika:';
        print '<input type="hidden" name="user" value="dodaj" /><table>';
        print '<tr><td>Login:</td><td><input type="text" ';
        print 'name="login" /></td></tr><tr><td>Haslo:</td><td><input ';
        print 'type="text"  name="haslo" /></td></tr>';
        print '</table><input type="submit" value="Dodaj" /></div></form>';
        

                //i tutaj chciałbym dać formularz na usunięcie, gdzie po podaniu wybranego id, użytkownik o tym id jest usuwany z bazy                

        print "</table>";
        print '<form method="POST" action="/foreach/podstrony/adduser.php"><div>Podaj numer użytkownika do usunięcia:';
        print '<input type="hidden" name="id" value="$id" /><table>';
        print '<tr><td>Numer:</td><td><input type="text" ';
        print 'name="login" /></td></tr>';
        print '</table><input type="submit" value="Usun" /></div></form>';
        

?>



Za wszelką pomoc byłbym dozgonnie wdzięczny.

Pozdrawiam.

sajegib
Oddziel sobie PHP od HTML, po co PRINT'owac form?

W "name" inputu (zakładam, że submit) umieść id użytkownika i prześlij do skryptu
dawideq03
Dzięki za odpowiedź,

co do pierwszego oddzieliłem,

w przypadku drugiego (id w name) mam coś takiego:

Kod
</table>
        <form method="POST" action="/foreach/podstrony/adduser.php"><div>Podaj numer użytkownika do usunięcia:
        <input type="hidden" name="id" value="usun" /><table>
        <tr><td>Numer:</td><td><input type="text"
        name="login" /></td></tr>
        </table><input type="submit" name="id" value="Usun" /></div></form>


Nie działa niestety :/

całość jest podana na stronie http://dawidbtest.home.pl/foreach/podstrony/adduser.php , zależy mi przede wszystkim aby po podaniu np. 5 został usunięty login admin. Może coś źle podaje w zapytaniu DELETE do bazy?
sajegib
raczej chodziło mi od Id jako numer, cyfra, liczba którą zidentyfikujesz usera którego chcesz usunąć

  1. name="<?php echo "$twoja_zmienna_z_id_usera"?> "
_Borys_
zrób sobie var_dump($_POST) i zobaczysz,że podane id masz w $_POST['login']
dawideq03
Mam coś takiego:

  1. </table>
  2. <form method="POST" action="/foreach/podstrony/adduser.php"><div>Podaj numer użytkownika do usunięcia:
  3. <input type="hidden" name="id" value="usun" /><table>
  4. <tr><td>Numer:</td><td><input type="text"
  5. name="id" /></td></tr>
  6. </table><input type="submit" name="<?php echo "$id"?>" value="usun" /></div></form>


sajegib - czy chodzi Ci o to aby pobrać id z zapytania

  1. $wynik = mysql_query("DELETE FROM users WHERE nr = '".$_GET['id']."';");
?

_Borys_ - sprawdziłem var_dump, tak pokazywało mi login, teraz w powyższym kodzie jest [id] - nie wiem czy to o to chodziło ( oczywiście dziękuje za wskazówki smile.gif)
dawideq03
Tak, w bazie jest dodana kolumna id ( pobiera ją SELECT i wyświetla obok loginu np. 5 przy admin).

---------------------------------------------------------
edit:

temat do zamknięcia, już sobie poradziłem.
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.