2016-06-09 4 views
-1

Meine Abfrage immer zurück- Echo "Menü Update fehlgeschlagen" ;. Ist in der Aktualisierungsabfrage etwas falsch? oder etwas falsch in HTML-Formular? (Ich weiß, ich Mysqli aber es ist nur ein Experiment verwenden sollte, so dass ich es nicht egal. Sie Tipps zum Thema Mysqli nicht)mysql Update-Abfrage immer zurück gescheitert

$q = mysql_query("SELECT * FROM menu"); 
echo '<form action="" method="post">'.'Desired Name:<input type="text" name="desname">'.'<select name="tobeupdate">'.'<br>'; 
while ($row = mysql_fetch_array($q)) { 
    $menu_name = $row['menu_name']; 
    echo '<option value="'.$menu_name.'">'.$menu_name.'</option>'; 
} 
echo '</select><br> 
    <input type="submit" name="submit" value="Update now"> 
</form>'; 

if (isset($_POST['submit'])) { 
    $desname = $_POST['desname']; 
    $tobeupdate = $_POST['tobeupdate']; 
    if (empty($desname)) { 
     echo "Enter your desired menu name"; 
    } 
    else { 
     $q2 ="UPDATE menu SET $desname WHERE menu_name=$tobeupdate"; 
    if (mysql_query($q2)) { 
     echo "Menu update success!"; 
    } 
    else { 
     echo "Menu update failed"; 
    } 
    } 
} 
+0

$ q2 setzen = "UPDATE Menü SET $ desname WHERE menu_name = $ tobeupdate", Set desname zu? –

+1

Sie können mysql_error() verwenden, um den genauen Fehler zu finden –

+0

Sie haben die Spalte nicht angegeben, die Sie aktualisieren möchten. Ihre 'UPDATE'-Abfrage sollte wie folgt aussehen:' $ q2 = "UPDATE-Menü SET your_column = '$ desname' WHERE ...' –

Antwort

-1

Kein Angebot oder doppelte Anführungszeichen um Ihren $ tobeupdated variabel. $ tobeupdated = "'". $ Tobeupdated. "'";

auch angeben, was desname zu

+0

Etwas wurde in dieser Antwort ziemlich gemangelt. – tadman

+0

Sie zitiert nicht mit Variablen in einem 'PHP' String http://php.net/manual/en/language.types.string.php – BitAccesser

+0

die Zitate waren für eine String-Variable, die in mysql übergeben werden würde, das erfordert Zitate http://dev.mysql.com/doc/refman/5.7/en/update.html –