PHP kód - mi lehet a probléma?
Sziasztok! Egy formból szeretnék sql táblába adatot felvinni. Szintaktikailag megy, lefut (egy if-en belül van a parancs, de az if megy, mert a többi utasítás lefut) viszont a form adatait nem akarja átadni. Természetesen változónak átadtam már a form fieldjeit, pl így:
$nev = $_POST['nev'];
és ő nem akar lefutni:
$adatfel = ("INSERT INTO `tablanev`.`reg` (`id`, `nev`, `nem`) VALUES (NULL, '$nev', '$nem')");
mysql_query($adatfel);
Van valami tippeket, mi lehet a gond? Az sql táblába minden textnek van megadva az ID-n kívül, az autoinces.
Köszönöm a választ!
$adatfel = ("INSERT INTO `tablanev`.`reg` (`id`, `nev`, `nem`) VALUES ('', '$nev', '$nem')");
?
esetleg az lehet még, hogy a link kimaradt, tehát
mysql_query(<lekérdezés>, $link);
a $link a változó amibe megnyitottad az adatbázist
mysql_connect() van?
mysql_select_db() van?
`tablanev`.`reg`
Ez biztos jó?
Szinktaktikailag így van asszem: <adatbázis>.<tábla>
Tehát a kérdésem: mi a tábla, illetve az adatbázis neve?
Gugli:
A nullos dolgot javítottam, igazad volt, viszont még mindig nem fut :(
A kapcsolódás megvan, igazából az egész egy if-en belül van, és az if-en belül az első lépés egy update egy másik db-be van:
$aktivalas = ("UPDATE `tablanev`.`regkey` SET `aktivalva` = '1' WHERE `tablanev`.`regkey` = '$regkod'");
mysql_query($aktivalas);
Ez lefut, a regkód egy formból van, az aktiválva oszlopot módosítja. A következő két sor pedig amit a kérdésben írtam, azt sajnos nem teszi meg még mindig :(
"UPDATE `tablanev`.`regkey` SET `aktivalva` = '1' WHERE `tablanev`.`regkey` = '$regkod'"
Ez így nagyon nem jó.
Így kell kinézni:
UPDATE <táblanév> SET <módosítások> WHERE <feltétel>
vagy így:
UPDATE <adatbázisnév>.<táblanév> SET <mdosítások> WHERE <feltétel>
(A te példádban...)
1. Írasd ki magadnak a lekérdezéseket, amiket futtatsz
2. a kapott kódot futtasd egy sql kliensben (akár phpmyadmin-ban is)
A,) Ha sql szintaktikai hibád van, akkor azt ott részletezni fogja, hogy mi baja, ki tudod próbálgatni, hogy hogy lenne jó, és az alapján javítani a php kódot
B,) Ha egyből lefut akkor jó eséllyel rossz típusú idézőjelet/aposztrófot használt a programkódban :)
8. vagyok, szóval még:
kiíratást értsd:
$adatfel = ("INSERT INTO `tablanev`.`reg` (`id`, `nev`, `nem`) VALUES (NULL, '$nev', '$nem')");
mysql_query($adatfel);
echo $adatfel;
Esetleg még így írhatod át a query részt, hogy közvetlenebbül lásd a hibát:
$result = mysql_query($adatfel);
if (!$result) {
die(mysql_error());
}
Megoldódott a probléma, annyi volt, hogy az insert into(érték,érték) kellett ('érték','érték') helyett, köszönöm, mindenkinek ment a plusz! :)
Most viszont új gondom van, amivel eddig nem volt semmi:
Adott ugye az adatbázis, amibe felviszem a neveket. Az adatbázis eddig latin2_hungarian_ci-n ment, de most, ha ékezetes betűt vinnék fel, akkor ?? lesz helyette, utf8-on pedig csak krix-krax. De ezt már másik kérdésbe, inkább. Köszönöm mindenkinek!
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!