IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

bouton radio php mysql UPDATE multiple


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Par défaut bouton radio php mysql UPDATE multiple
    Bonjour tout le monde,
    Je suis nouveau sur ce forum et surtout en php, et j'espère respecter les règles en vigueur ici

    Je cherche depuis plusieurs heures une réponse sur internet mais je ne trouve pas ce cas particulier.

    Voilà je chercher à créer une fonctionnalité pour mon site, en quelques mots :
    J'upload des backgrounds via php dont je récupère plusieurs variables (nom chemin etc.)

    Dans mon admin j'affiche les images uploadées et je veux pouvoir sélectionner le seul et unique background que je veux afficher sur mon site, c'est pourquoi j'ai opté pour un input type="radio".

    Mon problème c'est que quand je soumets le formulaire la valeur postée est celle de la dernière id affichée ( a priori)

    Pour palier au fait qu'un checkbox non coché ne renvoie aucune valeur j'ai fait une requête MySQL qui remet tous les champs "onOff" à "off".

    Voici mes codes :
    Formulaire avec affichage par requète MySQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <form method="post" name="wallpaper" action="php/choixWallpaper.php">
    <br/>
      <?php 
        $sql="SELECT * FROM ma_table ORDER BY id DESC";
        $req =mysql_query($sql) or die('Erreur SQL !<br />'.sql.'<br />'.mysql_error());
     
        while($data=mysql_fetch_assoc($req)){
            if ($data["onOff"]=="on"){$wallpaperOn=' checked="checked" ';}
     
            echo '
            <div class="minWallpapers">                   	
                <a href="../img/wallpapers/'.$data["nom"].'" rel="zoombox[galerie]">
                <img src="../img/wallpapers/min/'.$data["nom"].'" border="0px"/>
                </a>
                <input type="radio" name="choix" value="on"' .$wallpaperOn.'/>
                <input name="statut" type="text" size="4" value="'.$data["onOff"].'"/>
                <input name="id" type="text" size="1" value="'.$data["id"].'"/>
            </div>
            ';
            }
         ?>
    <input name="enregistrer" type="submit" id="enregistrer" value="enregistrer"/>
    </form>
    Le traitement php de "choixWallpaper.php" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <?php
    	require "config.php";
    	mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
    	mysql_select_db(DB_BDD);
     
    	// remet tout les champs onOff sur Off (ça ça marche)
    	$sql="UPDATE ma_table SET onOff='Off'";
    	$req = mysql_query($sql) or die('Erreur SQL !<br />'.sql.'<br />'.mysql_error());
     
     
    	extract($_POST);
    	echo $choix;
    	echo $id;
     
    	$sql="UPDATE ma_table SET onOff='$choix' WHERE id=$id";
    	$req = mysql_query($sql) or die('Erreur SQL !<br />'.sql.'<br />'.mysql_error());
    	mysql_close();
     
    	header('Location: ' . $_SERVER['HTTP_REFERER'] );
     
    ?>
    echo $choix; renvoie on,
    echo $id; renvoie l'id de la dernière image affichée,

    j'ai pensé à plusieurs solutions non fructueuses, et j'essaye le plus possible d'éviter le javascript pour maximiser la compatibilité mais le cas échéant je suis prêt à l'utiliser.

    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 85
    Par défaut
    Pourquoi ne coches tu pas une valeur par défaut ?

    Tu fais un On et un Off, puis tu check off par défaut.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Par défaut
    Citation Envoyé par A0659 Voir le message
    Pourquoi ne coches tu pas une valeur par défaut ?

    Tu fais un On et un Off, puis tu check off par défaut.

    sisi :
    if ($data["onOff"]=="on"){$wallpaperOn=' checked="checked" ';}

    pour ajouter à la l'input checkbox ( de l'élément qui à la propriété "on" dans la BDD ) l'attribut coché :

    <input type="radio" name="choix" value="on"' .$wallpaperOn.'/>

    .$wallpaperOn. renvoie (ou pas) checked="checked"

    ça, ça marche aussi le code check bien la bonne checkbox

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 3
    Par défaut
    Citation Envoyé par Billy69008 Voir le message
    pour ajouter à la l'input checkbox ( de l'élément qui à la propriété "on" dans la BDD ) l'attribut coché :
    Je voulais dire bouton radio

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 85
    Par défaut
    Hello,

    Je ne cerne pas bien ton problème mais je faitun essai. Tu devrais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <input type="radio" name="choix" value="'.$data["id"].'" '.$wallpaperOn.'/>
    De cette maniere dans ton code php

    vaudra l'ID choisi.


    Pour ta requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    extract($_POST);
    	echo $choix;
    	echo $id;
     
    	$sql="UPDATE ma_table SET onOff='on' WHERE id=".intval($choix);
    intval ( http://php.net/manual/fr/function.intval.php ) est utile pour sécuriser ta requête.

Discussions similaires

  1. [MySQL] php mysql update impossible
    Par bleuindigo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/03/2010, 13h42
  2. [MySQL] Php mysql update et upload de fichiers
    Par bouzid88 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 09/10/2009, 23h30
  3. Comment envoyer la valeur d'un bouton radio dans MySQL
    Par michka999 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 18/08/2006, 18h08
  4. comment envoyer valeur bouton radio ds mysql
    Par michka999 dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/08/2006, 14h25
  5. Valeur pour des checkbox et des boutons radio pour MySQL
    Par mounirha dans le forum Administration
    Réponses: 1
    Dernier message: 18/04/2006, 23h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo