Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z UPDATE
Forum PHP.pl > Forum > PHP
Unsu
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 ....
xbitdesigns
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.
nevt
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. ?>
JoShiMa
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.
nevt
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 ...
JoShiMa
Nie zrozumiałeś mnie. Chodziło mi o ujęcie w apostrofy nazwy tabeli i nazwy pola a nie wartości.
mike
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 ...
JoShiMa
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
mike
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 :-)
nevt
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 ...
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.