2016-02-21 1 views
0

J'ai deux pages: displayhotels.php et addrooms.php. Lorsque je clique sur le lien ajouter des chambres qui est sur la page displayhotels.php, il récupère le nom de l'hôtel et l'affiche sur la page addrooms.php. Maintenant, je dois insérer le nom de l'hôtel et d'autres variables dans une table. Pour certaines raisons, le chemin de l'image et les données ne sont pas stockés dans la base de données. Cependant, l'image est mise à jour dans le dossier. Aidez-moi, s'il vous plaît. MerciInsérer le chemin de l'image et les données dans la base de données MySQL

if (!isset($_FILES['image']['tmp_name'])) { 
echo ""; 
}else{ 
$file=$_FILES['image']['tmp_name']; 
$image= addslashes(file_get_contents($_FILES['image'] 

['tmp_name'])); 
$image_name= addslashes($_FILES['image']['name']); 

     move_uploaded_file($_FILES["image"] 

["tmp_name"],"rooms/" . $_FILES["image"]["name"]); 
if(isset($_POST['submit'])) 
{ 
$image="rooms/" . $_FILES["image"]["name"]; 
$rnum = $_POST['rnum']; 
$rtype = $_POST['rtype']; 
$people = $_POST['people']; 
$cond = $_POST['cond']; 
$price = $_POST['price']; 
$rooms = $_POST['rooms']; 

$sql = "INSERT INTO `room`(`hotel_name`, `roomNum`,`roomType`, 

`noOfPeople`, `conditions`, `price`, `rooms`, `image`) VALUES 

('$name','$rnum', '$rtype', '$people', '$cond', '$price', '$rooms', 

'$image')"; 
+0

Vous devez exécuter votre requête. –

+0

qu'est ce que $ image = $ _POST ['image']; ? – C2486

+0

print_r ($ _ POST); chk r vous obtenez des valeurs – devpro

Répondre

0

Vous première mise à la variable $image correcte:

$image="rooms/" . $_FILES["image"]["name"]; 

Mais vous écrasez avec un mauvais:

$image = $_POST['image']; 

donc vous devez supprimer cette ligne et vous Je vais bien, je suppose.

+0

Ok, j'ai supprimé cette ligne mais elle n'insère toujours rien. Pensez-vous qu'il y a un problème avec la requête d'insertion? –

0

Quelques conseils de débogage:

tout d'abord ajouter error_reporting() dans votre code.

Que chèque vous obtenez des valeurs de formulaire HTML en utilisant:

print_r($_POST); 

Vérifiez également que vous utilisez le nom propre attributs dans le champ d'entrée?

erreur dans votre code:

Dans votre requête, vous n'avez pas défini la variable:

$name 

Vous avez manqué hotel_name dans votre requête.

0

Essayez de déboguer avec un enregistreur et en utilisant tail -f [log file name] depuis le terminal si vous utilisez LAMP pour parcourir le code. Etes-vous sûr que $_POST['submit'] est défini? Comment vous connectez-vous à la DB? Ceci n'est pas montré dans le code. Peut-être que le fichier E/S fonctionne bien (l'image est mise à jour dans le dossier) mais vous ne vous connectez pas à la base de données et le problème n'est pas l'instruction sql elle-même mais la connexion réelle.

De même, examinez l'utilisation d'instructions préparées pour renforcer la sécurité de votre code et n'accédez pas directement aux variables $ _POST. Voir http://php.net/manual/it/mysqli.quickstart.prepared-statements.php et http://php.net/manual/en/function.filter-input.php pour plus d'informations.

+0

Cela fonctionne bien maintenant! J'ai effectivement supprimé $ _POST ['submit']. Et oui, il y a une connexion à la DB; J'ai utilisé l'instruction include. Merci à tous :) Cependant, je voulais savoir comment la suppression de $ _POST ['submit'] affecte la requête? –

+0

$ _POST ['submit'] devrait correspondre à un champ dans le formulaire que vous avez utilisé pour soumettre les données de publication, probablement quelque chose comme , dans les cas où le formulaire html et le script utilisé pour le traiter sont contenus dans la même page. Lorsque la page est chargée (personne n'a cliqué sur submit), la variable submit n'est pas définie, mais après la soumission du formulaire. En fonction de cette condition, vous pouvez exécuter un code différent pour les deux cas. Vous avez peut-être oublié d'inclure ce champ dans votre formulaire ou l'avez appelé quelque chose de différent, ce qui entraîne un code mort. –

+0

Merci d'expliquer! Cela va être d'une grande aide. –