PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 22-10-2009 13:05:26

t14
Membre
Inscription : 10-09-2009
Messages : 96

requête "LEFT JOIN"

Bonjour,

Dans mon script de lecture de base, je lis 2 tables avec jointure. Si un enregistrement de la 1° table (manifestations) n'a pas de correspondance dans la 2° table (upload), cet enregistrement ne s'affichera pas.

Que faut-il rajouter dans la requête pour que le contenu de la table "manifestation"s s'affiche même si il n'y a pas de correspondance dans la table "upload" ? J'ai essayé en posant deux requête, mais ça ne fonctionne pas .... hmm

Voici mon code :


$req="SELECT manifestations.id, upload.id_liaison FROM manifestations LEFT JOIN upload ON manifestations.id=upload.id_liaison";
$res = mysql_query($req,$link) or exit ('Erreur : '.mysql_error() );
if(!empty($res)) 
 {
$requete="SELECT manifestations.id, manifestations.jour , manifestations.heure ,manifestations.datefr ,manifestations.titre ,manifestations.texte , upload.id_liaison, upload.lien_fichier, upload.fichier, upload.extension
FROM manifestations LEFT JOIN upload ON manifestations.id=upload.id_liaison
ORDER BY manifestations.date ASC"
;
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );

$idEnCours = 0;
while($row = mysql_fetch_array($result))
{
if( $idEnCours != $row['id_liaison'] )
{
if ($idEnCours = $row['id_liaison']);

// "trim" enlève les espaces pouvant être contenu dans le champs "datefr"
$tmp = trim($row['datefr']);
$tmp2 = trim($row['heure']);
if(empty($tmp))
{
echo '<b><u>'.$row['titre'].'</u></b><p>';
}
elseif(empty($tmp2))
{
echo '<b><u>'.$row['jour'].' '.$row['datefr'].' : '.$row['titre'].'</u></b><p>';
}
else
{
echo '<b><u>'.$row['jour'].' '.$row['datefr'].' à '.$row['heure'].' : '.$row['titre'].'</u></b><p>';
}
echo nl2br($row['texte']);
echo '<p>';
//---------affichage de lélément upload---------
echo '<div class="centrer">';
}
if (in_array($row['extension'], array( '.jpg', '.JPG', '.png', '.PNG', '.jpeg', '.JPEG', '.gif', '.GIF')))
{
echo '<a href ="http://xxxxx ' . $row['lien_fichier'] . '"><img src="http://xxxxxx' . $row['lien_fichier'] . '" /></a>';
echo '  ';
}
elseif (in_array($row['extension'], array( '.doc', '.DOC', '.pdf', '.PDF', '.txt', '.TXT')))
{
echo '<a href ="http://xxxxx' . $row['lien_fichier'] . '"><img src="../../../images/commande.gif" /></a>';
}
} }

else
{
while($row = mysql_fetch_array($res))
{      
// "trim" enlève les espaces pouvant être contenu dans le champs "datefr"
$tmp = trim($row['datefr']);
$tmp2 = trim($row['heure']);
if(empty($tmp))
{
echo '<b><u>'.$row['titre'].'</u></b><p>';
}
elseif(empty($tmp2))
{
echo '<b><u>'.$row['jour'].' '.$row['datefr'].' : '.$row['titre'].'</u></b><p>';
}
else
{
echo '<b><u>'.$row['jour'].' '.$row['datefr'].' à '.$row['heure'].' : '.$row['titre'].'</u></b><p>';
}      
        echo nl2br($row['texte']);    
}
}
 

Hors ligne

#2 22-10-2009 18:58:14

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : requête "LEFT JOIN"

Saluton,

t14 a écrit :

Que faut-il rajouter dans la requête pour que le contenu de la table "manifestation"s s'affiche même si il n'y a pas de correspondance dans la table "upload" ?

Rien.


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

#3 23-10-2009 12:13:34

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : requête "LEFT JOIN"

Maljuna Kris a écrit :

Saluton,

t14 a écrit :

Que faut-il rajouter dans la requête pour que le contenu de la table "manifestation"s s'affiche même si il n'y a pas de correspondance dans la table "upload" ?

Rien.

Dans ce cas, je vais m'exprimer un peu plus meilleur :

Que faut-il modifier dans la requête pour que le contenu de la table "manifestations" s'affiche même si il n'y a pas de correspondance dans la table "upload" ?

smile

Hors ligne

#4 23-10-2009 12:42:08

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : requête "LEFT JOIN"

Désolé, toujours rien.

FROM manifestations LEFT JOIN upload

retourne les colonnes des lignes de la table manifestations et, pour les colonnes associées de la table upload, leur contenu ou NULL quand la jointure n'opère pas sur certaines lignes.


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

Pied de page des forums