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 :

Récupération données d'un formulaire issues d'une requête et checkbox


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Récupération données d'un formulaire issues d'une requête et checkbox
    Bonjour à tous!
    Voilà le sujet: je souhaite récupérer les données d'un formulaire provenant d'une requête Mysql et cases à cocher.
    Ce formulaire est composé de 2 parties:
    1) trois champs input classiques: 'lastname', 'e-mail', 'comment'.
    2) un tableau provenant d'une requête et affichant donc x lignes de résultats. Les cases à cocher sont ajoutées au bout de chaque ligne dans l'echo.
    Voici la partie requête et l'affichage (j'ai très largement tout simplifié et supprimé tout ce qui n'est pas utile à la compréhension):
    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
    <?php														
    $result = mysql_query('SELECT event_day, time, event_txt, refx, 
    FROM program																	
    WHERE ref LIKE \'blabla\'') 
    or die(mysql_error());
     
    while ($row = mysql_fetch_array($result) )					
     
    $event_day=$row['event_day'];	
    $time=$row['time'];
    $event_txt=$row['event_txt'];
    $refx=$row['refx'];
     
     
    echo("<tr><td>$event_day</td><td>$time</td><td>$refx</td><td>$event_txt</td><td><input type='checkbox' name='check' value='ok'/></td></tr>");
    ?>
    Jusqu'ici, c'est enfantin, le formulaire s'affiche correctement.
    Vous avez compris: la personne qui s'enregistre choisit les résultats qui l'intéressent en cochant la case correspondante au bout de la ligne. Dans la page de traitement, je souhaite donc récupérer avec un INSERT les 3 input et les lignes où la case a été cochée. Les variables sont déclarées comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $lastname = $_POST['lastname'];
    $email = $_POST['email']) ;
    $comment = $_POST['comment'] ;
     
    $event_day = $POST['event_day'];
    $time = $POST['time'] ;
    $event_txt = $POST['event_txt'];
    $refx = $POST['refx']; 
    $check = $_POST['check'];
    ?>
    Et là, ça coince. Seuls apparaissent les 3 variables $lastname, $email, $comment. Le pb vient bien sûr de la déclaration des autres variables avec POST (message d'erreur: Undefined variable: POST in ...). J'ai lu beaucoup de tutoriels et de posts, mais je n'ai pas trouvé la solution. Je vous remercie dès maintenant de votre aide.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Désolé, petite erreur. Lire bien sûr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE refx LIKE \'blabla\'')
    Merci.

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    pour que le LIKE ait un effet, tu dois corriger ton WHERE
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE refx LIKE '%blabla%'
    Ensuite pour vérifier l'existence d'une clef dans un tableau, tu disposes de isset() ou empty()

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Merci rawsrc!
    Me serais-je mal exprimé? Les résultats de la requête s'affichent correctement sous forme de tableau dans le formulaire. Effectivement, dans le code d'origine, il y a bien un '%' dans le LIKE (comme je le mentionne, j'ai simplifié à l'extrême, car le problème ne vient pas de la requête). Mon problème est uniquement (si je puis dire!) la récupération des lignes de données où la checkbox est cochée et l'injection dans une nouvelle table avec un INSERT. C'est cela qui ne fonctionne pas.
    Voilà l'INSERT:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "INSERT INTO ma_table VALUES ('', '$lastname', '$email', '$comment', '$event_day', '$time', '$event_txt', '$refx', '$check', 
     now())";
    Seules apparaissent correctement les 3 variables $lastname, $email, $comment. Comment récupérer les autres?
    Merci à l'avance!

Discussions similaires

  1. Récupération des données issues d'une requête
    Par TeoSitran dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 29/04/2014, 09h36
  2. [AC-2003] Formulaire Continu: visualisation de données issu d'une requête
    Par michaelkeul dans le forum IHM
    Réponses: 3
    Dernier message: 20/05/2010, 16h27
  3. [MySQL] hiérarchiser les données d'un array issu d'une requête
    Par yahoowaloo dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/07/2009, 14h43
  4. Réponses: 7
    Dernier message: 22/05/2007, 15h35
  5. Réponses: 6
    Dernier message: 19/11/2004, 16h52

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