Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] usuniecie danych z bazy z potwierdzeniem
Forum PHP.pl > Forum > PHP
roghatt
Witam
Skrypt umozliwia edytowanie danych o produkcie gdzie mozna zmienic poszczegolne pola. Na dole jest przycisk "zmien". A jak dodac do tego przycisk "usun produkt" ale po nacisnieciu aby wyskoczylo dodatkowe okienko "czy na pewno chcesz usunac produkt?".

zapytanie do bazy ma sie wykonac takie:
  1. DELETE FROM produkty WHERE id=$id;

jak to w ogole doczepic pod przycisk "usun produkt" ?
franki01
  1. <a href="" onclick="return confirm('Czy na pewno chcesz usunąć ten produkt?')">Usuń</a>

?
roghatt
a jak do przycisku usun dodac to zapytanie do bazy
  1. DELETE FROM produkty WHERE id=$id;


?
Wczesniej nie zajmowalem sie usuwaniem danych z bazy wiec moze i proste pytanie ale czy mozna przypisac do nawet linka (<a href...) to zapytanie aby po kliknieciu je wykonac i przy okazji aby potwierdzic?
kfc4
w href dajesz plik.php?usun=jakies tam id. W kodzie
  1. if (isset($_GET[usun']) {
  2. // Usuń rekord o ID $_GET['usun']
  3. }
roghatt
teraz jak edytuje produkt to mam adres
index.php?top=6&prod=1
gdzie to ID po prod= to ID produktu w bazie.

czyli pod href usun dam
index.php?top=6&prod=1&usun=1

ale nie rozumiem tego:
  1.  
  2. if (isset($_GET[usun']) {
  3. // Usuń rekord o ID $_GET['usun']
  4. }

co mam wstawic w miejsce "Usuń rekord..."

w tym miejscu pod jakas zmienna mam podczepic zapytanie do bazy i to zmienna tu wstawic?
nie rozumiem tego do konca
voodka
Cytat(freelinkz @ 6.09.2009, 21:44:03 ) *
teraz jak edytuje produkt to mam adres
index.php?top=6&prod=1
gdzie to ID po prod= to ID produktu w bazie.

czyli pod href usun dam
index.php?top=6&prod=1&usun=1

ale nie rozumiem tego:
  1.  
  2. if (isset($_GET[usun']) {
  3. // Usuń rekord o ID $_GET['usun']
  4. }

co mam wstawic w miejsce "Usuń rekord..."

w tym miejscu pod jakas zmienna mam podczepic zapytanie do bazy i to zmienna tu wstawic?
nie rozumiem tego do konca


  1. $id = $_GET['id']; //czy jakis inny
  2. $zapytanie = "DELETE FROM _TABELA_ WHERE id='$id'";
  3. $query = mysql_query($zapytanie);

Usuwasz podobnie jak dodajesz, czy edytujesz dane w bazie.
roghatt
no ok, ale ja tutaj mam edytowanie i jakos nie moge tego polaczyc.

troche mam to inaczej zrobione a usuwanie chcialem zrobic klikajac w link
Dalej tego nie rozumiem do konca

robie:
  1. $id = $_GET['id'];
  2. $zapytanie = "DELETE FROM produkty WHERE id='$id'";

pozniej
  1. if (isset($_GET['usun']) {
  2. $query = mysql_query($zapytanie);
  3. }


a link ktory klikam wyglada tak:
index.php?top=6&prod=2$usun=2

ADeM
Zamiast:
  1. $id = $_GET['id'];

Daj:
  1. $id = $_GET['prod'];
roghatt
ok to cos robie zle...
Oto jak robie

w pliku gdzie edytuje produkt jestem pod adresem
index.php?top=6&prod=7

link "usun" przekierowuje na adres:
index.php?top=11

pod tym adresem jest plik ktory zawiera:
  1. $id=$_GET['prod'];
  2. $query="DELETE FROM produkty WHERE id = '$id";
  3. mysql_query($query);


ale produkt z bazy o ID=7 nie jest usuwany, nic sie nie dzieje, gdzie robie blad?
ADeM
-.-' Mówisz jedno, robisz drugie. Podstawy!
Ponoć link, który klikasz wygląda tak: index.php?top=6&prod=2&usun=1
roghatt
no to usun bylo po to bo ktos mi to zalecil, ale po chwili zauwazylem, ze przeciez cyferka po prod i po usun jest takie samo bo jest pobierane z tego samego zrodla. Wiec po co tutaj to "&usun=" ?
plik ktory posiada kod do usuwania pobiera cyferke ktora znajduje sie po "prod"
  1. $id=$_GET['prod'];

wiec nawet jak link "usun" bedzie kierowal na index.php?top=11&prod=9 to nic nie usuwa

jak pisalem, kod usuwajacy czyli
  1. <?
  2. $id=$_GET['prod'];
  3. $query="DELETE FROM produkty WHERE id = '$id";
  4. mysql_query($query);
  5. ?>

znajduje sie pod adresem index.php?top=11
produkt edytuje pod adresem
index.php?top=6&prod=9
a link usun kieruje na index.php?top=11&prod=9 (wczesniej probowalem index.php?top=11) i nic sie nie dzieje. a cyferka przeciez jest pobierana
  1. $id=$_GET['prod'];
?
ADeM
  1. <?
  2. if( isset( $_GET['usun'] ) ){
  3. $id=$_GET['prod'];
  4. $query="DELETE FROM produkty WHERE id = '$id";
  5. mysql_query( $query );
  6. }
  7. ?>

Kod do usuwania powinien wyglądać tak. Instrukcja warunkowa i $_GET['usun'] jest potrzebne, żeby Ci czasem nie usunął czegoś po wejściu na adres index.php.
A link do usuwania powinien być w takiej postaci: index.php?top=6&prod=9&usun=1
roghatt
link nie powinien wygladac tak:
index.php?top=6&prod=9&usun=1
tylko tak
index.php?top=11&prod=9&usun=1 ?
bo pod top=11 znajduje sie ten caly kod.
a czy ten parametr po "usun" ma byc generowany jakos czy ma zawsze wynosic 1?

Oba powyzsze nie usuwaja niestety produktu z bazy.
tak jak pisales
kod usuwajacy
  1. <?
  2. if( isset( $_GET['usun'] ) ){
  3. $id=$_GET['prod'];
  4. $query="DELETE FROM produkty WHERE id = '$id";
  5. mysql_query( $query );
  6. }
  7. ?>


znajduje sie pod adresem index.php?top=11
a w edycji produktu mam adres index.php?top=6&prod=9
link usun dla produktu o id=9 to index.php?top=11&prod=9&usun=1

czy nie mozna dopisac jakiegos kawalka kodu ktory wyswietli czy poszczegolne parametry sa dobrze pobierane i czy jakis kawalek kodu sie wykonal?
ADeM
Bez sensu... ;/
Wartości top, prod były przykładowe.
A kod nie ma się wykonywać po otworzeniu index.php?top=11, tylko index.php?top=11&prod=9&usun=1.
Najlepiej będzie, jeśli podasz cały kod, albo poczytasz to co się znajduje tutaj: http://pl.php.net/manual/pl/reserved.variables.get.php, http://pl.php.net/manual/pl/control-structures.if.php, http://pl.php.net/echo, http://pl.php.net/manual/pl/function.mysql-query.php, http://dev.mysql.com/doc/refman/5.1/en/delete.html. Pod tymi linkami znajdziesz wszystko, czego potrzebujesz.
roghatt
dla mnie to powinno dzialac
moze tak

plik
edytuj.php
edit

Edytowanie produktow pod top=6
index.php?top=6&prod=nrproduktu

usuwanie produktu po kliknieciu w usun (index.php?top=11&prod=nrproduktu&usun=1)
  1. <?
  2. if( isset( $_GET['usun'] ) ){
  3. $id=$_GET['prod'];
  4. $query="DELETE FROM produkty WHERE id = '$id";
  5. mysql_query( $query );
  6. }
  7. ?>

usuwanie to top=11

plik z usuwaniem znajduje sie w tym samym miejscu co edytuj.php a plik z formularzem w katalogu "forms"
ADeM
A możesz podać plik index.php? -.-'
roghatt
index ma jedynie
  1.  
  2. <?
  3. include ("parametry.php");
  4. switch ($top) {
  5. case $ADM_TOP_EDYTUJ_PRODUKTY: include("produkty/edytuj.php"); break;
  6. case $ADM_TOP_USUN_PRODUKTY: include("produkty/usun.php"); break;
  7.  
  8. }
  9. ?>

w parametrach przypisane sa do poszczegolnych $ADM_TOP_EDYTUJ_PRODUKTY i $ADM_TOP_USUN_PRODUKTY top=6 i top=11 i dane polaczenia z baza
thek
Napiszę tylko dwie rzeczy... Zapytanie usuwające z bazy i apostrofy. Kto się przyjrzy ten zrozumie.
roghatt
o kurde...
no tak juz mam
  1. #
  2. $query="DELETE FROM produkty WHERE id = '$id'";

i nawet dziala:)
czlowiek szuka gdzie indziej bledu a tu takie cos...
dzieki wielkie za pomoc
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.