2012-04-01 2 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/

Внимание:

When написав SQL, вы должны быть осторожны, чтобы избежать инъекции SQL. Вышеупомянутые руководства могут не сделать это достаточно ясным. В PHP, вы можете использовать подготовленные заявления ПДО:

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-инъекции. Тигзиг, каким-то чудом, на самом деле потрудился упомянуть об этом ... но они скрывают его в «расширенном» разделе (он не продвинут, это фундаментальный) и по-прежнему использует ручное экранирование вместо связанных с PDO переменных. – Quentin

+1

Есть ли хорошие учебники для начинающих для PDO? Это расстраивает то, что другие учат плохим практикам. – alberge

0

Вы можете использовать $_POST[] метод PHP. Например, сохраните ниже коды, такие как «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'])) и так далее. Кроме того, если есть много вариантов, скажите это, и я попытаюсь его адаптировать.

Смежные вопросы