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 :

extraire des données


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut extraire des données
    bonjour,
    dans le but d'afficher un message ,j'aimerai extraire les données du tableau qui m'interesse en fonction de l'enregistrement sélectionné j'arrive a afficher les données sauf qu'il n'y a pas de concordance avec ce que je selectionne comme enregistrement.(resolu étant une checkbox)

    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
    $login=($_SESSION['login']);
    $heure=date('Y-m-d H:i:s');
    if(isset($_POST['resolu'])    ) { 
     
    	$sql2=$pdo->prepare("UPDATE messages SET DATE_RESOLUTION=now(), RESOLU='oui',LOGIN=:login  where NUM=:NUM AND RESOLU <> 'oui'");
    	foreach($_POST['resolu'] as $NUM=> $resolu){
     
            $sql2->execute(array(':login'=>$login,
    			                 ':NUM'=>$NUM)) ; 
            }
    	$sql3=$pdo->query("select NUM,MAIL,SUJ,COM from messages where NUM = ??????????????");
    	 $TAB=$sql3->fetch();
    	$NUM=$TAB['NUM'];
            $suj= $TAB['SUJ'];
    	$com=$TAB['COM'];
    	$mail= $TAB['MAIL'];	
     
    echo 'Le n° '.$NUM.' a été résolu le '.$heure.' par '.$login.' concernant le sujet '.$suj.'dont la description est'.$com. "</br>"."\r\n\r\n";
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    j'ai résolu une partie de mon problème mais pour pour pouvoir prendre en compte un nouvel affichage je suis obliger de fermer ma fenetre ,la relancer pour afficher les valeurs voulue(si non cela prend les dernieres valeurs dont l'enregistrement a été sélectionné)

    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
    $sql=$pdo->query( "SELECT * FROM messages " );
    while($Resultat =$sql->fetch())
    $NUM=$Resultat['NUM'];
    $login=($_SESSION['login']);
    $heure=date('Y-m-d H:i:s');
    if(isset($_POST['resolu'])    ) { 
     
    	$sql2=$pdo->prepare("UPDATE messages SET DATE_RESOLUTION=now(), RESOLU='oui',LOGIN=:login  where NUM=:NUM AND RESOLU <> 'oui'");
    	foreach($_POST['resolu'] as $NUM=> $resolu){
     
            $sql2->execute(array(':login'=>$login,
    			                 ':NUM'=>$NUM)) ; 
            }
    	$sql3=$pdo->query("select NUM,SUJ,COM from messages where NUM=$NUM");
    	 $TAB=$sql3->fetch();
    	$NUME=$TAB['NUM'];
            $suj= $TAB['SUJ'];
    	$com=$TAB['COM'];
     
     
    echo 'Le n° '.$NUME.' a été résolu le '.$heure.' par '.$login.' concernant le sujet '.$suj.'dont la description est'.$com. "</br>"."\r\n\r\n";
    }

  3. #3
    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
    Des SELECT dans des boucles d'UPDATE c'est du grand bazar.
    En plus tu remets des éléments qu'on t'a déjà fait retirer dans d'autres messages

    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
     
    // les lignes précédentes ne servent à rien
    if(isset($_POST['resolu'])) {
    	$sth= $pdo->prepare("UPDATE messages SET DATE_RESOLUTION=now(), RESOLU='oui', LOGIN=:login WHERE NUM=:NUM AND RESOLU <> 'oui'");
    	foreach($_POST['resolu'] as $NUM=> $resolu) {
                 $sth->execute(array(':login'=>$_SESSION['login'], ':NUM'=>$NUM));
     
            }
     
    $sth = $pdo->prepare("SELECT NUM,SUJ,COM FROM messages WHERE NUM IN (" . implode(',', array_fill(0, count($tab), '?')) . " AND LOGIN = ?)");
    $param = array_keys($_POST['resolu']);
    $param[] = $_SESSION['login'];
    $sth->execute($param);
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        echo 'Le n° '.$row['NUM'].' a été résolu le ' . date('d/m/Y') . ' par '.$_SESSION['login'].' concernant le sujet '.$row['SUJ'].' dont la description est '.$row['COM']. "</br>\r\n\r\n";
    }
    }
    Par contre sur la logique du texte je ne vois pas trop : tu indiques à l'utilisateur son login et à la date d'aujourd'hui ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    merci sabotage,
    peux tu m'expliquer cette partie car je ne la comprends pas (je suis débutant en la matiere)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE NUM IN (" . implode(',', array_fill(0, count($tab), '?'))

  5. #5
    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
    Ca permet de mettre autant de '?' qu'il y a de paramètre à fournir.
    array_fill crée un tableau de '?' et implode le transforme en chaine de caractère.
    on obtient donc NUM IN (?, ?, ?, ......)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    donc si j'ai bien compris tous les point d'interrogation qui sont crees vont remplir un autre tableau pour les champs NUM,SUJ,COM.
    et les point d'interrogations vont dans la variables $tab?

    et si je veux récuperer également le mail je fais cela?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        echo 'Le n° '.$row['NUM'].' a été résolu le ' . date('d/m/Y') . ' par '.$_SESSION['login'].' dont le mail est:'.$row['MAIL'].' concernant le sujet '.$row['SUJ'].' dont la description est '.$row['COM']. "</br>\r\n\r\n";
    j'ai essayé ton code mail mon message ne s'affiche pas j'ai une une erreur de variable inconnu sur $tab, je supose que dans mon cas j'utilise $sql2

Discussions similaires

  1. [Système] Extraire des données d'une page web
    Par nazoreen dans le forum Langage
    Réponses: 17
    Dernier message: 22/03/2006, 21h38
  2. Extraire des donnés d'un fichier texte
    Par sadsad dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2006, 15h09
  3. Réponses: 7
    Dernier message: 29/09/2005, 10h19
  4. Réponses: 1
    Dernier message: 28/09/2005, 15h35
  5. extraire des données d'un code HTML
    Par blueice dans le forum Langage
    Réponses: 5
    Dernier message: 19/08/2004, 19h41

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