Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z usówaniem rekordu za pomocą PHP, niby wszystko ok, a jednak nie działa
Neojawor
post
Post #1





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 2.12.2005
Skąd: Jaworzno

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


Problem jest następujący:
Wysyłam metodą GET dane rekordu (patrz linia 12):
  1. <?php
  2. $zapytanie = "select * from nowosci order by id desc";
  3. $wynik = mysql_query( $zapytanie);
  4. $liczba = mysql_num_rows($wynik);
  5. for ($i=0; $i <$liczba; $i++)
  6. {
  7. $wiersz = mysql_fetch_array($wynik);
  8. $tytul = $wiersz['tytul'];
  9. $id = $wiersz["id"];
  10. echo "<tr><td height="30"></td><td><b>".htmlspecialchars(stripslashes($wiersz["tytul"]))."</b></td>";
  11. echo "<td align="center" valign="middle"><a href="edit_nowosci.php?cmd=edit&id=$id&tresc=$tresc"><img src="obrazki/edit.gif" border="0"></a></td>";
  12. echo "<td align="center" valign="middle"><a href="delete_nowosci.php?cmd=delete&tytul=$tytul&id=$id"><img src="obrazki/recycle.gif" border="0"></a></td>";
  13. ?>



Dalej przechodząc do pliku usuwającego rekord:
  1. <?php
  2. $tytul = $_GET['tytul'];
  3. $id = $_GET['id'];
  4. echo $tytul;
  5. echo $id;
  6. //$zapyt = "DELETE FROM nowosci WHERE id='$id' ";
  7. $rezultat = mysql_query ( "DELETE FROM nowosci WHERE id = '$id' " );
  8. echo $rezultat;
  9. if(!$rezultat)
  10. {
  11. echo "coś jest nie tak i nie usunęło rekordu";
  12. }
  13. else
  14. {
  15. echo "<center style="font-size:20px;">nowość <b>".$_GET['tytul']."</b> została usunięta</center>";
  16. }
  17. }
  18. ?>


Wy-echo-wałem wszystkie dane - przechodzą z tamtego pliku, ale instrukcja SQL-owa nie jest wykonywana i nie mam pojęcia czemu, siedzę nad tym już kilka godzin (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Oczywiście polecenie wysłane przez PHPMyAdmin działa, więc problem chyba w php, a nie SQL-u

Ten post edytował Neojawor 3.12.2005, 11:42:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Pokazuje sie jakis blad? i co zwraca echo $rezultat;?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Na pierwszy rzut oka:
Nie tak
  1. <?php
  2.  
  3. // ...
  4. $rezultat = mysql_query ( "DELETE FROM nowosci WHERE id = '$id' " );
  5. // ...
  6.  
  7. ?>

tylko:
  1. <?php
  2.  
  3. // ...
  4. $rezultat = mysql_query ( "DELETE FROM nowosci WHERE id = $id " );
  5. // ...
  6.  
  7. ?>

$id nie powinno być w apostrofach, przecież pole id jest polem liczbowym (tak podejrzewam)

P.S.
Zaglądasz tu czasem: PWN -> Słownik Ortograficzny -> usuwać
Prosze poprawić błędy!
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
$id nie powinno być w apostrofach, przecież pole id jest polem liczbowym (tak podejrzewam)

Podczas wysylania zapytania i tak jest rzutowane na tym znakowy. Wiec od tej zmiennej nie zalezy.
Go to the top of the page
+Quote Post
Neojawor
post
Post #5





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 2.12.2005
Skąd: Jaworzno

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


błąd ortograficzny poprawiony (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Sprawdziłem z tymi apostrofami, to nie to.
Niestety nie wywala żadnego błędu. ten "if" na końcu sprawdza czy mysql_query() zwraca TRUE, no i oczywiście nie zwraca. Wszystkie zmienne wysłane przechodzą poprawnie (sprawdzone echo), więc chyba tylko zostaje wina bazy. Czy to może być wina błędnie zdefiniowanych pól? Tabela "nowosci" wygląda tak:

id | int(10) | UNSIGNED | NOT NULL | AUTO_INCREMENT | (klucz główny)
tytul | text | | NULL |
tresc |longtext | | NULL |
data | date | | NULL |

EDIT:
Właśnie mnie oświeciło - administrator mojej bazy ma restrykcyjne zasady - aplikacje zewnętrzne nie mają praw do zapisu - moja instrukcja jest całkowicie poprawna, trzeba zmienić uprawnienia bazy.

Ten post edytował Neojawor 3.12.2005, 23:58:17
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 06:55