Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL][PHP] Błąd? Bug? Literówka?, Dziwne zachowanie php i sql
sadistic_son
post 20.08.2009, 10:54:22
Post #1





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Dziwna sprawa. Kod:
  1. lacz_z_baza();
  2. $query="DELETE FROM tabela WHERE id=$id";
  3. mysql_query($query);
Nie działa. Nie dzieje się nic, nie wywala błędu itp.

Natomiast jeśli tylko w tym samym kodzie podmienię formułke sql na:
  1. lacz_z_baza();
  2. $query="UPDATE tabela SET imie='zenek' , nazwisko='burek' WHERE id=$id";
  3. mysql_query($query);
Wszystko wykonuje się bezbłędnie.

Z kolei w innym skrypcie działają mi zapytania typu SELECT natomiast nie mogę w ogóle zUPDATEować tabeli. Kopiuję sobie do jednego skryptu zapytania z drugiego skryptu (ktory dziala bezblednie) i d*pa!! Robię gdzieś błąd? Czy to jakiś bug? Wirus? Ufoludki?

Ten post edytował sadistic_son 20.08.2009, 10:55:09


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
julek12
post 20.08.2009, 10:57:47
Post #2





Grupa: Zarejestrowani
Postów: 97
Pomógł: 5
Dołączył: 6.02.2009
Skąd: Gorzów Wlkp.

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


A daj tak:
DELETE FROM `nazwa bazy danych`.`tabele` WHERE `tabela`.`id`= $id";
Go to the top of the page
+Quote Post
sadistic_son
post 20.08.2009, 10:57:51
Post #3





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Dodam, że wszystkie potrzebne dane do zapytania bezbłędnie są odczytywane z $_POST, skrypt łączy się z bazą, wszystko śmiga jak trzeba. Wygląda to tak jakby funkcja mysql_query() po prostu nie działała. Bo jak podmienię nawę tabeli na taką która nie istnieje to też żadnego błędu nie wywala.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
cojack
post 20.08.2009, 10:59:09
Post #4





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Strzelam, użytkownik nie ma uprawnień.

@sadistic_son wziął byś temat odświeżył niczym napiszesz posta ;p

Ten post edytował cojack 20.08.2009, 11:00:48


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
sadistic_son
post 20.08.2009, 10:59:37
Post #5





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cytat(julek12 @ 20.08.2009, 11:57:47 ) *
A daj tak:
DELETE FROM `nazwa bazy danych`.`tabele` WHERE `tabela`.`id`= $id";

Nadal nic, bez zmian.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
seth-kk
post 20.08.2009, 11:01:09
Post #6





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


user nie ma uprawnien do usowania?


--------------------
Go to the top of the page
+Quote Post
sadistic_son
post 20.08.2009, 11:01:31
Post #7





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cytat(cojack @ 20.08.2009, 11:59:09 ) *
Strzelam, użytkownik nie ma uprawnień.


Ma prawa takie jak root. Wszystkie inne zapytania działają ok w innych plikach z tą samą funkcją łączącą z bazą zdefiniowaną jeden raz w pliku głównym.

Ten post edytował sadistic_son 20.08.2009, 11:02:57


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
seth-kk
post 20.08.2009, 11:06:04
Post #8





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


zakladam ze pod "wszystkie inne" kryje sie tez usowanie
wyrzoc sobie zapytanie tuz przed/po wykonaniu moze nie do konca wyglada tak jak oczekujesz


--------------------
Go to the top of the page
+Quote Post
cojack
post 20.08.2009, 11:13:38
Post #9





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Spróbuj z konsoli jak z konsoli nie poleci, to albo masz jakieś dziwne constrainy pozakładane (fkey, ondelete, onupdate, terefere itp) albo nie masz uprawnień.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
sadistic_son
post 20.08.2009, 11:27:26
Post #10





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cytat(cojack @ 20.08.2009, 12:13:38 ) *
Spróbuj z konsoli jak
Zakładam, że chodzi o konsolke SQL.
Sprawdziłem, tam działa sciana.gif

Cytat(cojack @ 20.08.2009, 12:13:38 ) *
albo nie masz uprawnień.
Działam na root.

Może mam gdzieś błąd ktorego nie widzę.
To kod formularza do edycji danych użytkowników. Wklejam czysty kod prosto ze skryptu bez pozamienianych nazw itp. Dokładnie tak to u mnie wygląda:
  1. <form class="edit users" action="index.php?page=admin_panel" method="post" name="edit_user">
  2. <form action="index.php?page=admin_panel" name="edit_user">
  3. Nazwa:<input class="field" type="text" name="edit_name" value="'.$name.'" /><br />
  4. Hasło:<input class="field" type="text" name="edit_pass" value="'.$password.'" /><br />
  5. E-mail:<input class="field" type="text" name="edit_email" value="'.$email.'" /><br />
  6. Aktywny:<input type="checkbox" name="edit_active" '.$active.' /><br />
  7. Admin:<input type="checkbox" name="edit_admin" '.$admin.' /><br />
  8. <input type="hidden" name="edit_id" value="'.$id.'" />
  9. <input type="submit" name="submit_edit_user" value="Zatwierdź" />
  10. </form>

I następnie skrypt który po kliknięciu w przycisk 'Zatwierdź' ma wykonać UPDATE bazy:
  1. if(isset($_POST['submit_edit_user'])){
  2. $edit_name=$_POST['edit_name'];
  3. $edit_pass=$_POST['edit_pass'];
  4. $edit_email=$_POST['edit_email'];
  5. $edit_active=$_POST['edit_active'];
  6. $edit_admin=$_POST['edit_admin'];
  7. $edit_id=$_POST['edit_id'];
  8.  
  9. db_connect(); //funkcja zdefiniowana w innym pliku - działa bezbłędnie
  10. $query="UPDATE t_users SET name='$edit_name' , password='$edit_pass' , email='$edit_email' , active='$edit_active' , admin='$edit_admin' WHERE id_user='$edit_id' ";
  11.  
  12. mysql_query($query);
  13.  
  14. }
I to nie działa. Może zobaczycie coś czego ja nie widzę.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
motylo
post 20.08.2009, 11:33:07
Post #11





Grupa: Zarejestrowani
Postów: 35
Pomógł: 5
Dołączył: 13.07.2008
Skąd: Kalisz

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


Podwójny FORM?


--------------------
Więcej: blog.juszczak.org
Go to the top of the page
+Quote Post
sadistic_son
post 20.08.2009, 11:35:34
Post #12





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Podwójny form... hmmm..... usunąłem, ale to nie to powodowało błąd. Tak czy siak dzięki.

Czytając to co tu na forum napisałem nalazłem błąd.
Zamiast
  1. $query="UPDATE t_users SET name='$edit_name' , password='$edit_pass' , email='$edit_email' , active='$edit_active' , admin='$edit_admin' WHERE id_user='$edit_id' ";
Powinno być
  1. $query='UPDATE t_users SET name="'.$edit_name.'" , password="'.$edit_pass.'" , email="'.$edit_email.'" , active="'.$edit_active.'" , admin="'.$edit_admin.'" WHERE id_user="'.$edit_id.'"';

Nie wiedziałem ze jeśli zapytanie obejmiemy w cudzysłowie " zamiast w apostrofy ' to nie będzie ono działać poprawnie ze zmiennymi.

Honorowo 'Pomógł' każdemu kto się zainteresował tematem:)

Ten post edytował sadistic_son 20.08.2009, 11:38:37


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
julek12
post 20.08.2009, 11:36:38
Post #13





Grupa: Zarejestrowani
Postów: 97
Pomógł: 5
Dołączył: 6.02.2009
Skąd: Gorzów Wlkp.

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


A gdzie jest ten DELETE?

jeśli chodzi o UPDATE to spróbuj tak:
$query='UPDATE t_users SET name='.$edit_name.' , password='.$edit_pass.' , email='.$edit_email.' , active='.$edit_active.' , admin='.$edit_admin.' WHERE id_user='.$edit_id;

Sorry post dałem wcześniej ale usunąłem przypadkowo ;|

Ten post edytował julek12 20.08.2009, 11:37:00
Go to the top of the page
+Quote Post
sadistic_son
post 20.08.2009, 11:39:39
Post #14





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cytat(julek12 @ 20.08.2009, 12:36:38 ) *
jeśli chodzi o UPDATE to spróbuj tak:
$query='UPDATE t_users SET name='.$edit_name.' , password='.$edit_pass.' , email='.$edit_email.' , active='.$edit_active.' , admin='.$edit_admin.' WHERE id_user='.$edit_id;
No więc właśnie te " powodowały błąd, powinno być tak jak mówisz czyli ' zamiast cudzysłowi. Dzięki.

julek12 masz drugiego 'Pomógł' za znalezienie błędu równo ze mnąwinksmiley.jpg


Ten post edytował sadistic_son 20.08.2009, 11:40:23


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
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: 14.08.2025 - 06:46