Problème php

  • Auteur de la discussion Auteur de la discussion Bimpson
  • Date de début Date de début
B
Bimpson
Guest
Bonjour à tous, je suis en train de faire un site avec php et mysql..
J'ai un problème dans mon formulaire d'inscription, en fait, rapidement, j'ai un champ qui prend la valeur d'un autre champ, et c'est pas trop ce que je veux...:wink:

dans ma table, ban_ann prend la valeur de id_cat...
bizarre, nan?

Dans le fichier addhtm.php, où se trouve mon formulaire
Code:
<html>
<head>
<style type="text/css">
<!--
.Style1 {font-family: Verdana, Arial, Helvetica, sans-serif}
-->
</style>



<?php
// on se connecte &agrave; MySQL
$db = mysql_connect('localhost', 'root', '');

// on s&eacute;lectionne la base
mysql_select_db('affi',$db);
?>

</head>
<body>
<form method="POST" action="add.php">

  <p class="Style1">Relatif &agrave; l'utilisateur :</p>
  <p class="Style1">
    <input name="pseudo" type="text" id="pseudo" value="pseudo" size="20" maxlength="35">
  </p>
  <p class="Style1">
    <input name="pwd" type="password" id="pwd" value="motdepasse" size="20" maxlength="35">
    <input name="pwd_confirmation" type="password" id="pwd_confirmation" value="motdepasse" size="20" maxlength="35">
</p>
  <p class="Style1">&nbsp;</p>
  <p class="Style1">Relatif au site :   </p>
  <p>
    <input type="text" name="nom" size="20" value="nom" maxlength="35">  
    <br>
    <textarea name="descriptif" cols="50" id="descriptif">descriptif du site</textarea>
  </p>
  <p>    <input name="url" type="text" id="url" value="url" size="20" maxlength="100">
    <br>
    <input name="ban" type="text" id="ban" value="url de la banniere" size="20" maxlength="70"> 
  </p>
  <p>    
  <?php
// ----------------------------------------------------------------------------
// Liste Rubriques
// ----------------------------------------------------------------------------
$sql = "SELECT id_act,nom_cat FROM categorie ORDER BY nom_cat";
$resultat = mysql_db_query('affi',$sql);

echo "<BR>&nbsp;<B>Catégories</B>&nbsp;";
echo "&nbsp;<SELECT NAME='categorie'>\n";
while ($enr = mysql_fetch_assoc($resultat)) {
  echo "<OPTION VALUE='".$enr['id_act']."'>".$enr['nom_cat']."</option>";
  
}
echo "</SELECT>&nbsp;\n";
?>
  </p>
  <p>&nbsp;</p>
  <p>    <br>
    <input type="submit" value="Envoyer" name="envoyer">
    </p>
</form>
</body>
</html>

Dans le fichier add.php qui fait les requetes nécessaires...
Code:
<?php

// On récupère les champs (voir plus haut)

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

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

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

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

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

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

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

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


// On vérifie si les champs sont vides
if(empty($pseudo) OR empty($pwd) OR empty($pwd_confirmation) OR empty($nom) OR empty($descriptif) OR empty($url) OR empty($ban) OR empty($categorie))
    {
    echo '<font color="red">Attention, tous les champs doivent etre remplis !</font>';
    }
// Aucun champ n'est vide, on peut enregistrer dans la table
else     
    {
    $db = mysql_connect('localhost', 'root', '');  // connexion à la base
    mysql_select_db('affi',$db);                  // sélection de la base
    
    // on regarde si l'url existe déjà
    $sql = "SELECT id_ann FROM annonceur WHERE url_ann='$url'";
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    
    // on compte le nombre de résultats
    $res = mysql_num_rows($req);

    if($res!=0)  // l'url existe déjà, on affiche un message d'erreur
        {
        echo '<font color="red">Désolé, mais cette URL existe déjà dans notre base.</font>';
        }
    else  // L'url n'existe pas, on insère les informations du formulaire dans la table
        {   
        $sql = "INSERT INTO annonceur(id_ann, nom_ann, desc_ann,url_ann, ban_ann, id_cat, date_inscription, pseudo_ann, pwd_ann) VALUES('','$nom','$descriptif','$url','$ban','$categorie','2004-12-05','$pseudo','$pwd')";
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
		//echo $ban; 
        
        // on affiche le résultat pour le visiteur
        echo 'Vos infos ont été ajoutées.';
        }
    mysql_close();  // on ferme la connexion
    } 
?>

Est-ce que qqn peux m'aider?
Merci d'avance....
 
WRInaute accro
Code:
$sql = "INSERT INTO annonceur(id_ann, nom_ann, desc_ann,url_ann, ban_ann, id_cat, date_inscription, pseudo_ann, pwd_ann) VALUES('','$nom','$descriptif','$url','$ban','$categorie','2004-12-05','$pseudo','$pwd')";
C'est normal, car ban_ann est le 5° champ ajouté et que la 5° valeur est $ban, la 1° étant ''
 
B
Bimpson
Guest
Oui mais en fait le problème c'est ban_ann prend la valeur de $categorie et non de $ban...
de plus id_cat prend la valeur de $categorie..
Je ne comprend vraiment pas...
 
WRInaute accro
Quelle est la structure de la table ?
id_cat prend la valeur de $categorie lors de l'affichage ou lors de l'insertion dans la table ?
 
B
Bimpson
Guest
Leonick a dit:
Quelle est la structure de la table ?
id_cat prend la valeur de $categorie lors de l'affichage ou lors de l'insertion dans la table ?

Les 2... :)
Sinon ma base est des plus simple, une table annonceur, une table catégorie avec un id_cat dans la table annonceur
 
WRInaute accro
Dire que je n'avais même pas remarqué ça :oops:
Par contre, on peut écrire les affectations d'une manière plus "light"
Code:
$categorie=(isset($_POST['categorie'])?$_POST['categorie']:"");
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut