2017-01-17 41 views
2

我有一張表,我想將歌曲添加到我的數據庫中。每首歌都有自己的歌曲ID,所以當我嘗試添加歌曲時,還必須更新歌曲ID。在這一刻它不起作用。php在mysql中添加songID

if($action == "add-songs"){ 

    $db = mysqli_connect($host, $user, $pass,$database); 

    if($_GET['action3'] == "2"){   
     mysqli_query($db, "INSERT INTO songs (id, songName, songID) VALUES (0, '".$_GET['songname']."', '".$_GET['id']."')");      
     header("Location: /?action=show-songs"); 
    } 
    $h = ""; 
    $h.= ""; 

    $h.= "<form><input type='hidden' name='action' value='add-songs'><input type='hidden' name='action3' value='2'><input type='hidden' name='id' value='id'><table class='table table-striped'>"; 
    $h.= " <tr>"; 
    $h.= "  <td><b>Nummer</b></td>"; 
    $h.= "  <td><input type='text' name='songname' class='form-control' placeholder='Naam'></td>"; 
    $h.= " </tr>"; 
    $h.= " <tr>"; 
    $h.= "  <td colspan='2'><input class='btn btn-primary' type='submit' value='UPDATE'></td>"; 
    $h.= " </tr>"; 
    $h.= "</table></form>"; 

    echo $htop; 
    echo $h; 
    echo $hbot; 
+0

改變這個ID = 0至查詢 – denny

+0

ID =「」什麼'沒有work'? SQL,表單提交,mysql連接。 Plz逐行調試腳本並首先找到錯誤。 – JustOnUnderMillions

+0

*當我嘗試添加歌曲時,它還必須更新歌曲ID *,如果您正在執行「INSERT」,那麼它是什麼意思?它還必須更新歌曲ID *?另外,使* id *列自動增加,不要爲所有ID插入'0',這是沒有意義的。 –

回答

0

問題是因爲以下<input>元素,

<input type='hidden' name='id' value='id'> 

您使用的是相同的字符串idID所有的歌曲列值。

現在看看你的歌曲表結構,IDINT類型,這意味着你將在整數類型的列中輸入字符串值。這就是你的商業邏輯失敗的原因。

解決方案是,請不要使上述輸入元素hidden。顯式放置與特定歌曲名稱對應的歌曲ID。因此,改變上述<input>元素是這樣的:

<input type='text' name='id' placeholder='id'> 
+0

現在它給了我另一個文本框:圖片:https://gyazo.com/42ba 6ff3a1f7e0f37087dcb886a6a66a –

+0

@johnsmith是的,這是預期的(給定的)解決方案。從哪裏可以得到特定歌曲的歌曲ID?但是,您需要格式化表以容納這兩個輸入字段,現在設計略微不一致。 –