PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 27-03-2013 11:29:05

manu33
Membre
Inscription : 27-03-2013
Messages : 2

Insertion dans base de donnée et formulaire

Bonjour

Je débute en php / mysql et votre site m'a permis d'arriver (enfin à un détail près) à réaliser mon premier site en php. J'ai utilisé vos codes pour créer un formulaire associé au script d'insertion de données dans ma base sql, le tout dans une page "add.php3" . Cela fonctionne parfaitement mais j'ai une petit problème. il suffit que j'ouvre la page add.php3 sans remplir les champs pour qu'une nouvelle ligne de données (sans rien dedans ofbien sûr )soit insérée dans la base. En fait cela ajoute 1 au champs ID. Comment y remedier? Merci pour votre aide.

Ci dessous le code

<?php
// On commence par récupérer les champs
if(isset($_POST['ID']))      $ID=$_POST['ID'];
else      $ID="";

if(isset($_POST['cat']))      $cat=$_POST['cat'];
else      $cat="";

if(isset($_POST['bot']))      $bot=$_POST['bot'];
else      $bot="";

if(isset($_POST['com']))      $com=$_POST['com'];
else      $com="";

if(isset($_POST['fam']))      $fam=$_POST['fam'];
else      $fam="";

if(isset($_POST['ori']))      $ori=$_POST['ori'];
else      $ori="";

if(isset($_POST['expo']))      $expo=$_POST['expo'];
else      $expo="";

if(isset($_POST['sol']))      $sol=$_POST['sol'];
else      $sol="";

if(isset($_POST['descrip']))      $descrip=$_POST['descrip'];
else      $descrip="";

if(isset($_POST['culture']))      $culture=$_POST['culture'];
else      $culture="";

if(isset($_POST['divers']))      $divers=$_POST['divers'];
else      $divers="";

if(isset($_POST['image1']))      $image1=$_POST['image1'];
else      $image1="";

// On vérifie si les champs sont vides
if(empty($ID) OR empty($cat) OR empty($bot) OR empty($com) OR empty($fam) OR empty($ori) OR empty($expo) OR empty($sol) OR empty($descrip) OR empty($culture) OR empty($divers) OR empty($image1))



    {

       // connexion à la base
$db = mysql_connect('xxx', 'xxx', 'xxx')  or die('Erreur de connexion '.mysql_error());
// sélection de la base

    mysql_select_db('xxx',$db)  or die('Erreur de selection '.mysql_error());

    // on écrit la requête sql
    $sql = "INSERT INTO plantotheque( cat, bot, com, fam, ori, expo, sol, descrip, culture, divers, image1) VALUES('$cat','$bot','$com','$fam','$ori','$expo', '$sol', '$descrip', '$culture', '$divers', '$image1')";

    // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

   

    mysql_close();  // on ferme la connexion
    }
?>



<div align="center"><font size=4 face="arial" color=#8000000><b>Formulaire de saisie des plantes</b></font></div><br><br>
<form method="POST" action="add.php3">
<center>
<font size="2" face="arial" color=#800000><b>Type de plante</b></font> <select name="cat" size="1" value="Catégorie">
      <option value="Arbre">Arbre</option>
      <option value="Arbuste">Arbuste</option>
      <option value="Conifère">Conifère</option>
      <option value="Plante vivace">Plante vivace</option>
      <option value="Plante annuelle">Plante annuelle</option>
      <option value="Graminée">Graminée</option>
      <option value="Plante d'eau">Plante d'eau</option>
    </select>
<br><br> <input type="text" name="bot" size="50" value="Nom botanique" maxlength="70"><br>
<input type="text" name="com" size="50" value="Nom commun" maxlength="70"><br>
<input type="text" name="fam" size="50" value="Famille" maxlength="70"><br>
<input type="text" name="ori" size="50" value="Origine" maxlength="50"><br><br>
<font size="2" face="arial" color=#800000><b>Type d'exposition</b></font> <select name="expo" size="1" value="Exposition">
      <option value="Soleil">Soleil</option>
      <option value="Ombre">Ombre</option>
      <option value="Mi-ombre">Mi-ombre</option>
      <option value="Soleil / mi-ombre">Soleil / mi-ombre</option>
      <option value="Ombre / mi-ombre">Ombre / mi-ombre</option>
      <option value="Toutes">Toutes</option>
    </select><br><br>
<font size="2" face="arial" color=#800000><b>Type de sol</b></font> <select name="sol" size="1" value="type de sol">
      <option value="Tous">Tous sols</option>
      <option value="Sols frais">Sols frais</option>
      <option value="Sols acides">Sols acides</option>
      <option value="Sols drainés">Sols drainés</option>
      <option value="Sols secs">Sols secs</option>
      <option value="Sols légers">Sols légers</option>
      <option value="Sols inondés">Sols inondés</option>
    </select>
<br>
<input type="text" name="descrip" size="150" value="Description" maxlength="700"><br> <input type="text" name="culture" size="150" value="Culture" maxlength="700"><br>
<font size="2" face="arial" color=#800000><b>En savoir plus </b></font><input type="text" name="divers" size="150" value="Divers" maxlength="700"><br> <input type="text" name="image1" size="50" value="image.jpg" maxlength="255"><br><br>
<input type="submit" value="Valider la fiche" name="envoyer">
</center>
</form>

Hors ligne

#2 27-03-2013 13:09:32

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Insertion dans base de donnée et formulaire

Salut,

changer if(empty($ID) OR empty($cat)  ..............
par        if(!empty($ID) OR !empty($cat) ..................


a++

Hors ligne

#3 27-03-2013 17:46:34

manu33
Membre
Inscription : 27-03-2013
Messages : 2

Re : Insertion dans base de donnée et formulaire

Voilà, second post de la journée avec la solution. Comme quoi y a pas que la nuit qui porte conseil. J'ai résolu le problème en créant une page addform.htm contenant uniquement le formulaire et une page add.php3 contenant le script. Maintenant tout fonctionne à merveille. Merci Pierrot pour pour le détail du "!". J'ai l'impression qu'avec le PHP il faut utiliser tous ses neurones... et ne jamais désespérer de trouver une solution.

Hors ligne

Pied de page des forums