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 :

Parser un champ de BDD + affichage


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    DBA-Administrateur système
    Inscrit en
    Août 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : DBA-Administrateur système

    Informations forums :
    Inscription : Août 2009
    Messages : 12
    Par défaut Parser un champ de BDD + affichage
    Bonjour a tous , Débutant en PHP,j'ai un petit soucis que je n'arrive pas à résoudre , j'ai trouvé des pistes mais sans aboutir a ce que je veux

    Pour simplifier , j'ai 2 tables que j'appelle LISTING et CONTACTS

    dans la table LISTING,j'ai un champ "interlocuteur" ou est écrit le nom de la l'interlocuteur associé a une entreprise (champ "entreprise")

    Dans la table CONTACTS , je retrouve un champ "nom" qui a le même contenu que le champ "interlocuteur" de la table LISTING et un champ "telephone" qui comporte le numero de telephone de l'interlocuteur

    J'ai crée une page ou je souhaite entre autre, afficher le(s) nom(s) et téléphone(s) de ou des interlocuteur(s) pour une entreprise spécifique.(par le biais d'un foreach)

    Lorsque je n'ai qu'un qu'un nom dans le champ "interlocuteur" , pas de problème ,par contre , si plusieurs sont présents et séparés par des virgules(exemple= MARTIN,DUPONT) , je n'y arrive pas


    j'ai regardé du coté de la fonction explode() pour parser mais en fait je ne sais pas trop comment m'y prendre pour l'utiliser avec le résultat de ma requete sql

    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    Re-bonjour,

    J'ai répondu à ton précédent message, mais je te le ré-écris.

    tu peux essayer ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $tab_interlocuteur = explode(",", $sql_listing["interlocuteur"]);
    $sql = " SELECT * FROM contacts WHERE ";
    $or = "";
    foreach($tab_interlocuteur AS $interlocuteur)
    {
        $sql .= $or." nom = \"".$interlocuteur."\" ";
        $or = " OR ";
    }
    $s_sql = mysql_query($sql);
    while($r_sql = mysql_fetch_array($s_sql))
    {
        //ton code de traitement
    }
    J'espère que ce code pourra t'aider.

    Dans un premier temps, cela fonctionnera, sauf en cas de doublons au niveau des noms.

    Il faudra par la suite travailler avec des id pour éviter cela.

  3. #3
    Membre habitué
    Profil pro
    DBA-Administrateur système
    Inscrit en
    Août 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : DBA-Administrateur système

    Informations forums :
    Inscription : Août 2009
    Messages : 12
    Par défaut
    Citation Envoyé par anthony89 Voir le message
    Re-bonjour,

    J'ai répondu à ton précédent message, mais je te le ré-écris.

    tu peux essayer ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $tab_interlocuteur = explode(",", $sql_listing["interlocuteur"]);
    $sql = " SELECT * FROM contacts WHERE ";
    $or = "";
    foreach($tab_interlocuteur AS $interlocuteur)
    {
        $sql .= $or." nom = \"".$interlocuteur."\" ";
        $or = " OR ";
    }
    $s_sql = mysql_query($sql);
    while($r_sql = mysql_fetch_array($s_sql))
    {
        //ton code de traitement
    }
    J'espère que ce code pourra t'aider.

    Dans un premier temps, cela fonctionnera, sauf en cas de doublons au niveau des noms.

    Il faudra par la suite travailler avec des id pour éviter cela.

    Merci pour ta réponse

    J'ai essayé et ca ne marche pas , mais je pense que ca vient de moi , voila mon code :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
      $tab_interlocuteur=explode(",",$sql_listing["interlocuteur"]);
     $sql ="SELECT listing.interlocuteur,contacts.fixe FROM listing,contacts
     WHERE listing.interlocuteur=contacts.Nom AND listing.ID=".$id;
     
     
    $or="";
     
    foreach($tab_interlocuteur AS $interlocuteur)
    {
    $sql .=$or." nom =\"".$interlocuteur."\"";
    $or="OR";
    }
    $s_sql =mysql_query($sql,$link);
     
    while($r_sql=mysql_fetch_array($s_sql));
    {
     
    ?> 
    <h3>INTERLOCUTEUR</h3>
      <input type="hidden" name="id" value="<?php echo($res['ID']) ;?>">
      <table border="2" BORDERCOLOR="#0066FF" cellspacing="4" cellpadding="4">
      <tr align="center">
          <td>Nom</td>
          <td><input type="text" name="NOM" size="30" value="<?php echo($res['interlocuteur']) ;?>"disabled></td>
        </tr>
          <td>telephone</td>
          <td><input type="text" name="Telephone" size="40" value="<?php echo($res['fixe']) ;?>"disabled></td>
        </tr>
    	</table> 
     
      <br/>
     <?php
     }
    j'ai essayé egalement avec d'autres affichage que je voudrais du même type dans ma page et j'ai toujours une erreur de mysql_fetch_array (pourtant je n'ai rien oublier en parametre..) ainsi qu'une erreur de variable non defini sur sql_listing.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    Bonjour,

    Tu peux poster ton code complet stp ?
    Je pense qu'il manque des choses.

    Merci

  5. #5
    Membre habitué
    Profil pro
    DBA-Administrateur système
    Inscrit en
    Août 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : DBA-Administrateur système

    Informations forums :
    Inscription : Août 2009
    Messages : 12
    Par défaut
    Citation Envoyé par anthony89 Voir le message
    Bonjour,

    Tu peux poster ton code complet stp ?
    Je pense qu'il manque des choses.

    Merci
    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
    25
    26
    27
    28
    29
    30
    31
    32
     
     
     
    <?php
     } 
     
     
     
     $sql2 ="SELECT listing.interlocuteur,contacts.fixe FROM listing,contacts
     WHERE listing.interlocuteur=contacts.Nom AND listing.ID=".$id;
    $requete2 =mysql_query($sql2,$link);
     
    if($res=mysql_fetch_assoc($requete2));
    {
     
    ?> 
    <h3>INTERLOCUTEUR</h3>
      <input type="hidden" name="id" value="<?php echo($res['ID']) ;?>">
      <table border="2" BORDERCOLOR="#0066FF" cellspacing="4" cellpadding="4">
      <tr align="center">
          <td>Nom</td>
          <td><input type="text" name="NOM" size="30" value="<?php echo($res['interlocuteur']) ;?>"disabled></td>
        </tr>
          <td>telephone</td>
          <td><input type="text" name="Telephone" size="40" value="<?php echo($res['fixe']) ;?>"disabled></td>
        </tr>
    	</table> 
     
      <br/>
     <?php
     }
    ?>
    Je t'ai posté le code qui fonctionne dans le cas ou je n'ai pas a parser (une seule donnes dans le champ) , vu que page est un listing client (tres) long , je ne vais pas le poster surtout que ca fonctionne parfaitement ailleur il y a juste sur cette partie que j'aurais besoin de résoudre mon problème

    le code complet avec ta solution es tle code que j'ai déja posté

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    Bonjour,

    Merci pour ton post.

    Tu vas essayer ceci, je pense que ca fonctionnera.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    $sql_listing ="SELECT listing.ID, listing.interlocuteur FROM listing WHERE listing.ID=".$id;
    $s_sql_listing =mysql_query($sql_listing,$link);
    $r_sql_listing = mysql_fetch_array($s_sql_listing);
     
    //ici tu récupères le contenu explodé sous forme d'un tableau php
    $tab_interlocuteur = explode(",", $r_sql_listing["interlocuteur"]);
     
    $sql = " SELECT fixe FROM contacts WHERE ";
    $or = "";
    foreach($tab_interlocuteur AS $interlocuteur)
    {
        $sql .= $or." Nom = \"".$interlocuteur."\" ";
        $or = " OR ";
    }
    $requete2 = mysql_query($sql);
     
    if($res=mysql_fetch_assoc($requete2));
    {
     
    ?>
    <h3>INTERLOCUTEUR</h3>
    <input type="hidden" name="id" value="<?php echo($r_sql_listing['ID']) ;?>">
    <table border="2" BORDERCOLOR="#0066FF" cellspacing="4" cellpadding="4">
    <tr align="center">
    <td>Nom</td>
    <td><input type="text" name="NOM" size="30" value="<?php echo($r_sql_listing['interlocuteur']) ;?>"disabled></td>
    </tr>
    <td>telephone</td>
    <td><input type="text" name="Telephone" size="40" value="<?php echo($res['fixe']) ;?>"disabled></td>
    </tr>
    </table>
     
    <br/>
    <?php
    }

Discussions similaires

  1. Concat sur un champ numéric >0 affichage du 0
    Par Chihuahua dans le forum Langage SQL
    Réponses: 1
    Dernier message: 15/11/2006, 17h21
  2. Left join, champ null et affichage dans etat
    Par catoucat dans le forum Access
    Réponses: 3
    Dernier message: 03/07/2006, 02h58
  3. Verifier un champ a l affichage dans un etat
    Par virtuose dans le forum Access
    Réponses: 5
    Dernier message: 19/01/2006, 18h18
  4. tester si un champ de bdd est vide
    Par pekka77 dans le forum ASP
    Réponses: 8
    Dernier message: 28/06/2005, 16h14
  5. PB modification du type d'un champ ds BDD
    Par vanoou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/01/2005, 16h01

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