Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z UPDATE
Unsu
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.03.2008

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


Witam siedze i siedze i nie wiem w czym jest blad.

<?
require_once ("funkcje.php");
//rozpoczęcie sesji
session_start();
session_cache_limiter('nocache');


echo "Post login: <b>" .$_POST['login']."</b><br>";// DZIALA
echo "Post name: <b>" .$_POST['name']."</b><br>"; // DZIALA
$login = $_POST['login'];
echo " $ login: <b>" .$login."</b><br>"; // DZIALA
$name = $_POST['name'];
echo "$ name: <b>" .$name."</b><br>"; //DZIALA

$polaczenie= pol_mysql();
$zapytanie = "UPDATE users SET name='$name' WHERE login=$login";
$wynik=mysql_query($zapytanie);

if ($wynik)
echo "<p>Dane wprowadzone.</p>";
else
echo "<p>Blad!</p>";
?>


Mam taki kod a wiec tak przesylam z formularza dane login i haslo i widac je na stronie gdyz sa wyswietalne, ale nie dziala $zapytanie, abyc zmienic dane w bazie danych, wstawianie dziala
Jestem juz zalamany tym php ....
Go to the top of the page
+Quote Post
xbitdesigns
post
Post #2





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 24.04.2006
Skąd: Kielce

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


Zrob sobie
  1. <?php
  2. ?>


... bo na 99% skladnia zapytania jest zepsuta, albo nie masz wybranej bazy danych:

  1. <?php
  2. mysql_select_db(string database_name)
  3. ?>


Przydalo by sie, zeby pole login bylo kluczem UNI, czyli zeby bylo unikalne. Oprocz tego mozesz dla bezpieczenstwa opcjonalnie dodac LIMIT 0,1 ( albo LIMIT 1 ?) w wypadku gdybys przenosil baze i nie dodal wlasnosci kluczy ... wiesz - dmuchamy w co popadnie aby zapobieżyc takim niespodziankom.

Inaczej mozesz zrobic sobie update na polowie rekordow w bazie, bo np login bedzie zly or whatever.
Go to the top of the page
+Quote Post
nevt
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


nie
  1. <?php
  2. $zapytanie = "UPDATE users SET name='$name' WHERE login=$login";
  3. ?>
tylko
  1. <?php
  2. $zapytanie = "UPDATE `users` SET `name` = '$name' WHERE `login`='$login';";
  3. ?>


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

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
JoShiMa
post
Post #4





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


A na pewno masz w tej tabeli rekord spełniający warunek
  1. WHERE login=$login"



nevt naprawdę te apostrofy są istotne? Nigdy ich nie stosuję i nie zdarzyło mi się, żeby to miało jakikolwiek wpływ na działanie zapytania.


--------------------
Go to the top of the page
+Quote Post
nevt
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


Cytat
nevt naprawdę te apostrofy są istotne? Nigdy ich nie stosuję i nie zdarzyło mi się, żeby to miało jakikolwiek wpływ na działanie zapytania.

no to spróbuj sobie zarejestrować usera z loginem SELECT ... albo spróbuj zrobić tabelkę z polem COUNT ...

Ten post edytował nevt 2.04.2008, 11:04:20


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

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
JoShiMa
post
Post #6





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Nie zrozumiałeś mnie. Chodziło mi o ujęcie w apostrofy nazwy tabeli i nazwy pola a nie wartości.


--------------------
Go to the top of the page
+Quote Post
mike
post
Post #7





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

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


Dostałeś odpowiedź.
Cytat(JoShiMa @ 2.04.2008, 13:05:07 ) *
Nie zrozumiałeś mnie. Chodziło mi o ujęcie w apostrofy nazwy tabeli i nazwy pola a nie wartości.
Cytat(nevt @ 2.04.2008, 12:02:44 ) *
(...)... albo spróbuj zrobić tabelkę z polem COUNT ...
Go to the top of the page
+Quote Post
JoShiMa
post
Post #8





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Cytat(nevt @ 2.04.2008, 10:02:44 ) *
albo spróbuj zrobić tabelkę z polem COUNT ...


Po prostu zakładam, że pewnych nazw pól się nie stosuje z założenia. No ale jeśli to jest jedyny powód to rozumiem.

PS. Jestem ona a nie on smile.gif

Ten post edytował JoShiMa 2.04.2008, 13:52:40


--------------------
Go to the top of the page
+Quote Post
mike
post
Post #9





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

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


Cytat(JoShiMa @ 2.04.2008, 14:52:20 ) *
PS. Jestem ona a nie on smile.gif
Rodzynek (a w zasadzie rodzynka) na forum.
Niewiele jest tutaj kobiet. A tym bardziej w wieku powyżej średniej wieku użytkowników :-)
Go to the top of the page
+Quote Post
nevt
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


JoShiMa - miło poznać.

ogólnie przy prostych zapytaniach sam też nie stosuję tych `` znaczków dla oznaczenia nazw pól i tabel, ale przy bardziej skomplikowanych (lub w kodzie klasy "składającej" zapytania) stosuję obowiązkowo - bo to mniej pracy, niż późniejsze szukanie błędów... w tym konkretnym przypadku mamy pole `name`, a name to ewidentnie słówko zastrzeżone w MySQL, więc ciapki są obowiązkowe ...


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

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
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 Aktualny czas: 19.08.2025 - 07:33