Autor Zpráva
dawe27
Profil
zdravím, mám problém s chybou a marně se snažím dopátrat kde může být problém, proto se obracím tady a prosím o pomoc. Error: 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 '' at line 1
if ($_GET["addref"] == 2) {
    $data=mysql_query ("select  * from por_reference WHERE `id`=".intval($_GET['upravit'])."");
    echo "<h2>Upravit referenci:</h2>";
    while ($data1= MySQL_Fetch_Array($data)) {
        $form1->setDefaults(array('web' =>$data1['web'] , 'projekt' =>$data1['projekt'] , 'id' =>$data1['id'] , 'realizace' =>$data1['realizace'] , 
                                  'projekt' =>$data1['projekt'] , 'grafika' =>$data1['grafika'] , 'logo' =>$data1['logo'], 'cms' =>$data1['cms'], 
                                  'code' =>$data1['code'] , 'info' =>$data1['info']));  
        echo $form1; 
    }
} 


if ($_GET["addref"] == 3) {
    $id        = $_POST['id'];
    $web       = $_POST['web'];
    $projekt   = $_POST['projekt'];
    $realizace = $_POST['realizace'];
    $grafika   = $_POST['grafika'];
    if ($grafika == true) {$grafikaval = 1;}else {$grafikaval = 0;}        
    $logo      = $_POST['logo'];
    if ($logo == true) {$logoval = 1;}else {$logoval = 0;}        
    $cms       = $_POST['cms'];
    if ($cms == true) {$cmsval = 1;}else {$cmsval = 0;}        
    $code      = $_POST['code'];
    if ($code == true) {$codeval = 1;}else {$codeval = 0;}        
    $info      = $_POST['info'];

    $sql = "UPDATE por_reference SET web = '$web', projekt = '$projekt', realizace = '$realizace', grafika = '$grafikaval', logo = '$logoval', code = '$codeval', cms = '$cmsval',info  = '$info'    WHERE id = $id";
    if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } 
    $msg->add('s', 'Reference byla upravená.');
    header('Location: reference.php');
} 
Děkuji za odpovědi.
abc
Profil
Máš chybu v SQL dotazu, na ř. 2 uprav a podívej se, co vypíše to echo:
$sql = "SELECT  * FROM por_reference WHERE `id`=" . intval($_GET['upravit']);
echo $sql;
$data = mysql_query($sql);
Tori
Profil
Proč na ř.28 nepoužijete taky přetypování $_POST['id'] na číslo, jako v prvním SQL dotazu? Rovněž chybí escapování vkládaných řetězců.
juriad
Profil
Tak si ten dotaz vypiš pomocí echo před tím než ho provedeš.
Vidíš v nějakou chybu? Jestli, ukaž nám jej.

Všechny řetězce, které ukládáš do databáze musíš escapovat pomocí mysql_real_escape_string. Neobsahuje náhodou některá z proměnných $web, $projekt, $realizace apostrof?
dawe27
Profil
první dotaz je v pořádku, chyba je v tom druhém dotazu a naskočí po odeslání formuláře, názvy všech proměnnych jsou také v pořádku

///
vyřešeno, chybělo mi ve formuláři poličko id, děkuji všem za pomoc.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: