2012-04-01 3 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 주입을 피하기 위해 조심해야합니다. 위의 튜토리얼은 충분히 명확하지 않을 수도 있습니다. PHP에서는 PDO의 준비가 문을 사용할 수 있습니다

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[] 방법을 사용할 수 있습니다. 예를 들어 "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 등등. 또한, 많은 옵션이 있다면, 그것을 말하면 그것을 적용하려고합니다.

관련 문제