Page 1 sur 1

Avec la fonction update mysql et une checkbox

Posté : 18 sept. 2007, 12:03
par Alucard
Bonjour, alors voilà mon problème j'ai une page qui recupère des donnée d'une base sql et je désirerais que lorsque que l'on coche une check box une valeurs sql soit modifier par rapport aux autre. Je m'eplique plus clairement avec un exemple donc on voit afficher par exemple le nom Paul lorsque l'on coche une checkbox à coté puis que l'on valide la valeur Traiter qui lié à Pul passe à 2. J'ai déjà essayé different truc.
<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("test"); // Sélection de la base 

$reponse = mysql_query("SELECT * FROM test WHERE Traiter='1'"); // Requête SQL


// On fait une boucle pour lister tout ce que contient la table :
while ($donnees = mysql_fetch_array($reponse) )
{
?><form name="traiter" method="post" action="traiter.php">
<?php echo $donnees['Entreprise']; ?><p> 
<?php echo $donnees['Nom']; ?><p>
<?php echo $donnees['Prenom']; ?><p>
<?php echo $donnees['Adresse']; ?><p>
<?php echo $donnees['Ville']; ?><p>
<?php echo $donnees['Code_postal']; ?><p>
<?php echo $donnees['Pays']; ?><p>
<?php echo $donnees['telephone']; ?><p>
<?php echo $donnees['portable']; ?><p>
<?php echo $donnees['Fax']; ?><p>
<?php echo $donnees['e-mail']; ?><p>
<?php 
if ($donnees['Autre'] != 'Si autre veuilliez préciser'){
echo $donnees['Autre'];} ?>


  <label>  <br>
  <br>
  <input type="checkbox" name="Traiter2" id="Traiter">
  </label>
  <input type="submit" value="Enregistrer" />
</form>
<p>

<hr><p>

<?php
}
mysql_close(); // Déconnexion de MySQL
?>
Puis la seconde page:
<?php $traiter =  mysql_escape_string(htmlspecialchars($_POST['Traiter2'])); //sécurité
?>

<?php
if ($_POST['Traiter2'] == 'checked') // Si on a quelque chose à enregistrer ET C'EST LA QUE JE BUTE
{
        // Connection
        mysql_connect("localhost", "root", "");
		
		//Selection de la BDD
        mysql_select_db("test");

        //Enregistrement des valeur
        mysql_query("UPDATE test SET Traiter='2' WHERE entreprise='$entreprise'");

        //Deconnection
        mysql_close();
}
?>
Pour information j'ai déjà cherhcé une peu partout sur le net et sur ce site mais je n'ai vraiment rien trouvé dclaire, je vous remercie d'avance pour l'aide fornie et si je l'ai mis dans la maivaisse catégorie dsl.

Posté : 18 sept. 2007, 13:32
par d0m
Tout d'abord question syntaxe essaie de faire des phrases plus courtes et mieux structurée. C'était un challenge de te lire et de te comprendre.

Pour ton problème, $_POST['Traiter2'] n'existe dans la page de traitement que si la case a été cochée dans la page de saisie.
De plus, tu n'as pas affecté de valeur à la case donc ta vérification
if($_POST['Traiter2'] == 'checked')
ne sera jamais vérifiée.

Pour vérifier qu'une case a été cochée, il suffit de vérifier si la variable $_POST['Traiter2'] existe :
if(isset($_POST['Traiter2']))

Posté : 18 sept. 2007, 13:43
par AB
Tout d'abord question syntaxe essaie de faire des phrases plus courtes et mieux structurée. C'était un challenge de te lire et de te comprendre.
+1

Quitte à y passer un peu plus de temps, essayes de t'appliquer pour expliquer ton pb le plus clairement possible si tu souhaites avoir un maximum de réponses. Tout le monde n'aura pas la patience de dOm :wink: