Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql]Błąd przy wykonywaniu UPDATE-u
Forum PHP.pl > Forum > Przedszkole
nightmoon
Witam jestem nowym użytkownikiem wiec jeśli coś robie nie tak proszę mnię o tym poinformować w miarę łagodny sposób a nie zareaz się na mnie rzucając ;0 Teraz mój problem.

Zrobiłem coś takiego:

CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL auto_increment,
`opjca1` varchar(50) default NULL,
`opcja2` varchar(50) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;

INSERT INTO `test` VALUES (1, 'zuzia', 'janek');

I do tego takie zapytanie:

UPDATE test SET opcja1 = 'zuzia', opcja2 = " . $_POST['coś_tam'] . " WHERE id='1'

I jak w pliku już coś tam wpiszę bo sobie pole typu text stworzyłem (formularz) to za rzadnego grzyba nie chcę zaktualizować pola opcja2 tylko wywala taki komunikat

SQL Error
Unknown column 'to_co_sobie_wpisałem_do_texta' in 'field list'

To wszystko :| co robię nie tak próbowałem się wesprzeć tematem ze http://dev.mysql.com/doc/refman/5.0/en/update.html ale czytając go mam wrażenie, że wszystko jest O.K. wie ktoś może gdzie popełniłem błąd?
Cezar708
nie wiem dokładnie, ale mogę strzelić, że w zmiennej $_POST['coś_tam'] masz nie wyeskejpowany apostrof, użyj mysql_escape_string() może pomoże

co do forum to przeczytaj sobie przypięty topic na temat zasad postępowania na tym forum. Wtedy popraw treść postu i dodaj taga do tematu smile.gif
nightmoon
Cytat
Na forum proszę umieszczać topici dotyczące ogólnie baz danych. Problemy dotyczące juz konkretnych baz, należy umieszczać na odpowiednich podforach.

Nazwy tytułów tematów, których problem wynika z błędnego zapytania:
Jesli nie wiemy jaki nadać tytuł, nie kombinujmy w stylu: "Błąd zapytania". Taka informacja nic nie niesie. Zazwyczaj jesli mamy błąd zapytania, to i wiemy jaki to błąd. Uzyjmy go więc jako tytuł naszego topicu. łatwiej później taki topic znaleźć w wyszukiwarce.


Taka treść jest w zasadach postępowania i nie wiem o co chodzi z tym tagiem wstydnis.gif

P.S. dobre jest to, że jeśli dam takie zapytanie będąc w MySQL to działa

UPDATE test SET opcja1 = 'zuzia', opcja2 = 'lol' WHERE id='1'

to w opcji2 się zmieni na lol nie wywalając żadnego błędu.
nospor
uzywaj bbcode

  1. <?php
  2. $sql = "UPDATE test SET opcja1 = 'zuzia', opcja2 = '$_POST[coś_tam]' WHERE id=1";
  3. ?>

ps: przenosze i dodam tag
nightmoon
Nospor nie wiem czy to co napisałeś miało być rozwiazaniem ale nie działa sciana.gif teraz w pliku mam taki błąd

Parse error: syntax error, unexpected T_VARIABLE in /public_html/test.php on line 11

a linia 11 to właśnie to:

Kod
<?php
$sql = "UPDATE test SET opcja1 = 'zuzia', opcja2 = '$_POST[coś_tam]' WHERE id=1";
?>
nospor
Kod co ci podalem jest prawidlowy. ALbo masz blad linie wyzej, albo cos źle wkleiles.

Pokaz dokladnie co masz w pliku i pokaz tez pare lini wyzej
nightmoon
Tak wygląda zapytanie:

Kod
CREATE TABLE `ustawienia` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `nazwa` varchar(50) default NULL,
  `wybor` varchar(50) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;

INSERT INTO `ustawienia` VALUES (1, 'free', 'off');


Natomiast plik do zmian tak:

Kod
<?php
require "include/bittorrent.php";

dbconn();
maxsysop ();
loggedinorreturn();
noaccess("test.php", UC_VIP);
stdhead("Test");

if ($_POST['ed'] == 1) {
mysql_query("UPDATE ustawienia SET nazwa = 'free', wybor = ".$_POST['test']." WHERE id='1'") or sqlerr(__FILE__,__LINE__);
}


?>
<table align="center" cellpadding="5" cellspacing="5" border="1">
<form action="test.php" method="post">
<input type="hidden" name="ed" value="1">
    <tr><td align="center" colspan="2" class="colhead">Sprawy administracyjne</td></tr>
    <tr><td align="right">FreeLeech</td><td align="left"><select name="test">
                                 <option value="on">Włączony</option><br />
                                                     <option value="off">Wyłączony</option><br />
                                                     </select></td></tr>
    <tr><td colspan="2" align="right"><input type=submit value="OK!" class="btn"></td></tr>
</form>
</table>
<?

stdfoot();
?>


Pozwole się jeszcze spytać w jaki sposób dać Kod PHP zamiast zwykłego kodu bo jak klikam na button PHP podczas zakładania czy pisania postu nic się nie dzieję
nospor
No i gdzie tu jest moj kod?

wstaw dokladnie to zamiast swojego:
  1. <?php
  2. if ($_POST['ed'] == 1) {
  3. mysql_query("UPDATE ustawienia SET nazwa = 'free', wybor = '$_POST[test]' WHERE id=1");
  4. }
  5. ?>


Cytat
ozwole się jeszcze spytać w jaki sposób dać Kod PHP

zamiast [code] masz uzyc [php]
nightmoon
Faktycznie działa wcześniej dając Twój kod musiałem coś zamieszać snitch.gif Dziękuje za pomoc
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.