Bonjour à tous !
Je suis débutant en php (Vous devez vous en doutez vu la section ou je poste.. ) et je suis en pleine lecture du
Guide Complet sur Php5 par Micro Application.
J'essaye donc d'appliquer les différents exercices qu'ils proposent dans ce livre , l'un d'eux consiste à la création d'une bibliothèque (de livres) .
J'ai donc crée une base de donnée (biblio) et une table (livre) , tous se passait très bien (mes livres ajoutés via formulaire sont bien ajoutés dans la BDD , et l'affichage de ceux ci s'effectuent avec succès) jusqu'a ce que je modifie mon code pour y ajouter une photo de couverture pour chaque livre.
Mon problème est que lors de l'ajout d'un nouveau livre (avec un champs input file en plus pour cette fameuse image donc) l'image de couverture s'upload bien dans son dossier de destination mais aucun enregistrement n'est effectué dans la base de donnée ! (même si je n'ajoute pas de photo !) Je pense donc que le problème viens de ces bout de codes que j'ai rajouté pour cette fameuse photo !
Après lecture et relecture de mon code , j'avoue être un peu perdu !
A savoir , je travail sur wampserver en local.
Voici le code de la page par laquelle j'ajoute mes livres :
<html>
<head>
<title>Biblio</title>
</head>
<body>
<h1> Ajout </h1>
<form action="ajoute.php" method="post"
enctype="multipart/form-data">
<fieldset>
<legend> Nouveau livre </legend>
<label> Titre </label>
<input type="text" name="titre" /><br/>
<label> auteur </label>
<input type="text" name="auteur" /><br/>
<label> annee </label>
<input type="text" name="annee" /><br/>
<label> genre </label>
<select name="genre">
<option value="Roman">Roman</option>
<option value="Poesie">Poésie</option>
</select><br/>
<label> Etat </label>
<input type="radio" name="etat" value="1" /> Neuf
<input type="radio" name="etat" value="0" /> Occasion
<br/>
<label> Couverture </label>
<input type="file" name="couverture" /> <br/>
<input type="submit" value="Ajouter" />
</fieldset>
<a href="Listing livre.php">Retour à la liste </a>
</body>
</html>
Voici ensuite le code de la page se chargeant d'ajouté tous ça à la BDD :
<?php
$liaison = mysql_connect("localhost", "root", "");
mysql_select_db("biblio");
if (isset($_FILES['couverture'])) {
$source = $_FILES['couverture'] ['tmp_name'];
$destination = 'c:\\wamp\\www\\images\\'
.$_FILES['couverture'] ['name'];
if ($_FILES['couverture']['error'] > 0) {
die("erreur lors du telechargement du fichier");
}
if (!move_uploaded_file($source, $destination)) {
die("erreur lors du deplacement du fichier");
}
$couverture = $_FILES['couverture'] ['name'];
}
else {
$couverture = '' ;
}
$sql = "insert into livre "
."(titre, auteur, annee, genre, etat) VALUES "
."('".mysql_real_escape_string($_REQUEST['titre']) ."',"
."'".mysql_real_escape_string($_REQUEST['auteur']) ."',"
."'".mysql_real_escape_string($_REQUEST['annee']) ."',"
."'".mysql_real_escape_string($_REQUEST['genre']) ."',"
."'".mysql_real_escape_string($_REQUEST['etat']) ."',"
."'".mysql_real_escape_string($couverture)."')";
mysql_query($sql);
mysql_close($liaison);
?>
Ajout effectué !
<a href="Listing livre.php">retour</a>
Et enfin le code de la page se chargeant d'afficher ma liste de livre :
<?php
$liaison = mysql_connect("localhost", "root", "");
mysql_select_db("biblio");
$sql = "select * from livre";
$livres = mysql_query($sql) ;
?>
<html>
<head>
<title>Biblio</title>
</head>
<body>
<h1>Listes des livres </h1>
<ul>
<?php while (($livre = mysql_fetch_assoc($livres)) !== false) : ?>
<li>
<?php if (!empty($livre["couverture"])): ?>
<img src="/images/<?php echo $livre["couverture"]; ?>" />
<?php endif; ?>
<?php echo $livre["titre"]; ?> par
<em><?php echo $livre["auteur"]; ?> </em>
(<?php echo $livre["annee"]; ?>)
</li>
<?php endwhile; ?>
</ul>
</body>
</html>
<?php mysql_close($liaison); ?>
Je vous remercie d'avance pour l'aide que vous pourriez m'apporter !
Zoc'