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 :

Insertion de résultat dans la base


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut Insertion de résultat dans la base
    Bonsoir

    grace à une requete j'obtiens une liste comprenant pour chaque ligne des cases à coché ayant le même nom mais de valeur différentes.

    Alors sur chaque ligne j'ai 3 cases à cocher : 2 cases pour choisir une valeur et une case pour indiquer le match choisi.

    Alors mon problème est que comment fait une requete pour insérer les valeurs choisi dans une autre table.

    les valeurs concernées sont : l'une des valeurs des 2 première cases à coché et l'autre valeur étant celle du match choisi sur les lignes de la liste des résultats.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu ne parles pas de boutons radios plutot ?
    Parce qu'avec des cases à cocher, que se passerait-il si plusieurs cases etaient cochées.

    Sinon a quel niveau rencontres-tu un probleme ?
    Tu n'arrives pas a recuperer les données du formulaire ou tu n'arrives pas a construire ta requete ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut
    je m'explique mieux

    j'ai une table dans laquelle j'ai 7 champs dont une colonne valeur, une colonne mise et une colonne idmatch

    la liste obtenu dynamiquement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ..... val1      val2     val3      Mise     idmatch
                     15        87       12        20       76
                      23       65        87        100     98
                      20       43        18        500      109  
                      ............................................
                      ...........................................
                     jusqu'à n résultats
    ALors sous chaque ligne si je met 3 boutons radio de nom "valeur" (pour val1, val2, val3) il yaura selon le nombre de ligne le même nom des boutons donc quand l'internaute doit effectuer un choix sur chaque ligne il ya problème alors que si j'utilise les cases à cocher il peut effectuer un choix et faire sa mise sur ce choix.

    Si par exemple il choisit la 1ère ligne il doit choisir une valeur entre val1 val2 et val3 et ensuite taper sa mise dans un champ de text et coche à la fin de la ligne la case à cocher indiquant le match sur lequel il fait la mise.

    En gros il peut effectuer plusieurs mises selon le nombre de lignes qu'il choisira .

    Maintenant dans ma table je doit pouvoir insérer ses 3 données lignes par ligne c'est à dire la valeur, la mise et l'id du match.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu devrais te relire avant d'envoyer ton message car j'ai du m'y reprendre plusieurs fois pour comprendre a peu pres ce que tu veux.

    il yaura selon le nombre de ligne le même nom des boutons
    Tu veux dire plutot "il y aura pour chaque ligne le même nom de bouton".
    La solution est très evidente : donner pour chaque ligne un nom de boutons radio différent.

    Le mieux est d'utiliser l'index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<input type="radio" name="val' . $idmatch . '" value="' . $row['val1'] . '" />
    <input type="radio" name="val' . $idmatch . '" value="' . $row['val2'] . '" />
    <input type="radio" name="val' . $idmatch . '" value="' . $row['val3'] . '" />';
    Tu procèdes de la meme facon pour tes autres champs mais en utilisant un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="text" name="mise[' . $idmatch . ']" />
    <input type="checkbox" name="match[] value="' . $idmatch .'" />
    Et a la recuperation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (isset($_POST['match']) {
    foreach ($_POST['match'] as $idmatch) {
     
    $sql = "INSERT INTO table (val, mise, match) VALUES ($_POST['val'][$idmatch],$_POST['mise'][$idmatch], $idmatch)"
    .....
    }
    }
    Attention par contre ce n'est pas du tout securité.
    Un utilisateur malveillant pourrait entrer n'importe quels valeurs.
    Il faudrait contre-verifier la coherence a partir de la table d'origine.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut
    si je comprends bien

    est-ce le nom du formulaire?

    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $idmatch = $row_prog['id_match']
    venant de ma requête pour lister mes resultats?

    peux tu m'expliquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach ($_POST['match'] as $idmatch)

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    $_POST['match'] c'est le tableau qui contient l'ensemble des valeurs des champs name="match[]" qui ont été cochées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach ($_POST['match'] as $idmatch)
    Pour chaque entrée contenu dans ce tableau, je recupere la "value" dans la variable $idmatch.

    Je parcours donc toutes les checkbox cochées en recuperant l'idmatch qui correspond donc à ma ligne du formulaire.
    Cela me permet de regarder pour chaque ligne cochée, quelles etaient les valeurs des autres champs.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Résultat d'insert non présent dans la base
    Par yozine dans le forum Hibernate
    Réponses: 2
    Dernier message: 11/10/2007, 20h56
  2. Réponses: 3
    Dernier message: 27/03/2006, 17h25
  3. [MySQL] Insertion d'image dans une base de données
    Par dragonfly dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/03/2006, 14h59
  4. Réponses: 11
    Dernier message: 01/06/2005, 15h18
  5. [Debutant]Insertion nulle mais '' dans la base
    Par Tchinkatchuk dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 18/04/2005, 09h58

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