Au secours probleme formulaire php

bretonm2004 Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   -  
SangokuSSJ4 Messages postés 443 Date d'inscription   Statut Membre Dernière intervention   -
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



A voir également:

3 réponses

SangokuSSJ4 Messages postés 443 Date d'inscription   Statut Membre Dernière intervention   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
SangokuSSJ4 Messages postés 443 Date d'inscription   Statut Membre Dernière intervention   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
bretonm2004 Messages postés 319 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
bretonm2004 Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   2
 
dois je mettre (tel que défini) (NULL) ou (CURRENT_TIMESTAMP)
0
SangokuSSJ4 Messages postés 443 Date d'inscription   Statut Membre Dernière intervention   47
 
Tu cliques pour modifier la structure de la table dans laquelle sont stockée les infos, puis lorsque tu as un écran de ce type: https://user.oc-static.com/files/219001_220000/219790.png tu rempli le champ "Defaut²"
0
bretonm2004 Messages postés 319 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
SangokuSSJ4 Messages postés 443 Date d'inscription   Statut Membre Dernière intervention   47
 
Regarde cette doc: https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html

change le type de la colonne: mets varchar au lieu de Text. Et dans la taille tu mets 255.
0
bretonm2004 Messages postés 319 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