2017-01-17 2 views
2

テーブルがあり、私のデータベースに曲を追加したいのですが。すべての曲には独自の曲IDがあるので、曲を追加しようとすると曲IDも更新する必要があります。現時点ではうまくいかなかった。mysqlのphp add 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

クエリ – denny

+0

のidに変更し、このID = 0 =「」 'work'なかった何を? SQL、フォーム送信、mysql接続。 Plzスクリプトを行ごとにデバッグし、最初にエラーを見つけます。 – JustOnUnderMillions

+0

*曲を追加しようとすると、songID *を更新する必要があります。もしあなたが 'INSERT'をしているのなら、それは* songID *を更新する必要がありますか?また、* id *カラムを自動インクリメントし、すべてのidに '0'を挿入しないようにしてください。意味がありません。 –

答えて

0

問題は、あなたがあなたの曲のすべてのためのID列の値と同じ文字列idを使用している、次の理由<input>要素の

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

です。

今すぐあなたのテーブル構造を見て、ID列は、整数型の列に文字列値を挿入していることを意味しており、タイプINTです。これがビジネスロジックが失敗する理由です。

解決策は、上記入力要素hiddenを作成しないでください。特定の曲名に対応する曲IDを明示的に入力します。したがって、このような上記<input>要素変更:

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

今それは私に別のテキストフィールドを与えます:画像:https://gyazo.com/42ba 6ff3a1f7e0f37087dcb886a6a66a –

+0

@johnsmithはい、それは意図した(与えられた)解決策です。どこから他の曲から特定の曲の曲IDを取得できますか?ただし、これらの2つの入力フィールドに対応するようにテーブルをフォーマットする必要があります。現在、デザインは少しずれています。 –