Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tabela usuwanie rekordu
Forum PHP.pl > Forum > Przedszkole
flaq1991
Witam próbuje już od dłóższego czasu to rozkminic ale mi nie wychodzi a więc mam takie tabele (przedstawione poniżej) i chciałbym dodać tam po test4 kolumne "usun" która usuwała by właśnie daną kolumne np.

test1...test2...test3....test4....usun <1>
test1...test2...test3....test4....usun <2>
test1...test2...test3....test4....usun <3>

i jeżeli kliknąłbym usun np. w <2> to usuwał by się rekord z bazy z tymi danymi a reszta by zostawała, zapytania i całą reszte mam tylko problem tkwi w tym że nie wiem jak usunac daną kolumne(tabele)



  1. echo "<td><center><font color=\"#339900\">Test1</td><td><center><font color=\"#339900\">Test2</td>
  2. <td><center><font color=\"#339900\">Test3</td><td><center><font color=\"#339900\">Test4</td></td></td></tr></tr>";
  3. while($r = mysql_fetch_assoc($wynik)) {
  4.  
  5. echo "<td><center>".strip_tags(stripslashes(htmlspecialchars(addslashes($r['test1']))))."<br></td>";
  6. echo "<td><center>".strip_tags(stripslashes(htmlspecialchars(addslashes($r['test2']))))."</td>";
  7. echo "<td><center>".strip_tags(stripslashes(htmlspecialchars(addslashes($r['test3']))))."</td>";
  8. echo "<td><center>".strip_tags(stripslashes(htmlspecialchars(addslashes($r['test4']))))."</td>";
aras785
A może o takie coś chodzi?
  1. <?php
  2. echo '<tr><th>TEST 1</th><th>TEST 2</th><th>TEST 3</th><th>TEST 4</th><th>AKCJA</th></tr>';
  3. while($r = mysql_fetch_assoc($wynik)) {
  4. echo '<tr>';
  5. echo '<td><center>'.strip_tags(stripslashes(htmlspecialchars(addslashes($r['test1'])))).'</center></td>';
  6. echo '<td><center>'.strip_tags(stripslashes(htmlspecialchars(addslashes($r['test2'])))).'</center></td>';
  7. echo '<td><center>'.strip_tags(stripslashes(htmlspecialchars(addslashes($r['test3'])))).'</center></td>';
  8. echo '<td><center>'.strip_tags(stripslashes(htmlspecialchars(addslashes($r['test4'])))).'</center></td>';
  9. echo '<td><a href="index.php?usun='.$r['id'].'">Usuń</a></td>';
  10. echo '<tr>';
  11. }
  12. ?>
flaq1991
Tak tylko że każdą osobno i ma to być w tej tabelce w php opisałem w miare dokładnie tongue.gif

Dobrze właśnie o to mi chodziło tylko teraz jak zapisać tą funkcje usuwania questionmark.gif dotychczas miałem taką funkcje do usuwania wszystkich rekordów mógłbyś mi to przerobić aby działała właśnie z twoim podanym kodem wyżej ?

funkcja :
  1. <?php
  2. if($submit)
  3. {
  4. mysql_connect(123,123,123);
  5. $zapytanie = "DELETE FROM tabela WHERE userid='$login'";
  6. mysql_query($zapytanie);
  7. echo "Twoje rekordy zostały usunięte !";
  8. }
  9. ?>

Był to button kasujący wszystkie rekordy danego użytkownika ;S nie wiem właśnie jak by to zapisać do twojego przykładu.
aras785
Myślę, że takie coś Ci wystarczy smile.gif

tabela: test

  1. <?php
  2. //kasowanie rekordu
  3. if(isset($_GET['usun']) and is_int($_GET['usun'])) {
  4. $id = (int)$_GET['usun'];
  5. //sprawdzamy czy jest w bazie
  6. $q = mysql_query("SELECT id FROM test WHERE id='$id' LIMIT 1--");
  7. if(mysql_num_rows($q)==1) {
  8. //usuwanie
  9. if(mysql_query("DELETE FROM test WHERE id='$id' LIMIT 1--")) {
  10. echo('Usunięto!');
  11. }
  12. }
  13. }
  14.  
  15. $wynik = mysql_query("SELECT * FROM test");
  16. echo '<table><tr><th>TEST 1</th><th>TEST 2</th><th>TEST 3</th><th>TEST 4</th><th>AKCJA</th></tr>';
  17. while($r = mysql_fetch_assoc($wynik)) {
  18. echo '<tr>';
  19. echo '<td><center>'.strip_tags(stripslashes(htmlspecialchars(addslashes($r['test1'])))).'</center></td>';
  20. echo '<td><center>'.strip_tags(stripslashes(htmlspecialchars(addslashes($r['test2'])))).'</center></td>';
  21. echo '<td><center>'.strip_tags(stripslashes(htmlspecialchars(addslashes($r['test3'])))).'</center></td>';
  22. echo '<td><center>'.strip_tags(stripslashes(htmlspecialchars(addslashes($r['test4'])))).'</center></td>';
  23. echo '<td><a href="index.php?usun='.$r['id'].'">Usuń</a></td>';
  24. echo '<tr>';
  25. }
  26. echo '</table>';
  27. ?>
flaq1991
Cos nie kasuje nie wiem dlaczego, tylko odświerza strone pozatym nic sie nie dzieje (zmieniłem oczywiscie zapytania na swoje)
aras785
  1. <?php
  2. //kasowanie rekordu
  3. if(isset($_GET['usun']) and !empty($_GET['usun'])) {
  4. $id = (int)$_GET['usun'];
  5. //sprawdzamy czy jest w bazie
  6. $q = mysql_query("SELECT id FROM test WHERE id='$id' LIMIT 1--");
  7. if(mysql_num_rows($q)==1) {
  8. //usuwanie
  9. if(mysql_query("DELETE FROM test WHERE id='$id' LIMIT 1--")) {
  10. echo('Usunięto!');
  11. } else echo('Błąd 2');
  12. }else echo('Błąd 1');
  13. }
  14.  
  15. $wynik = mysql_query("SELECT * FROM test");
  16. echo '<table><tr><th>TEST 1</th><th>TEST 2</th><th>TEST 3</th><th>TEST 4</th><th>AKCJA</th></tr>';
  17. while($r = mysql_fetch_assoc($wynik)) {
  18. echo '<tr>';
  19. echo '<td><center>'.strip_tags(stripslashes(htmlspecialchars(addslashes($r['test1'])))).'</center></td>';
  20. echo '<td><center>'.strip_tags(stripslashes(htmlspecialchars(addslashes($r['test2'])))).'</center></td>';
  21. echo '<td><center>'.strip_tags(stripslashes(htmlspecialchars(addslashes($r['test3'])))).'</center></td>';
  22. echo '<td><center>'.strip_tags(stripslashes(htmlspecialchars(addslashes($r['test4'])))).'</center></td>';
  23. echo '<td><a href="index.php?usun='.$r['id'].'">Usuń</a></td>';
  24. echo '<tr>';
  25. }
  26. echo '</table>';
  27. ?>
flaq1991
wywala błąd 1 ;S
aras785
twoja strktura w tabeli "test" wyglada tak:
id, test1,test2,test3,test4 questionmark.gif


czy:
test1,test2,test3,test4 questionmark.gif
flaq1991
w bazie danych jest także id ale w tabeli na podstronie wyswietlam test1,2,3,4 bez id
oczywiscie "ID" zmieniłem na to co jest pokazane w tabeli na podstronie czyli "Login" i także nie działa
aras785
zrób export bazy danych i wstaw tutaj:)
flaq1991
w bazie danych tabela wygląda tak :

ID,login,TEST2,TEST3,TEST4

na stronie która wyswietla te dane jest tak :

login,TEST2,TEST3,TEST4

funkcję dałem w ten sposób :

  1. if(isset($_GET['usun']) and !empty($_GET['usun'])) {
  2. $login = (int)$_GET['usun'];
  3. //sprawdzamy czy jest w bazie
  4. $q = mysql_query("SELECT login FROM konta WHERE login='$login' LIMIT 1--");
  5. if(mysql_num_rows($q)==1) {
  6. //usuwanie
  7. if(mysql_query("DELETE FROM konta WHERE login='$login' LIMIT 1--")) {
  8. echo('Usunięto!');
  9. } else echo('Błąd 2');
  10. }else echo('Błąd 1');
  11. }


Więc zrobiłem to dobrze tak ?
aras785
  1. if(isset($_GET['usun']) and !empty($_GET['usun'])) {
  2. $id = (int)$_GET['usun'];
  3. //sprawdzamy czy jest w bazie
  4. $q = mysql_query("SELECT id FROM konta WHERE id='$id' LIMIT 1--");
  5. if(mysql_num_rows($q)==1) {
  6. //usuwanie
  7. if(mysql_query("DELETE FROM konta WHERE id='$id' LIMIT 1--")) {
  8. echo('Usunięto!');
  9. } else echo('Błąd 2');
  10. }else echo('Błąd 1');
  11. }



ps. rób wcięcia
flaq1991
znów wywala bład 1 zaraz sprawdze jeszcze jedną możliwość
viking
Po co robisz selecta żeby zaraz potem to samo zapytanie posłać do delete? Delete zwróci false jeżeli nie zostanie wykonane.
aras785
Masz racje smile.gif

  1. if(isset($_GET['usun']) and !empty($_GET['usun'])) {
  2. $id = (int)$_GET['usun'];
  3. if(mysql_query("DELETE FROM konta WHERE id='$id' LIMIT 1--")) {
  4. echo('Usunięto!');
  5. }else echo('Błąd 2');
  6. }
flaq1991
Niby pokazuje że usunięto ale nie usuwa nic biggrin.gif hah coraz bliżej
aras785
zrób eksport tabeli konta i wrzuć cały plik php
viking
Spróbuj jeszcze wyrzucić '' wokół id bo aktualnie id jest u ciebie stringiem.
flaq1991
Nie ma sensu jednak wpadłem na coś dziwnego właśnie zmieniłem aby kasował po ID i skasował a loginu nie chce kasować ponieważ nie jest INT'em
  1. $id= (int)$_GET['usun'];

tutaj prawdopodobnie przez tego INT nie kasuje zapisów słownych, mogę sie mylić ? może zmienić to tylko na co najlepiej ?
aras785
Chcesz kasować po ID czy po loginie?
flaq1991
po loginie mógłby jeszcze mi ktoś na szybko to zabezpieczyc przed sql injection ? z góry thx chodzi o zmienną usun
viking
Gdybyś zerknął w dokumentację masz tam podane przykłady:
  1. $query = sprintf("SELECT firstname, lastname, address, age FROM friends
  2. WHERE firstname='%s' AND lastname='%s'",
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.