Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MySQL][PHP][MySQL + PHP] - usunięcie rekordu z bazy za pomocą formularza
dawideq03
post 21.01.2013, 20:11:59
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.11.2011

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


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.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
sajegib
post 21.01.2013, 20:19:57
Post #2





Grupa: Zarejestrowani
Postów: 352
Pomógł: 59
Dołączył: 16.01.2013

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


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
Go to the top of the page
+Quote Post
dawideq03
post 21.01.2013, 21:06:26
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.11.2011

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


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?
Go to the top of the page
+Quote Post
sajegib
post 21.01.2013, 21:16:14
Post #4





Grupa: Zarejestrowani
Postów: 352
Pomógł: 59
Dołączył: 16.01.2013

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


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"?> "
Go to the top of the page
+Quote Post
_Borys_
post 21.01.2013, 21:18:16
Post #5





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


zrób sobie var_dump($_POST) i zobaczysz,że podane id masz w $_POST['login']
Go to the top of the page
+Quote Post
dawideq03
post 21.01.2013, 21:42:59
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.11.2011

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


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)
Go to the top of the page
+Quote Post
dawideq03
post 22.01.2013, 19:46:10
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.11.2011

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


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.

Ten post edytował dawideq03 22.01.2013, 19:46:56
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: 14.08.2025 - 02:07