Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Usunięcie wpisu z bazy - sprawdzenie
Forum PHP.pl > Forum > Przedszkole
zagi195
Mam taki kod, który wg. mnie nie ma błędu (w innej stronie taki miałem i działał)
oto on:
  1. if ( $mode == "del" )
  2. {
  3.  
  4.  
  5. $sql = "DELETE FROM " . SERWERS_TABLE . " WHERE serwers_id = '".$get_serwers_id."'";
  6. if( !$result = $db->sql_query($sql) )
  7. {
  8. message_die(GENERAL_ERROR, "Couldn't update serwers table", "", __LINE__, __FILE__, $sql);
  9. }
  10.  
  11. $message = $lang['Serwers_Deleted'] . "<br /><br /><a href=\"".append_sid("admin_serwers.$phpEx?mode=view")."\">". sprintf($lang['Click_Here_Go_Back'] . "</a>");
  12. message_die(GENERAL_MESSAGE, $message);
  13. }


A cały kod pliku jest w moim poprzednim temacie: klik
nospor
No a patrzyłeś czy wegenerowane zapytanie jest ok?

echo $sql;
Co wyswietla?
zagi195
Wyświetla:
Cytat
DELETE FROM phpbb_newserwers WHERE serwers_id = ''
gothye
czyli brak podanego id (parametru) wiec jak ma usunąć ?
nospor
oczywiscie chodzi o register_globals
http://nospor.pl/php-faq.html#faq-3

A na przyszłość włącz sobie wyswietlanie wszystkich błędów.
zagi195
Właśnie wiem, tylko nie wiem czemu. To kod zmiennej.
Cytat
$get_serwers_id = mysql_real_escape_string($HTTP_GET_VARS["serwers_id"]);

od razu mówię że w bazie jest pole serwers_id
nospor
Cytat
od razu mówię że w bazie jest pole serwers_id
Co ma piernik do wiatraka skoro ty go pobierasz z linku a nie z bazy?

Poza tym nie:
$HTTP_GET_VARS["serwers_id"]
a:
$_GET["serwers_id"]
zagi195
Pomieszało już mi się wszystko...
To coś takiego miało by być?
  1. $sql = "DELETE FROM " . SERWERS_TABLE . " WHERE serwers_id = '".$_GET['get_serwers_id']."'";

ale nie działa.
Tylko takim samym sposobem usuwam na innej podstronie i działa, może coś w pliku jest nie tak, podałem link w 1 poście
nospor
No a pokaż jak wyglada link, który odpala ten skrypt.
zagi195
nospor, dziękuje za poświęcenie mi czasu, w linku zrobiłem literówkę. temat możesz zamknąć.
nospor
Gdybyś włączył wyświetlanie wszystkich błędów, o czym ci już pisałem, to byś błąd od razu widział a nie latał po forum.
W ramach więc wdzięczności dla mnie - włącz że te wyświetlanie wszystkich błędów smile.gif
zagi195
ehh... głupio prosić jeszcze o pomoc.. tym razem problem z edycją, tzn. nie zmienia danych w mysql. Włączyłem wyświetlanie błędów ale nie ma w nich nic odnośnie tego.
  1. if ( $HTTP_POST_VARS["save_edit_serwers"] )
  2. {
  3. $post_serwers_ip = mysql_real_escape_string($HTTP_POST_VARS["serwers_ip"]);
  4. $post_serwers_name = mysql_real_escape_string($HTTP_POST_VARS["serwers_name"]);
  5. $post_serwers_hosting = mysql_real_escape_string($HTTP_POST_VARS["serwers_hosting"]);
  6. $post_serwers_id = mysql_real_escape_string($HTTP_POST_VARS["serwers_id"]);
  7.  
  8. $sql = "UPDATE " . SERWERS_TABLE . " SET serwers_ip = '".$post_serwers_ip."', serwers_name = '".$post_serwers_name."', serwers_hosting = '".$post_serwers_hosting."' WHERE serwers_id = '".$post_serwers_id."'";
  9. if( !$result = $db->sql_query($sql) )
  10. {
  11. message_die(GENERAL_ERROR, "Couldn't update serwers table", "", __LINE__, __FILE__, $sql);
  12. }
  13.  
  14. $message = $lang['Serwers_Edited'] . "<br /><br /><a href=\"".append_sid("admin_serwers.$phpEx?mode=view")."\">". sprintf($lang['Click_Here_Go_Back'] . "</a>");
  15. message_die(GENERAL_MESSAGE, $message);
  16. }


Wszystkie zmienne nie są puste. Zawierają dane które powinny zawierać tylko nie zmienia mi danych w bazie. No, dobra to ten sam błąd chyba, bo w zapytaniu nie ma tylko ID... a link tym razem nie wiem jaki jest... hmm...
To jest jako link chyba:
Cytat
"U_SERWERS_ACTION" => append_sid("admin_serwers.$phpEx"))

Dane w polach tekstowych mi wyświetla poprawnie, tam bierze ID wpisu a już przy wysyłaniu danych nie.
nospor
formularz powinien miec pole serwers_id i tam ID. Masz coś takiego? patrzyles w źródle strony czy formularz zawiera poprawnie wypelnione to pole?
zagi195
Tak, mam takie pole:
Cytat
<input type="hidden" name="serwers_id" value="{SERWERS_ID}" />

po zmianie typu na text pole jest puste.
nospor
No czyli ta wartosc ID nie jest tam wpisana. Musisz sprawdzić czemu.
zagi195
No szukam... tutaj pliki. jeśli chciało by ci się przejrzeć
http://3paste.com/hash/d8457c298d694c3a83a0f31521901fb8
http://3paste.com/hash/0722cd197eaffb374b54e382848d9160
nospor
a mowilem bys wlaczyl wyswietlanie wszystkich bledow NAWET NOTICE!!

nie:
"SERWERS_ID" => $row["serwers_id"],
a:
"SERWERS_ID" => $get_serwers_id,
zagi195
ok, działa. Ale nie wiem czemu bo działa też mi na innej podstronie bez $get..
nospor
pewnie w innej miales wypelnione $row tym co trzeba. Na tej stronie co podales kod nie miales tego wypelnionego tym co trzeba - to chyba logiczne. tongue.gif

Rownież logiczne jest, ze jak cię bardziej doswiadczeni proszą byś wlaczył wyswietlanie WSZYSTKICH bledow to chyba cos w tym jest, nie sądzisz?
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.