Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Usuwanie wybranego rekordu na stronie
-Gość-
post 3.06.2011, 15:12:03
Post #1





Goście







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
Go to the top of the page
+Quote Post
modziar
post 3.06.2011, 15:48:53
Post #2





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 11.02.2011

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


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

Ten post edytował modziar 3.06.2011, 16:29:38
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.07.2025 - 03:47