ďťż

Modyfikowanie rekordu bazy mysql Nie chce mi sie zmodyfiokwac!

       

Podstrony


telcocafe

Otuz napisalem taki kod
<? include_once("funkcje.php"); switch($page){ case teoria: // nie bede podawal innych mozliwosci $sql = 'UPDATE teoria SET kategoria='.$kat.', tytul='.$tytul.', opis='.$opis.', tresc='.$tresc.' WHERE id='.$id.' LIMIT 1'; mysql_query($sql); break; ?>
Powinien on teoretycznie wykonac zapytanie które ma na celu zmiane danych w danym rekordzie. Dane w zmiennych pochodza formularza! Prosze napiszcie co robic



po co ci te kropki po obu stronach zmiennej ??

wywal je !

np zamiast id='.$id.' daj id='$id'

a cale zapytanie obejmij w " (cudzywsów)
Użytkownik boryssek edytował ten post 04 wrzesień 2005, 19:39
OMG! tak sie wlasnie zapisuje zmienne pomiedzy tymi ' ' znakami!!! A stosuje te zmienne bo wtedy nie obciaza to tak bardzo serwera (bylo o tym w ekspercie)!
a kiedy zapisze tak jak sobie zyczysz
<? include_once("funkcje.php"); switch($page){ polacz(); case teoria: // nie bede podawal innych mozliwosci mysql_query("UPDATE teoria SET kategoria=$kat, tytul=$tytul, opis=$opis, tresc=$tresc WHERE id=$id LIMIT 1"); break; ?>;
to tez nic nie da! Próbowałem!

Zakładam, żę używasz do tego skryptu formularza.

Popatrz w php.ini czy masz włączone register globals, jeśli nie to zmaiast zmiennych $zmienna, użyj $_POST['nazwa_zmiennej'] (formularz pocztowy), lub $_GET['nazwa_zmiennej'] (jeśli zmienne znajdują sie w adresie lub metoda formularza jest GET)

mysql_query("UPDATE teoria SET kategoria='".$_POST['kat']."', tytul='".$_POST['tytul']."', opis='".$_POST['opis']."', tresc='".$_POST['tresc']."' WHERE id='".$_POST['id']."' LIMIT 1");
Użytkownik Norr edytował ten post 04 wrzesień 2005, 20:04



Otuz napisalem taki kod
<? include_once("funkcje.php"); switch($page){ case teoria: // nie bede podawal innych mozliwosci $sql = 'UPDATE teoria SET kategoria='.$kat.', tytul='.$tytul.', opis='.$opis.', tresc='.$tresc.' WHERE id='.$id.' LIMIT 1'; mysql_query($sql); break; ?>
Powinien on teoretycznie wykonac zapytanie które ma na celu zmiane danych w danym rekordzie. Dane w zmiennych pochodza formularza! Prosze napiszcie co robic

czy ty umiesz czytac ?

najwyrazniej nei bo ja ci kazałem objąc zapytanie w " oraz zapisac to w taki sposob: id='$id' a nie tak jak ty to zrobiłeś id=$id <- bo takie cos napewno nei zadziała :<

pozatym może być tak że nie utworzyles krotkich nazw zmiennych czyli jesli pobieraz te informacje z formularza to jesli chcesz uzywac krótkich nazw zminych to musisz najpierw zrobic np takie cos:

$id = $_POST['id'];

chyba ze masz wlaczone rg (w co wątpie)

Jeśli dane pochodzą z formularza którego akcja jest ustawiona na metode POST to skrypt powinien wygladać tak:

<? include_once("funkcje.php"); $kat = $_POST['kat']; //pomiedzy '' wartosc name z formularza $tytul = $_POST['tytul']; //jak wyzej $opis = $_POST['opis']; //^ $tresc = $_POST['tresc']; //^ $id = $_POST['id']; //^ switch($page){ case teoria: // nie bede podawal innych mozliwosci $sql = "UPDATE teoria SET kategoria='$kat', tytul='$tytul', opis='$opis', tresc='$tresc' WHERE id='$id' LIMIT 1"; mysql_query($sql); break; ?>

pozatym sprawdz czy aby napewno masz połączenei z baza danych

istnieje ruwniez mozliwosc ze uzytkownik przez ktorego laczysz sie z baza nie ma wystarczajacych uprawnien.
Użytkownik boryssek edytował ten post 04 wrzesień 2005, 20:39
A dotego jeżeli dodajesz wartości do pola tekstowego to musi ono być obleczone w cudzysłowie np.

... id=\''.$_POST['id'].'\' ...

Jasne... aha dopisz na końcu "echo mysql_error();" będziesz wiedział co jest nie tak

Kurcze, chłopaki może własny kurs napiszemy :D , a co do połączenia z bazą danych:

mysql_query("zapytanie") or die (mysql_error());

Wtedy, jeżeli zapytanie nie będzie zrealizowane z jakiś powodów to mysql_error() wyświetli Ci co jest nie tak.

$kat = $_POST['kat']; //pomiedzy '' wartosc name z formularza $tytul = $_POST['tytul']; //jak wyzej $opis = $_POST['opis']; //^ $tresc = $_POST['tresc']; //^ $id = $_POST['id']; //^

boryssek po co coś takiego, obciąża tylko serwer, od razu kożysta się z $_POST['name z formularza'];
Użytkownik Norr edytował ten post 05 wrzesień 2005, 05:03
Już doszedlem do rozwiązania po przeczytaniu artykulu z pewnej strony! Oto one:
mysql_query('UPDATE teoria SET kategoria="'.$kat.'", tytul="'.$tytul.'", opis="'.$opis.'", tresc="'.$tresc.'" WHERE id="'.$id.'" LIMIT 1');
:)! Dzięki za chęci!
a rada by zapisac zmienne $tytul = $_POST['tytul'];
nie sprawdza sie poniewaz dane w zmiennych juz sa. Sprawdzilem to gdyz potem ich zawartosc jest wyswietlana echo '<h1>Zmieniłe¶ pracę do "teorii"</h1><br>Kategoria:<br>'.$kat.'<br>< h3>"'.$tytul.'"</h3><br>Opis:<br>'.$opis. '<br>O następuj±cej tre¶ci:<br>'.$tresc.'<br>Autor:<br>'.$autor;
Najbliższy rozwiązania był Norr za co mu tez dziękuje :)!
Użytkownik polasek edytował ten post 05 wrzesień 2005, 12:02
Dam Ci jeszcze jedną radę, włączone register_globals w php.ini jest przestarzałe, dzisiaj używa się zmiennych globalnych typu $_POST, $_GET, $_FILE.. itd. Doradzam Ci wyłączyć register_globals i operować właśnie na tych zmiennych. Ja też tak kiedyś robiłęm jak Ty i też trochę trwało, zanim się przestawiłem, ale wierz mi, warto. Cieszę się, że mogłem Ci pomóc i ćwicz dalej. Trening czyni mistzra.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.