Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Problem z usuwaniem rekordu
yoshinobi
post 23.04.2011, 18:58:47
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.04.2011

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


Witam!

Mam następujący problem:
W bazie danych znajdują się dwie tabele: www i kategoria.
Problem polega na tym, że kod który odpowiedzialny jest za usuwanie danej kategorii nie działa dobrze.
Idea jest taka aby po naciśnięciu "usuń" funkcja sprawdzała czy do danej kategorii nie jest przypisana żadna strona, jeśli jest to pokazuje się odpowiedni komunikat, jeśli zaś nie, kategoria zostaje usunięta.

Oto kod który ma być odpowiedzialny za usuwanie kategorii:
  1. echo "<a href=\"ekategoria.php?a=del&id={$r['idK']}\"><img src=\"img/del.gif\"></a><a href=\"ekategoria.php?b=edit&amp;id={$r['idK']}\"><img src=\"img/edit.gif\"></a>";
  2. if($a == 'del' and !empty($id)) {
  3. $zap = mysql_query("SELECT w.idK, k.idK FROM www AS w INNER JOIN kategoria AS k ON k.idK=w.idK WHERE w.idK=k.idK");
  4. if(mysql_num_rows($zap) > 0){
  5. echo '<div class="erroralert"></div><div class="alercik"><b>Istnieją strony w tej kategorii!<br>Usuń je aby móc usunąć tę kategorie!</b><br><br><a href="ekategoria.php"><img src="img/back2.gif"></a></div>';
  6. }
  7. else {
  8. mysql_query("DELETE FROM $tabela WHERE idK='$id'") or die('Błąd zapytania: '.mysql_error());
  9. echo '<div class="erroralert"></div><div class="alercik"><b>Rekord został usunięty!</b><br><br><br><a href="ekategoria.php"><img src="img/back2.gif"></a></div>';
  10. }
  11. }


Za wszelką pomoc, bądź wskazówki będę bardzo wdzięczny.
Go to the top of the page
+Quote Post
Valker
post 23.04.2011, 19:08:48
Post #2





Grupa: Zarejestrowani
Postów: 40
Pomógł: 5
Dołączył: 24.08.2007
Skąd: Łódź

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


  1. echo "<a href=\"ekategoria.php?a=del&id={$r['idK']}\"><img src=\"img/del.gif\"></a><a href=\"ekategoria.php?b=edit&id={$r['idK']}\"><img src=\"img/edit.gif\"></a>";
  2. if($a == 'del' and !empty($id))
  3. {
  4. $CategoryID = (int) $id;
  5.  
  6. $zap = mysql_query('SELECT idK FROM www WHERE idK='.$CategoryID);
  7. if(mysql_num_rows($zap) > 0)
  8. {
  9. echo '<div class="erroralert"></div><div class="alercik"><b>Istnieją strony w tej kategorii!<br>Usuń je aby móc usunąć tę kategorie!</b><br><br><a href="ekategoria.php"><img src="img/back2.gif"></a></div>';
  10. }
  11. else
  12. {
  13. mysql_query('DELETE FROM kategoria WHERE idK='.$CategoryID) or die('Błąd zapytania: '.mysql_error());
  14. echo '<div class="erroralert"></div><div class="alercik"><b>Rekord został usunięty!</b><br><br><br><a href="ekategoria.php"><img src="img/back2.gif"></a></div>';
  15. }
  16. }


Spróbuj tak.
Poza tym następnym razem filtruj jakoś dane, które masz od użytkownika, bo inaczej szybko się pozbędziesz danych z bazy ;>

Ten post edytował Valker 23.04.2011, 19:09:14
Go to the top of the page
+Quote Post
modern-web
post 23.04.2011, 19:12:34
Post #3





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


1. Wers 2; czytelniejszy zapis (wg mnie):
  1. if($a == 'del' && $id != NULL) {

2. Wers 3; stosuj cudzysłowie...
  1. $zap = mysql_query("SELECT `w.idK`, `k.idK` FROM `www` AS 'w' INNER JOIN `kategoria` AS 'k' ON `k.idK` = 'w.idK' WHERE `w.idK` = 'k.idK'");

3. Wers 8; wywalamy przy okazji obsługę błędów... (zablokuj wyświetlanie błędów z zapytań - patrz `tłumienie błędów`)
  1. mysql_query("DELETE FROM '$tabela' WHERE `idK` = '$id'");


Na pierwszy rzut oka to by było na tyle... Wprowadź poprawki, pokaż powstały kod i będziemy myśleć dalej smile.gif

Edit:
@up pytanie; skąd wiesz, że tego nie robi (filtrowanie danych). przecież błąd nie leży w owym temacie, a skoro nie podał całego kodu to po co mamy rozpatrywać wszystkie przypadki, hm? ...

Ten post edytował modern-web 23.04.2011, 19:16:20


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
yoshinobi
post 23.04.2011, 19:39:01
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.04.2011

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


Valker: Dziękuję za pomoc, teraz wszystko działa ;]
modern-web: Dziękuje za cenne porady, postaram się stosować.
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: 19.07.2025 - 09:48