Au secours probleme formulaire php

bretonm2004 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   -  
SangokuSSJ4 Messages postés 480 Statut Membre -
Bonjour,

j'ai une question assez embetante

j'ai un formulaire pour entrer une annonce classée mais j'aimerait que quand un champ n'est pas rempli que ca ecrive N/D dans la base de donée

aidez moi svp

3 réponses

  1. SangokuSSJ4 Messages postés 480 Statut Membre 47
     
    Il y a plusieurs méthodes pour faire ça.

    Tu peux configurer la base de données pour mettre une valeur par défaut à ton champ. C'est à dire que si le champ n'est pas rempli, dans la base de données ça mettra une valeur "défaut" (en l'occurrence tu peux lui dire "N/D").

    Pour le cas où tu ne pourrais pas modifier la base de données, alors un petit script php du genre

    <?php

    $monChamp = $_POST['monChamp'];
    if($monChamp == null){
    $texteAinsererDansBDD = "N/D";
    }
    else {
    $texteAinsererDansBDD = $monChamp;
    }

    ?>

    Le principe est simple: tu fais un test pour vérifier si le champ est vide ou pas. Si il est vide, tu insère la chaine de caractère "N/D".

    Mais très franchement, la première méthode est à mon avis la plus simple, et de plus elle n'utilisera pas les ressources du serveur apache.
    1
  2. SangokuSSJ4 Messages postés 480 Statut Membre 47
     
    Est-ce que tu as moyen de modifier la structure de ta base de données ? Genre tu as un accès PHPMyAdmin sur par exemple ? Si oui, alors tu peux mettre une valeur par défaut comme je t'ai dit, et dans ce cas-là pas de php à modifier, ça devrait être gèré automatiquement par la bdd.

    Sinon tu vas devoir faire un if pour chacune de tes variables, par exemple pour $carburant:

    if($_POST['carburant'] == null){
    $carburant = "N/D";
    } else {
    $carburant = $_POST['carburant'];
    }
    1
    1. bretonm2004 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   2
       
      ah ouais oui j ai acces aphpmyadmin comment je doit faire pour mettre une valeur par defaut
      0
    2. bretonm2004 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   2
       
      dois je mettre (tel que défini) (NULL) ou (CURRENT_TIMESTAMP)
      0
    3. bretonm2004 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   2
       
      ALTER TABLE 'avendrenonpubliee' CHANGE 'marque' 'marque' TEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'SO'

      MySQL a répondu:

      #1101 - BLOB/TEXT column 'marque' can't have a default value

      voila ce que j ai quand j essaie de mettre une valeur par defaut
      0
  3. bretonm2004 Messages postés 320 Date d'inscription   Statut Membre Dernière intervention   2
     
    <?php
    //connection a la base de données
    mysql_connect('localhost', 'xxxx', 'xxxx');
    mysql_select_db("axxuto");

    //récupération des variables du formulaire
    if(isset($_POST['envoyer'])) {
    $typedannonce=$_POST['typedannonce'];
    $marque=$_POST['marque'];
    $autres=$_POST['autres'];
    $modele=$_POST['modele'];
    $prix=$_POST['prix'];
    $negociable=$_POST['negociable'];
    $annee=$_POST['annee'];
    $etat=$_POST['etat'];
    $carburant=$_POST['carburant'];
    $kilometrage=$_POST['kilometrage'];
    $transmission=$_POST['transmission'];
    $immatricule=$_POST['immatricule'];
    $climatisation=$_POST['climatisation'];
    $audio=$_POST['audio'];
    $cylindre=$_POST['cylindre'];
    $puissance=$_POST['puissance'];
    $consommation=$_POST['consommation'];
    $couleurinterieure=$_POST['couleurinterieure'];
    $couleurexterieure=$_POST['couleurexterieure'];
    $email=$_POST['email'];
    $message=$_POST['message'];
    $date= date('d-m-Y');
    $i=0; $v=0; for($j=0; $j<7; $j++) { $image[$j]=''; $fn[$j]=''; }
    if(!empty($_FILES['image1']['tmp_name'])) { $image[$i]=$_FILES['image1']; $i++; }
    if(!empty($_FILES['image2']['tmp_name'])) { $image[$i]=$_FILES['image2']; $i++; }
    if(!empty($_FILES['image3']['tmp_name'])) { $image[$i]=$_FILES['image3']; $i++; }
    if(!empty($_FILES['image4']['tmp_name'])) { $image[$i]=$_FILES['image4']; $i++; }
    if(!empty($_FILES['image5']['tmp_name'])) { $image[$i]=$_FILES['image5']; $i++; }
    //INSERTION DE la requête sql
    $sql='INSERT INTO avendrenonpubliee(id, typedannonce, marque, autres, modele, prix, negociable, annee, etat, carburant, kilometrage, transmission, immatricule, climatisation, audio, cylindre, puissance, consommation, couleurinterieure, couleurexterieure, email, message, date, image1, image2, image3, image4, image5) VALUES("","'.$typedannonce.'","'.$marque.'","'.$autres.'","'.$modele.'","'.$prix.'","'.$negociable.'","'.$annee.'","'.$etat.'","'.$carburant.'","'.$kilometrage.'","'.$transmission.'","'.$immatricule.'","'.$climatisation.'","'.$audio.'","'.$cylindre.'","'.$puissance.'","'.$consommation.'","'.$couleurinterieure.'","'.$couleurexterieure.'","'.$email.'","'.$message.'","'.$date.'","'.$fn[0].'","'.$fn[1].'","'.$fn[2].'","'.$fn[3].'","'.$fn[4].'")';
    mysql_query($sql) or die(mysql_error());
    $idinsert=mysql_insert_id();
    //AJOUT DES IMAGES
    for($j=0; $j<$i; $j++) {
    list($width, $height, $type, $attr)=getimagesize($image[$j]['tmp_name']);
    if($image[$j]['size']>524288 && !$image[$j]['error'])
    exit('Le fichier ne doit pas depasser 500 ko');
    if(empty($error)) {
    if(move_uploaded_file($image[$j]['tmp_name'], '/home/auto7837/public_html/photos/avendrenp/'.$idinsert.'-'.$v.'.jpg')) {
    $fn[$v]=$idinsert.'-'.$v.'.jpg';
    $v++;
    }
    unset($image[$j]['tmp_name']);
    }
    }
    // on modifie les images sur la requete
    mysql_query('UPDATE avendrenonpubliee SET image1="'.$fn[0].'", image2="'.$fn[1].'", image3="'.$fn[2].'", image4="'.$fn[3].'", image5="'.$fn[4].'" WHERE id="'.$idinsert.'"'); ?>
    <script type="text/javascript">
    location.replace('avendreprevisualisation.php');
    </script>
    <?
    }
    else
    {
    ?>

    ou doisje mettre ce bout de code merci
    0