Размещение флажков в MySQL через PHP - PullRequest
0 голосов
/ 21 апреля 2011

Что мне нужно сделать, это вставить все, что проверено пользователем, в таблицу, которую мы создали в нашей базе данных. Я могу получить данные, хранящиеся в массиве, но потом не могу сохранить их в базе данных.

<form>
    <input type="checkbox" name="partType[]" value="GenericBreakPads" /> Generic Break Pads 
    <input type="checkbox" name="partType[]" value="Air_Conditioning_Compressor" /> Air Conditioning Compressor 
    <input type="checkbox" name="partType[]" value="Generic_Battery" /> Generic Battery <br />
    <input type="checkbox" name="partType[]" value="Carburetor" /> Carburetor       
    <input type="checkbox" name="partType[]" value="Engine_Balance_Shaft" /> Engine Balance Shaft             
    <input type="checkbox" name="partType[]" value="Engine_Cylinder" /> Engine Cylinder                 
    </form>

Я пытался сериализовать, но это не очень помогло из-за того, как он сохранил его в таблице.

$theParts=serialize($_POST['partType']); //takes the data from a post operation...
$query=INSERT INTO parts VALUES('$partType'); 

Если бы кто-нибудь мог мне помочь, я был бы очень признателен!

Ответы [ 2 ]

0 голосов
/ 21 апреля 2011

вы действительно должны просмотреть результаты проверки.то есть

for ($i=0;$i<count($partType);$i++) {
  //insert record into database using $partType[$i]
}

Вы можете затем вставить данные в отдельные строки.

Однако, если вы действительно должны хранить в одном поле, вы также можете просто вставить массив в строку, разделенную запятыми.затем вы можете вставить эту строку в поле вашей базы данных

implode("," $partType);

Это нарушает хороший дизайн / использование базы данных, так как она больше не нормализуется, поскольку вы храните более 1 элемента в одном поле базы данных

implode ();

Надеюсь, что поможет

0 голосов
/ 21 апреля 2011
$query = 'INSERT INTO parts VALUES("'. mysql_real_escape_string($partType) .'");'; 
...