je souhaite afficher toutes les annonces de l'utilisateur enregistré sur mon site ainsi que celles de ses collaborateurs (identifiés dans la table COLLABORATEURS).
Ma requete est la suivante :
SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination
FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_collaborateur=paperblog.id_utilisateur_source
WHERE collaborateurs.id_utilisateur=$user
UNION SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination
FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_utilisateur=paperblog.id_utilisateur_source
WHERE collaborateurs.id_collaborateur=$user AND collaborateurs.etat=1 ORDER BY paperblog.date ASC,paperblog.heure ASC"
Cela dit, SQL me renvoi une erreur qui est la suivante :
Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visib' at line 1
Si une ame charitable pouvait m'aider (ou plutot un connaisseur averti sur SQL), ce serait vraiment super sympa ??
En fait, j'ai essayer avec les parenthèses et c'est pareil :
Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') UNION (SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.vi' at line 1
pourtant j'suis persuadé que c'est une connerie, mais je vois pas ! lol !
voici le code PHP comme demandé (c'est chaud je galère depuis toute la nuit !lol) :
$user = $_SESSION['id_utilisateur'];
$db=mysql_select_db($database_dbprotect, $dbprotect)
or die ("La base de données ne peut etre selectionnée !");
@$start = $_REQUEST['start'];
if ($start=="")
{@$start = $_GET['start'];}
if(!$start) {$start=0;}
@$commande= $_REQUEST['commande']; // On récupere la commande sql passée soit par un formulaire soit par l'adresse
if($commande=="")
{@$commande="(SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_collaborateur=paperblog.id_utilisateur_source WHERE collaborateurs.id_utilisateur=$user) UNION (SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_utilisateur=paperblog.id_utilisateur_source WHERE collaborateurs.id_collaborateur=$user AND collaborateurs.etat=1)";}
$select_case = sprintf($commande);
$result_case = mysql_query($select_case, $dbprotect) or die ('Erreur : '.mysql_error() );
$total_case = mysql_num_rows($result_case);
@$page = $_REQUEST['page'];
if (!$page)
{@$page=1;}
$select_case = $commande." LIMIT $start,20";
$result_case = mysql_query($select_case) or die ('Erreur : '.mysql_error() );
$total_case = mysql_num_rows($result_case);
if($total_case) {
// début du tableau
echo '<table width="95%" border="0" cellspacing="0">'."\n";
// lecture et affichage des résultats, 1 résultat par ligne.
while($row_case = mysql_fetch_array($result_case)) {
echo '<tr bgcolor="#FFFFFF" onMouseOver="style.backgroundColor=\'#ffe7d6\'" onMouseOut="style.backgroundColor=\'\'">';
$utilisateur = $row_case['id_utilisateur_source'];
// requete sur la table UTILISATEURS (on récupère les infos sur l'utilisateur)
$utilisateur_query=sprintf("SELECT * FROM utilisateurs WHERE id_utilisateur='$utilisateur'"); // requête sur la base UTILISATEURS
$utilisateur_verif = mysql_query($utilisateur_query, $dbprotect) or die(mysql_error());
$row_utilisateur = mysql_fetch_assoc($utilisateur_verif);
$photo_utilisateur = $row_utilisateur['login'];
$filename = 'photos/'.$photo_utilisateur.'.jpg';
if (file_exists($filename))
{echo'<td align="center" valign="top" width="70"><a href="profil.php?user='.($row_case['id_utilisateur_source']).'"><img src="photos/'. $photo_utilisateur.'.jpg" alt="" width="60" height="75"/></a></td>';}
else {
echo'<td align="center" valign="top" width="70"><a href="profil.php?user='.($row_case['id_utilisateur_source']).'"><img src="photos/problog.jpg" alt="" width="60" height="75" style="border: 1px solid #996633"/></a></td>';
}
$tab = explode("-",$row_case['date']);
$annee = $tab[0];
$mois = $tab[1];
echo '</td>';
echo '</tr>';
}
echo '</table>'."\n";
// fin du tableau.
}
else echo '<font size="2" color="#996633"><b>Il y a actuellement aucune annonce dans votre paperblog !</b></font>';
// on libère le résultat
mysql_free_result($result_case);
@$start = $_REQUEST['start'];
if ($start=="")
{@$start = $_GET['start'];}
if(!$start) {$start=0;}
@$commande= $_REQUEST['commande']; // On récupere la commande sql passée soit par un formulaire soit par l'adresse
if($commande=="")
{@$commande= "SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_collaborateur=paperblog.id_utilisateur_source WHERE collaborateurs.id_utilisateur=$user UNION SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_utilisateur=paperblog.id_utilisateur_source WHERE collaborateurs.id_collaborateur=$user AND collaborateurs.etat=1 ORDER BY paperblog.date ASC,paperblog.heure ASC";}
$select_case = $commande;
$result_case = mysql_query($select_case) or die ('Erreur : '.mysql_error() );
$total_case = mysql_num_rows($result_case);
@$page = $_REQUEST['page'];
if (!$page)
{@$page=1;}
$db=mysql_select_db($database_dbprotect, $dbprotect)
or die ("La base de données ne peut etre selectionnée !");
@$start = $_REQUEST['start'];
if ($start=="")
{@$start = $_GET['start'];}
if(!$start) {$start=0;}
@$commande= $_REQUEST['commande']; // On récupere la commande sql passée soit par un formulaire soit par l'adresse
if($commande=="")
echo $commande;
{@$commande="(SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_collaborateur=paperblog.id_utilisateur_source WHERE collaborateurs.id_utilisateur=$user) UNION (SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_utilisateur=paperblog.id_utilisateur_source WHERE collaborateurs.id_collaborateur=$user AND collaborateurs.etat=1)";}
echo $commande;
$select_case = sprintf($commande);
echo $commande;
$result_case = mysql_query($select_case, $dbprotect) or die ('Erreur : '.mysql_error() );
echo $commande;
$total_case = mysql_num_rows($result_case);
echo $commande;
@$page = $_REQUEST['page'];
if (!$page)
{@$page=1;}
echo '</td>';
echo '</tr>';
}
echo '</table>'."\n";
// fin du tableau.
}
else echo '<font size="2" color="#996633"><b>Il y a actuellement aucune annonce dans votre paperblog !</b></font>';
// on libère le résultat
mysql_free_result($result_case);
@$start = $_REQUEST['start'];
if ($start=="")
{@$start = $_GET['start'];}
if(!$start) {$start=0;}
@$commande= $_REQUEST['commande']; // On récupere la commande sql passée soit par un formulaire soit par l'adresse
if($commande=="")
{@$commande= "SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_collaborateur=paperblog.id_utilisateur_source WHERE collaborateurs.id_utilisateur=$user UNION SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_utilisateur=paperblog.id_utilisateur_source WHERE collaborateurs.id_collaborateur=$user AND collaborateurs.etat=1 ORDER BY paperblog.date ASC,paperblog.heure ASC";}
$select_case = $commande;
$result_case = mysql_query($select_case) or die ('Erreur : '.mysql_error() );
$total_case = mysql_num_rows($result_case);
@$page = $_REQUEST['page'];
if (!$page)
{@$page=1;}
(SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_collaborateur=paperblog.id_utilisateur_source WHERE collaborateurs.id_utilisateur=) UNION (SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_utilisateur=paperblog.id_utilisateur_source WHERE collaborateurs.id_collaborateur= AND collaborateurs.etat=1)(SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_collaborateur=paperblog.id_utilisateur_source WHERE collaborateurs.id_utilisateur=) UNION (SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.visible, paperblog.id_utilisateur_destination FROM collaborateurs INNER JOIN paperblog ON collaborateurs.id_utilisateur=paperblog.id_utilisateur_source WHERE collaborateurs.id_collaborateur= AND collaborateurs.etat=1)Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') UNION (SELECT paperblog.annonce, paperblog.date, paperblog.heure, paperblog.vi' at line 1
Oui c'est sur... en tout cas, merci taguan de te pencher sur le sujet et de m'avoir apporter ces réponses.
En fait, je souhaite afficher toutes les annonces de l'utilisateur enregistré sur mon site ainsi que celles de ses collaborateurs (identifiés dans la table COLLABORATEURS).
Les messages sont enregistrés dans la table 'PAPERBLOG'
La table 'COLLABORATEURS' permet de valider quels utilisateurs sont "amis" (validé si le champ etat=1)
Donc, l'utilisateur 'TOTO' se connecte sur mon site (avec par ex: id_utilisateur=1).
J'aimerais afficher tous les messages (champs 'annonce', 'date', 'heure' de la table PAPERBLOG) de l'utilisateur TOTO ainsi que tous ses collaborateurs (validés dans la table COLLABORATEURS).
Peut-être serait-ce plus simple que je demande la requete SQL correspondant à mes attentes ??
Voici les tables :
UTILISATEURS
id_utilisateur
login
password
prenom
nom
etc...
PAPERBLOG
id_paperblog
id-utilisateur_source
id_utilisateur_destination
visible
annonce
date
heure
C'était bien la variable '$user' qui ne renvoyait rien !
J'ai donc corrigé cela en insérant une requete SQL (en haut de mon code d'origine) pour aller chercher la valeur du champ 'id_utilisateur' de ma table 'UTILISATEURS' afin de la récupérer dans ma variable '$user'.
Et le tour est joué ! Plus d'erreurs.
Le message qui suit est une réponse automatique activée par un modérateur.
Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.
Merci d'utiliser les balises de code
Bonjour,
Les forums du Site du Zér0 disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source.
Vous avez posté un code source sans utiliser cette fonctionnalité. Pourriez-vous éditer votre message en entourant votre code des balises <code > et </code > ?
Cela aura pour effet de "colorer" votre code et donc d'en faciliter grandement la lecture. Vous aurez ainsi beaucoup plus de chances d'avoir des réponses.
Voici un exemple de code non coloré avec la balise "citation" (mauvais exemple) :
Citation
int main(int argc, char *argv[])
{
long choixOperation;
printf("Choisissez l'operation a effectuer");
/* etc. */
}
Voici maintenant le même code coloré, si vous aviez utilisé la balise "code" (bon exemple) :
int main(int argc, char *argv[])
{
long choixOperation;
printf("Choisissez l'operation a effectuer");
/* etc. */
}
C'est plus clair n'est-ce pas ?
N'hésitez pas à éditer votre message pour changer la balise afin de colorer votre code.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Tutoriel complet MySQL !
Tutoriel complet MySQL !
Tutoriel complet MySQL !
Tutoriel complet MySQL !
Tutoriel complet MySQL !