Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Usuwanie wybranego rekordu na stronie
Forum PHP.pl > Forum > Przedszkole
Gość
Witam
Probuje zrobic usuwanie rekordow z bazy danych przez PHP tzn:

mam na stronie liste zarejestrowanych uzytkownikow i chialbym zeby po nacisnieciu przycisku "Usun" ktory jest obok kazdego z nich usuwał wlasnie tego uzytkownika...

ponizej wklejam to co mam ale nie chce działac nie wiedzac czemu:
  1.  
  2. if(!empty($_GET["id"]))
  3. {
  4. mysql_query("DELETE FROM users WHERE user_id = ".$_GET["id"], $mysql_grip);
  5. }
  6.  
  7.  
  8.  
  9. $mysql_result = mysql_query("SELECT * FROM users", $mysql_grip);
  10. echo "<table>";
  11. while($mysql_wynik = mysql_fetch_assoc($mysql_result))
  12. {
  13. echo "<tr><td>".$mysql_wynik["user_id"]."</td><td>".$mysql_wynik["user_name"]."</td><td>".$mysql_wynik["user_email"]."</td>
  14. <td><input type='submit' name='id' onclick='document.location = wylogAdm.php?id=".$mysql_wynik["user_id"]."' value='Usuń'></td></tr>";
  15. }
  16. echo "</table>";
  17.  


pzdr
modziar
Z rzeczy które mi rzucają się w oczy to masz źle zapytanie skonstruowane

mysql_query(" DELETE * FROM users WHERE user_id = '$_GET[d]' ");

nie można robić czegoś takiego " " " "
jezeli już to " ' ' "

2 nie musisz w zapytaniu dawac do elementu tablicowego ' ' [d] a już na pewno nie możesz robić tak ["d"] bo program nie wie gdzie kończy się zapytanie

nie wiem tez co to jest $mysql_grip ale mniemam że to identyfikator polaczenia

ja mam jeden na caly skrypt i nie musze czego takiego pisac a na samej gorze include do niego i dla wszystkich zapytan ty musisz to powtarzac do kazdego
o ile oczywiscie mowimy o tym samym


if(!empty($_GET["id"]))
{
mysql_query("DELETE FROM users WHERE user_id = ".$_GET["id"], $mysql_grip);
}




i po co ta kropka przy gecie tam nic nie laczysz

echo masz tez zle

pamietaj ze nie mozę być "" w "" a jesli juz jest to znak ucieczki \" \"
w moim przekonaniu echem robic sie to tak

$zmienna='dupa'

echo '<br>'.$zmienna.'<br>'

porownaj ze swoim kodem i popraw na ten wzorzec
3 rzecz jest taka ze nie filtrujesz GETa rownie dobrze moge ci tam wpisac dupa i jaka masz pewnosc ze uzytkownik bedzie robil wszystko tak jak sobie to wymysliles

twojastrona.pl/d=kasujecibaze&f=musisztofiltrowac

tak jak to teraz masz moge ci skasowac dowolnego uzytkownika z bazy,gdzie sprawdzasz czy usuwane id jest id osoby ktora to id posiada


Kod
include"twojepolaczenie.php";

if(isset($_SESSION['id']) && $_SESSION['id']==$_GET['id']){
if(!empty($_GET['id']) )
{

$d=htmlspecialchars(strip_tags($_GET[id]));
/* to masz pogladowo jakich funkcji musisz uzyc poczytaj np mysql_real_escape_string*/


    mysql_query("DELETE FROM users WHERE user_id = '$_GET[id]'");
    $mysql_result = mysql_query("SELECT * FROM users");
    echo '<table>';
    
    while($mysql_wynik = mysql_fetch_assoc($mysql_result))
    {
    echo '<tr><td>'.$mysql_wynik[user_id].'</td><td>'.$mysql_wynik[user_name].'</td><td>'.$mysql_wynik[user_email].'</td>
    <td><input type=\'submit\' name=\'id\' onclick=\'document.location=wylogAdm.php?id='.$mysql_wynik[user_id].' value=\'Usuń\'></td></tr>';
    };
    
    echo '</table>';

}else{
  echo 'Nie mozesz kasowac innych uzytkownikow';
    }
}else{echo'aby kasowac musisz sie zalogowac';};


/* rozumiem ze nie chciales prze echowac w while 3 razy table ale tego sie tak  nie robi table wstaw w htrml a pomiedzy nim
kod php i jak juz masz tak robic to zrob to w ten sposob chociaz lepiej nie kleic php z html*/



a i mysql nie ma czegos takiego jak DELETE FROM
musisz okreslic co kasuje

czyli np DELETE *
*-wszystko lub nazwa_pola lub nazwa kilku pol pole,pole2,pole3


zrobil to na szybko na odpieprz wiec musisz dopracować życzę powodzenia w nauce a na pewno dasz rade
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.