2012-04-01 15 views
0

こんにちは私はチェックボックスのリストがあり、私のデータベース(sjaak_db)の製品テーブルにそのリストの値を保存します。しかし、私はちょうどPHPでそれを行う方法を今はいけない。チェックボックスの値をPHPでデータベースに保存

<ul id="selectable"> 

       <input type="checkbox" id="checkbox-G1" value="Knoflook" name="knoflook"><label for="checkbox-G1">Knoflook</label> 
       <input type="checkbox" id="checkbox-G2" value="Tabasco" name="tabasco"><label for="checkbox-G2">Tabasco</label> 
       <input type="checkbox" id="checkbox-G3" value="Oregano" name="oregano"><label for="checkbox-G3">Oregano</label> 

    </ul> 

    <input type='submit' name='submit' value='Save' /><label>Save</label> 

は、そう私は何をしようとしています、私は保存ボタン

答えて

1

これは、あなたが実現するかもしれないより大きなトピックであるキーを押すとすぐにデータベース内のリストの値を保存しています。データベース用にMySQLを使用していると仮定します。ここで

はあなたが始めるためにいくつかのチュートリアルがあります:

http://www.freewebmasterhelp.com/tutorials/phpmysql

http://www.tizag.com/mysqlTutorial/

注意:

SQLを書く場合は、SQLインジェクションを避けるように注意する必要があります。上のチュートリアルでは、それを十分に明確にすることはできません。

http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

+1

参照のためにw3schoolsを使用しないでください。彼らは吸う。特に、このトピックでは、あなたのアプリケーション(SQLインジェクションの脆弱性)を作る方法を教えているからです(http://www.w3schools.com/php/php_mysql_insert.asp)。 – PeeHaa

+1

そのfreewebmasterhelpチュートリアルでは、SQLインジェクションの脆弱性も教えています。 Tigzigは実際には気にしていますが、「高度な」セクションでそれを隠しています(これは高度ではなく、基本的です)。そして、PDOバインド変数の代わりに手動エスケープを使います。 – Quentin

+1

PDOの初心者向けのチュートリアルはありますか?他の人たちが悪い習慣を教えているのは残念です。 – alberge

0

あなたは、PHPの$_POST[]メソッドを使用することができます:PHPでは、PDOのプリペアドステートメントを使用することができます。たとえば、saveDb.phpのようなコードを保存します。次に、HTMLフォームのアクションメソッドをこのPHPページに設定します。

if (isset($_POST['Save'])) { // 
     if (isset($_POST['checkbox-G1'])) { 

     // define var like "$CheckBox1Value" for all checkboxes 
     $CheckBox1Value = $_POST['checkbox-G1']; // you can duplicate this row for other checkboxes 

     } 
} 

その後、その値をデータベーステーブルに挿入できます。

0

あなたはPHPを使用する必要があります。まず、オプションを格納するテーブルの名前(データベース内)も必要です。 Xオプションしかないとしましょう。私は他の方法に従うオプションの可変数がある場合。私はあなたのテーブルが 'tablename'と呼ばれると仮定し、異なる列は 'knoflook'、 'tabasco'、 'oregano'です。あなたは様々なMySQLの列に各オプションを保存したいので、私はこれを行うだろう:

<?php 
$con_mysql = mysql_connect(servername,username,password); //Connect to mysql 
if (!$con_mysql) //if it cannot connect... 
    { 
    die('Could not connect: ' . mysql_error()); //...displays error 
    } 

$con_db = mysql_select_db(sjaak_db, $con_mysql); //Connect to database 
if (!$con_db)  //if it cannot connect... 
    { 
    die('Could not connect: ' . mysql_error()); //...displays error 
    } 

// Escape and save each value 
$Knoflook=mysql_real_escape_string($_POST['knoflook']); 
$Tabasco=mysql_real_escape_string($_POST['tabasco']); 
$Oregano=mysql_real_escape_string($_POST['oregano']); 

// Save them into the database 
mysql_query("INSERT INTO tablename (knoflook, tabasco, oregano) VALUES('$Knoflook', '$Tabasco', '$Oregano') ") or die(mysql_error()); 

// Close the conexion 
mysql_close($con_db); 
?> 

、あなたは答えは(ISSET設定されているかどうかチェックするように、彼らに物事の多くをしたいかもしれません($ _POST ['knoflook']))ansそうです。また、多くのオプションがある場合は、それを言えばそれを適応しようとします。

関連する問題