Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z usówaniem rekordu za pomocą PHP
Forum PHP.pl > Forum > Przedszkole
Neojawor
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 sad.gif

Oczywiście polecenie wysłane przez PHPMyAdmin działa, więc problem chyba w php, a nie SQL-u
SongoQ
Pokazuje sie jakis blad? i co zwraca echo $rezultat;?questionmark.gif
mike
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!
SongoQ
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.
Neojawor
błąd ortograficzny poprawiony 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.
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.