2011-02-27 3 views
0

J'ai une forme comme ceci:tableau MySQL à Multidimensional

Question: <input type="text" name="question[][text]" id="question" /> 
    Type: 
    <select name="question[][type]" id="type"> 
    <option value="1to5scale">1 to 5 scale</option> 
    <option value="freetext">Open text</option> 
    </select> 

Cela se répète selon le nombre d'éléments que l'utilisateur souhaite (cloné par jquery). Et mon php à l'action le formulaire contient:

foreach ($_POST['question'] as $key=>$question) 
{ 
    if ($key >= 1) { 
    $question_text = $question['text']; 
    $type = $question['type']; 
    $query = " INSERT INTO questions (question_text, survey_id, type) ". 
    " VALUES ('$question_text','$survey_id', '$type')"; 
    mysql_query($query) or die('Error ,query failed'); 
    } 
} 

Chaque question a un élément de texte et un élément de type. Cependant, dans la base de données, il s'agit d'ajouter une ligne par élément de question (si cela a du sens ...), plutôt qu'une ligne par question complète. Toutes les idées où je vais mal, il est assez difficile de déboguer les formulaires que je trouve ...

+3

Je peux voir ces trous de sécurité de l'espace! –

+0

D'accord. Rapide et sale pendant que je travaille la logique. – trh88

Répondre

1

Modifiez le nom de l'élément de formulaire de question[][type] à question[type][]. Ce que cette forme fait est ajouter au tableau de question pour chaque élément de forme ([] signifie ajouter un nouvel élément de tableau). Comme le commentaire l'indique, assurez-vous de nettoyer l'entrée.