Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
J'ai une table nommée "infos" qui contient un champ "participant". Ce champ peut être vide ou contenir de 1 à plusieurs numéros. Les numéros correspondent à un identifiant unique "id_mb" de la table "membres", et sont sous la forme "-1-2-3-4-5-6".
Je veux extraire ce ou ces numéros, s’ils existent, et afficher leur correspondance (nom) de la table "membres".
Mais je n’arrive à afficher que le dernier nom enregistré, et moi je les veux tous ! Dans l’exemple "-1-2-3-4-5-6", je n’afficherais que le nom correspondant à 6 ?
Voici mon code
while($row = mysql_fetch_array($result))
{
//vérification du champ participant. Si non vide, on ira rechercher la correspondance dans la table "membres".
if (!empty($row['participant']))
{
$part = explode("-", $row['participant']);
$i = 0;
foreach ($part as $part2)
{
$part2 = ($part[$i]);
$i++;
}
$req="SELECT * FROM membres where id_mb like '$part2'";
$result2 = mysql_query($req,$link) or exit ('Erreur : '.mysql_error() );
while ($row2 = mysql_fetch_array($result2))
{
echo '<td>'.$row['titre'].'</td>'; // issu de la base infos
echo '<td>'.$row['texte'].'</td>'; // issu de la base infos
echo '<td>'.$row2['nom'].'</td>'; // issu de la base membres ..............................
Merci pour votre aide
Hors ligne
J'ai une table nommée "infos" qui contient un champ "participant". Ce champ peut être vide ou contenir de 1 à plusieurs numéros. Les numéros correspondent à un identifiant unique "id_mb" de la table "membres", et sont sous la forme "-1-2-3-4-5-6".
Premier défaut conceptuel, les colonnes d'une table doivent être des scalaires et non des données tabulaires.
Je veux extraire ce ou ces numéros, s’ils existent, et afficher leur correspondance (nom) de la table "membres".
Mais je n’arrive à afficher que le dernier nom enregistré, et moi je les veux tous ! Dans l’exemple "-1-2-3-4-5-6", je n’afficherais que le nom correspondant à 6 ?Voici mon code
$requete="SELECT * FROM infos ORDER BY date ASC";
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );while($row = mysql_fetch_array($result))
{
//vérification du champ participant. Si non vide, on ira rechercher la correspondance dans la table "membres".
if (!empty($row['participant']))
{
$part = explode("-", $row['participant']);
$i = 0;
foreach ($part as $part2)
{
$part2 = ($part[$i]);
$i++;
}
$req="SELECT * FROM membres where id_mb like '$part2'";
$result2 = mysql_query($req,$link) or exit ('Erreur : '.mysql_error() );
while ($row2 = mysql_fetch_array($result2))
{
echo '<td>'.$row['titre'].'</td>'; // issu de la base infos
echo '<td>'.$row['texte'].'</td>'; // issu de la base infos
echo '<td>'.$row2['nom'].'</td>'; // issu de la base membres ..............................
Encore un mauvais point : La guerre des étoiles.
Pourquoi utilser un compteur $i alors qu'avec foreach tu récupères déjà chaque couple clef-valeur ?
Pourquoi choisir mysql_fetch_array si c'est pour utiliser les index associatifs de mysql_fetch_assoc ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour Maljuna Kris,
Que veux-tu dire par "les colonnes d'une table doivent être des scalaires et non des données tabulaires" ?
J'ai testé et remplacé dans mon script "$row2 = mysql_fetch_array($result2);" par "$row2 = mysql_fetch_assoc($result2);", mais je n'ai pas de différence !
Par contre, si j'écris
j'obtient bien dans $value toutes mes enregistrements du champ participant.
Mais comment faire la relation avec l'autre table (id_mb), récupérer et afficher les champs correspondant et leurs valeurs ?
Merci
Dernière modification par t14 (10-02-2010 15:54:45)
Hors ligne
Combien de fois faudra-t'il dire que SELECT * est à bannir ?
$scalaire="Ceci est une donnée scalaire";
$tabulaire=array("Ceci","est,"une","donnée","tabulaire");
Une table ne doit pas comporter de colonnes répétitives, ni de colonne à donnée tabulaire.
Quand à la différence entre mysql_fetch_array() et mysql_fetch_assoc(), si tu ne la vois pas ton serveur lui la note, la deuxième est nettement moins gourmande en ressources.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Pages :: 1