2012-01-13 5 views
0

avoir un peu de mal à ajouter des données à une base de données. J'ai le fichier new_entry.php qui est un formulaire, qui publie les données ajoutées à insert_new.php.php mysql; écrire des données dans la base de données

Chaque fois que les champs sont remplis et soumis, les données ne vont pas à la base de données avec le message d'erreur "Impossible d'ajouter les données à la table" apparaissant .. des idées?

NEW_ENTRY.PHP

<body> 
<form method="post" action="insert_new.php"><!-- form sent to insert_new.php--> 
    Section: <input type="text" name="section"/><br /> 
    Food: <input type="text" name="food"/><br /> 
    Description: <input type="text" name="description"/><br /> 
    Price: <input type="text" name="price"/><br /> 
    <br /> 
    <input type="submit" value="submit"/> 
</form> 
</body> 

INSERT_NEW.PHP

<?php 
include 'library/connect.php';//connect to databse 
$section = $_REQUEST["section"]; // get data from the HTML form on new student form 
$food = $_REQUEST["food"]; 
$description = $_REQUEST["description"]; 
$price = $_REQUEST["price"]; 

mysql_query ("INSERT INTO food_menu (section, food, description, price) VALUES ('$section', '$food', '$description', $price)")/* insert the data to the food_menu table*/ 
    or die ("Could not add the data to table");//error message 

header('Location:index.php');//auto redirect to view page 
include 'library/closedb.php'; 
?> 
+0

Voulez-vous dire $ _REQUEST ["section"], pas $ _POST ["section"]? –

+0

Où est défini '$ _REQUEST'? –

+3

FYI, vous êtes ouvert à l'injection SQL. Vous devriez vraiment apprendre à utiliser des requêtes préparées avec PDO. – Brad

Répondre

0

Il semble que vous avez une erreur à la fin de votre requête MySQL près prix.

S'il vous plaît remplacer le code ci-dessous avec la ligne existante:

mysql_query ("INSERT INTO food_menu (section, food, description, price) VALUES ('$section', '$food', '$description', '$price')") 

Dites-moi s'il vous plaît le résultat.

+0

Cela suppose que le problème est que la colonne des prix n'est pas numérique; cela peut être, mais plus d'informations sont nécessaires pour faire cet appel. S'il est numérique et que $ price est une donnée numérique, c'est une syntaxe totalement légitime. –

0

Première: Ne faites pas cela. Vous avez vraiment besoin de rechercher l'injection de SQL ou vous serez très désolé. Deuxièmement, votre prix n'a pas de validation numérique (en supposant que ça se passe dans une colonne numérique) ... c'est aussi mauvais ... et si quelqu'un mettait un signe dollar ou quelque chose du genre?

Ensuite, veuillez publier votre définition de table et votre code de connexion (pas les valeurs de connexion).

Vous pouvez également obtenir plus de commentaires si vous faites quelque chose comme:

or die (mysql_error());//error message 
+0

il est dit "Colonne inconnue 'd' 'liste des champs'" lors de l'ajout du message d'erreur mysql –

+0

définition, je pense que la réponse sera à venir. –

Questions connexes