Autor Zpráva
Rob Roy
Profil *
Dobry vecer,

mam takovy problem ohledne syntaxe dotazu na dtb, resp. upravy dat v dtb.

$poradi_zmena_1 = "UPDATE tabulka 

SET poradi = '$poradi_promena'
WHERE id = $id_promena";
$poradi_zmena_1 = mysql_query($poradi_zmena_1);


mam podobnych kod v jine casti stranek a ten funguje jak ma. Aspon fungoval, kdyz jsem ho pred x tydny testoval.

Pokud nekdo zavola vyse zmineny kod, tak se na obrazovce objevi:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'id = 70' at line 3

Mohl by jste mi nekdo rict, v cem je problem? Predem dekuji
peta
Profil
$tab = $tb0."user";
$dotaz = "SELECT * FROM $tab WHERE `nick` = '$Xnick' AND `psw` = '$Xpsw' LIMIT 1";
$vysl = mysql_query($dotaz) or die("<hr>User find: $dotaz<hr>".mysql_error());

S tim, ze kdyz to zkape, tak to vypise zrovna cely dotaz.

jinak bych tu pouzil uvozovky:
WHERE id = $id_promena"
WHERE id = '$id_promena'"
a jeste se mi nezda:
$poradi_zmena_1 = "UPDATE tabulka
$poradi_zmena_1 = "UPDATE $tabulka
jestli tam neschazi treba dolar?

jinak spravny zapis dotazu viz PHPMyAdmin, kde si zkusis zmenit sloupec klikanim a ono to vypise i SQL dotaz
A take by to chtelo videt strukturu tabulky, neco jako:
CREATE TABLE rs2_user (
id int(11) NOT NULL auto_increment,
nick varchar(16) default NULL,
psw varchar(32) default NULL,
ip varchar(15) default NULL,
laws int(11) default NULL,
mail varchar(255) default NULL,
skin int(11) default NULL,
lang varchar(3) default NULL,
datereg datetime NOT NULL default '0000-00-00 00:00:00',
datelast datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY(id),
KEY (nick),
KEY (psw),
KEY (ip)
) TYPE=MyISAM;
-- ) TYPE=MyISAM COLLATE cp1250_general_ci;
Kajman_
Profil *
Je v té tabulce sloupeček id? Jinak ten update vypadá korektně.
k
Profil *
poduk id existuje a je typu int() tak zkus
WHERE id = 0$id_promena
Rob Roy
Profil *
peta:
s temi uvozovkami jsem to zkousel...to nepomohlo

CREATE TABLE `podslozky` (

`id` int(11) NOT NULL auto_increment,
`nazev` varchar(30) NOT NULL default '',
`poradi` int(11) NOT NULL default '0',
`navaznost` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=71 ;



Kajman_: id tam je - extra: typ int(11), auto_increment. Kdyz jsem to zkousel vyhledat pres PHPMyAdmina (misto promenych jsem pouzil konrektni cisla), tak bylo vse slo ok...

k: zkusil jsem to, vysledna hlaska byla podobna, jako nazacatku...misto 70 se ukazalo - asi jak melo 070
Kajman_
Profil *
A máte tam místo "UPDATE tabulka" "UPDATE podslozky"?
Rob Roy
Profil *
Kajman_: ano, mam...
Kajman_
Profil *
Ještě bych zkusil vypsat $poradi_zmena_1 nez se zavolá query... jestli jsou ty proměnné nahrazené podle očekávání... a třeba ten dotaz zkusit v pma nebo něčem jiném.
peta
Profil
$tab = $tb0."question";
$dotaz = "UPDATE $tab SET $data0 WHERE `id` = '".$r["idquestion"]."' LIMIT 1";
mysql_query($dotaz) or die("<hr>Err update: $dotaz<hr>".mysql_error());

Predevsim si vypis cely dotaz pri chybe. Nebo bez chyby dej echo $dotaz.
Jinak, co znamena pod tabulkou to AUTO_INCREMENT=71 ? To je nastaveni vychozi hodnoty nebo minimalni? Protoze pises o necem jako id=70 a podle tohoto tam zadne id=70 nemusi existovat, az 71.
k
Profil *
peta
Jinak, co znamena pod tabulkou to AUTO_INCREMENT=71
to znamena ze kdyz si nechaval vypsat strukturu tabulky tak v ni mel(mozna) 71 zaznamu, zadnou vahu bych tomu nedaval.

Rob Roy
A blbne jen tento dotaz? Ostatni dotazy se provedou v poradku?
Jeste zkus mysql_query(addslashes($poradi_zmena_1));
A take jak radi kajman_ vypis si ten dotaz a spust ho z prikazovy radky nebo PhpMyAdminu
Rob Roy
Profil *
Kajman_, k, peta:
Pano, velmi Vam dekuji. Chybu jsem odstranil a ted uz vim, jak se priste vyhnout temto x dnum trvajicich problemu...

staci kontrolovat kazdy krok a po te vse pujde, jak ma...syntaxe byla v poradku, ale $poradi_promena nedodavala zadne cislo :( - coz je zvlastni, ale to uz nebudu rozebirat.

Jeste jednou Vam velmi dekuj, ukazali jste mi cestu, jak si v priste muzu pomoct sam.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0