Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z DELETE
nevar
post 7.05.2006, 16:12:38
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


Czy w tym skrypcie jest coś nie tak??
Nic nie wykonuje, pusty ekran się pojawia:(

  1. <?
  2.  
  3. include ("baza.php");
  4. $baza = mysql_connect ($mysql_host, $mysql_user, $mysql_haslo) or die ("Brak połączenia");
  5. $db = mysql_select_db($mysql_baza);
  6.  
  7. $id = $_POST['id_pyt'];
  8. $usun = "DELETE * FROM quiz where id=$id"; 
  9. $usun = mysql_query($usun);
  10. echo 'Zmieniono: '.mysql_affected_rows().'<br>'; 
  11. if ($usun) {
  12. echo '<p>Pytanie usunięto</p>';
  13. } else {
  14. echo mysql_error(); echo '<p>Błąd! Spróbuj ponownie</p>';
  15.  
  16. }
  17.  
  18. }
  19. ?>
Go to the top of the page
+Quote Post
Master Miko
post 7.05.2006, 16:41:36
Post #2





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


Usuń * z zapytania delete, daj apostrofy pomiędzy $id i będzie śmigać, no i daj LIMIT 1 na wszelki wypadek.

Ten post edytował Master Miko 7.05.2006, 16:42:00


--------------------
Go to the top of the page
+Quote Post
nevar
post 7.05.2006, 16:52:54
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


Zrobiłem tak jak mówisz

Skrypt wygląda tak:

  1. <?
  2.  
  3. include ("baza.php");
  4. $baza = mysql_connect ($mysql_host, $mysql_user, $mysql_haslo) or die ("Brak połączenia");
  5. $db = mysql_select_db($mysql_baza);
  6.  
  7. $id = $_POST['id_pyt'];
  8. $usun = "DELETE FROM quiz where id='$id' LIMIT 1"; 
  9. $usun = mysql_query($usun);
  10.  
  11. echo 'Zmieniono: '.mysql_affected_rows().'<br>'; 
  12. if ($usun) {
  13. echo '<p>Pytanie usunięto</p>';
  14. } else {
  15. echo mysql_error(); echo '<p>Błąd! Spróbuj ponownie</p>';
  16.  
  17. }
  18.  
  19. }
  20. ?>


ale dalej nic nie wykonuje:(

Wcześniej wychodzę z takiego skryptu:

  1. <?php
  2. include ("baza.php");
  3. $baza = mysql_connect ($mysql_host, $mysql_user, $mysql_haslo);
  4. mysql_select_db($mysql_baza);
  5. $wynik = mysql_query("select * from quiz");
  6.  
  7.  
  8. if (mysql_num_rows ($wynik)>0)
  9. {
  10. $i=1;
  11. while($pytanie = mysql_fetch_array($wynik))
  12. {
  13. print '<font face="Arial" size="3">'.$i.'.</font>';
  14. print '<font face="Arial" size="3">'.$pytanie['pyt'].'</font><br>';
  15. print '<font face="Arial" size="2"><input type="radio" name=p'.$pytanie['id'].' value="a" />'.$pytanie['odpa'].'<br></font>';
  16. print '<font face="Arial" size="2"><input type="radio" name=p'.$pytanie['id'].' value="b" />'.$pytanie['odpb'].'<br></font>';
  17. print '<font face="Arial" size="2"><input type="radio" name=p'.$pytanie['id'].' value="c" />'.$pytanie['odpc'].'<br></font>';
  18. print '<font face="Arial" size="3" color="green">Poprawna odp to:'.$pytanie['odppraw'].'</font><br>';
  19.  print '<input type="button" value="Edytuj" onClick="window.open('edytuj.php?id_pyt='.$pytanie['id'].'''nazwa').focus(); return false" />';
  20. print '<input type="button" value="Usuń" onClick="if(window.confirm('Czy na pewno ?')){window.location='usun.php?id_pyt='.$pytanie['id'].'';}">';
  21. print '<br><hr>';
  22. $i++;
  23. }
  24. }
  25.  
  26. ?>


Klikam przycisk Usuń, jeszcze jest potwierdzenie ale dalej nic nie wykonuje
Go to the top of the page
+Quote Post
Michasko
post 7.05.2006, 17:04:48
Post #4





Grupa: Zarejestrowani
Postów: 283
Pomógł: 31
Dołączył: 10.01.2006
Skąd: Działoszyn

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


Może niepotrzebnie, ale dziwi mnie to:

  1. <?php
  2. $usun = "DELETE FROM quiz where id='$id' LIMIT 1"; 
  3. $usun = mysql_query($usun);
  4. ?>


zmienna usun ma teraz wartosc 'mysql_query($usun)' zamiast 'DELETE FROM quiz where id='$id' LIMIT 1' tak więc zapytanie sie raczej nie wykona, choć moge sie mylić.


--------------------
Po prawie 3-letniej przerwie w programowaniu, znowu raczkuję :)
Go to the top of the page
+Quote Post
kwiateusz
post 7.05.2006, 17:29:07
Post #5


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




no i sie myslisz bo kod php jest od prawej do lewej przypisywany winksmiley.jpg wiec najpier wykona sie zapytanie potem zostanie rpzypisane do zmienne winksmiley.jpg
Go to the top of the page
+Quote Post
nevar
post 7.05.2006, 18:05:56
Post #6





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


No więc co w takim razie jest nie tak z tym?

Nie wiem czy on dobrze pobiera id

Przekazywane jest tak:

  1. <?php
  2. <input type="button" value="Usuń" onClick="if(window.confirm('Czy na pewno ?')){window.location='usun.php?id_pyt='.$pytanie['id'].'';}">
  3. ?>


usun.php to ten skrypt z DELETE
Go to the top of the page
+Quote Post
Master Miko
post 7.05.2006, 18:50:19
Post #7





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


a dałeś refresh snitch.gif ?

Sprawdź w skrypcie tam gdzie masz przycik "usuń"
czy ściężka to usun.php?id_pyt=no i id jakiegos tam,

w usun.php daj echo tego posta i spradz co wyjdzie.
jesli jest ok, sprawdz czy masz prawa w bazie danych co do kasowania.


--------------------
Go to the top of the page
+Quote Post
nevar
post 7.05.2006, 19:12:03
Post #8





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


Ścieżka jest w porządku

kiedy kliknę na przycisk usuń w linku mam np. http://wloclawek.wsinf.edu.pl/~prempals/usun.php?id_pyt=9

ale nie usuwa mi tego pytania, w ogóle nic nie robi, nic nie wyświetla

Prawa do kasowania mam, sprawdzałem przez phpMyAdmin
Go to the top of the page
+Quote Post
Master Miko
post 7.05.2006, 21:13:03
Post #9





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


Daj to:
  1. <?php
  2.  
  3.  
  4. ?>


na samej górze skryptu (usuń.php) ... i powiedz co powie


--------------------
Go to the top of the page
+Quote Post
nevar
post 7.05.2006, 21:30:08
Post #10





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 26.03.2006

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


Dałem to ale dalej nic nie wyświetla, pusty ekran sad.gif
Go to the top of the page
+Quote Post
Master Miko
post 7.05.2006, 21:34:16
Post #11





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


To powiedz serverowi że jest głupi i ma wszy.
Nie widzę żadnego błędu już :|


a tak serio..

wykasuj tę linię:

  1. <?php
  2.  
  3. $id = $_POST['id_pyt'];
  4. $usun = "DELETE FROM quiz where id='$id' LIMIT 1"; 
  5. $usun = mysql_query($usun);
  6.  
  7. ?>


i powiedz co Ci się pokaże... lub nie.

Ten post edytował Master Miko 7.05.2006, 21:35:27


--------------------
Go to the top of the page
+Quote Post
skowron-line
post 7.05.2006, 21:42:10
Post #12





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


moze daj w tym skrypcie echo $id i zobacz czy wogole przekazuje zmienna,
a i moze powinienies zrobic

  1. <?php
  2. $usun = 'DELETE FROM quiz where id="'.$id.'" LIMIT 1';
  3. ?>


ale jestem tylko czlowiekiem i moge sie mylic

Ten post edytował skowron-line 7.05.2006, 21:42:29


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
nospor
post 8.05.2006, 09:16:05
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) skoro id to liczba, to nie musi byc w ciapkach
2) skoro id jest przekazywane w url to musi byc pobierane z $_GET a nie z $_POST
3) skoro id, zapamietywana jest w parametrze o nazwie id_pyt, to na grzyba dobierac sie do niego poprzez zmienna o nazwie id ?

  1. <?php
  2. $usun = 'DELETE FROM quiz where id='.((int)$_GET['id_pyt']).' LIMIT 1';
  3. ?>

ten (int) to po to, by jak ktos bedzie chcial wlam zrobic, to zeby mu sie nie udalo

ps: i prosze poprawic tytul o znacznik zgodnie z zasadami forum przedszkole


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 24.07.2025 - 18:37