2017-01-04 9 views
1

1つの行に2つの変数を保存するときにデータベースに挿入する際に問題があります。1変数の2つのパラメータを持つPDOクエリ

ここで私は名前を入れて、私が選択したアイテムを保存し、その色でデータベースに保存するために指定された色で保存するために他のものをすべて選択します。

<form action="" method="post"> 
<fieldset> 
    <legend> Add user </legend> 
    <p><label class="field" for="user">User :</label> <input type="text" name="user" id="user"></label></p> 
    <p><label class="field" for="roll">Points :</label> 
    <select name="roll_chance" id="roll"> 
     <option value=""></option> 
     <option value="*">*</option> 
     <option value="**">**</option> 
     <option value="***">***</option> 
    </select> 
    </p> 
    <p><label class="field" for="class">Class :</label> 
    <select name="class" id="class"> 
     <option value=""></option> 
     <option value="Assasin">Assasin</option> 
     <option value="Bard">Bard</option> 
     <option value="Mage">Mage</option> 
     <option value="Marksman">Marksman</option> 
     <option value="Protector">Protector</option> 
     <option value="Priest">Priest</option> 
     <option value="Reaper">Reaper</option> 
     <option value="Tormentor">Tormentor</option> 
     <option value="Vampire">Vampire</option> 
     <option value="Warrior">Warrior</option> 
    </select> 
    </p> 
    <p><label class="field" for="color">Color :</label> 
    <select name="color" id="color"> 
     <option value=""></option> 
     <option value="yellow">Yellow</option> 
     <option value="red">Red</option> 
     <option value="blue">Blue</option> 
    </select> 
    </p> 
    <p><input type="submit" name="submit" value="Save"></p> 
</fieldset> 
</form> 


if (isset($_POST['submit'])) 
{ 
    if (isset($_POST['user']) && isset($_POST['roll_chance']) && isset($_POST['class']) && isset($_POST['color'])) { 
     $user = htmlentities($_POST['user']); 
     $roll = htmlentities($_POST['roll_chance']); 
     $class = htmlentities($_POST['class']); 
     $color = htmlentities($_POST['color']); 

     $user = strip_tags($user); 
     $roll = strip_tags($roll); 
     $class = strip_tags($class); 
     $color = strip_tags($color); 

     $stmt = $dbh->prepare ("INSERT INTO users (user, roll_chance, class) VALUES (:user, :roll, :class)"); 
     $stmt->bindParam(':user', '<span style"color:'.$color.';">'.$user.'</span>'); 
     $stmt->bindParam(':roll', $roll); 
     $stmt->bindParam(':class', '<span style"color:'.$color.';">'.$class.'</span>'); 
     $stmt->execute(); 
    } 
} 
+0

別の行「色」を作成するのはどうですか? :Dあなたがしようとしているのは意味をなさないからです。決して2つの属性を1つの行に保存することは決してありません。単に別の行を作成し、色を付けて名前をつけて、今すぐ挿入しようとしているような出力を選択してください) – Twinfriends

+0

問題点を説明してください – RiggsFolly

答えて

0

私は、データとレイアウトを分割し、あなたのテーブルにcolorという名前の列を作成することをお勧めします。

$stmt = $dbh->prepare ("INSERT INTO users (user, roll_chance, class, color) VALUES (:user, :roll, :class, :color)"); 
$stmt->bindParam(':user', $user); 
$stmt->bindParam(':roll', $roll); 
$stmt->bindParam(':class', $class); 
// insert color 
$stmt->bindParam(':color', $color); 
$stmt->execute(); 

このようにクエリの出力は、後でcolorに変更してください。 これにより、後でレイアウトをspanからdivまたは他のマークアップに変更する必要がある場合は、あなたの人生が楽になります。

+0

ああ、私はこのことについて完全に忘れました。 。 – Mario

関連する問題