Probleme avec un CREATE TEMPORARY TABLE
elid
Messages postés
4
Date d'inscription
Statut
Membre
-
elid Messages postés 4 Date d'inscription Statut Membre -
elid Messages postés 4 Date d'inscription Statut Membre -
Bonjour,
Je suis sur un site multilingue, ce qui impose pas mal de jointures de tables.
Plutôt que de faire 2 requêtes je souhaitais faire une table temporaire
mais voilà dans phpMyAdmin tout se passe bien mais dans php aucun retour !
$qu = "CREATE TEMPORARY TABLE temp ";
$qu .= "SELECT * FROM videos LEFT JOIN dicoindex ON(id=idvideo) WHERE idlangue='20'; ";
$qu .= "SELECT * FROM temp LEFT JOIN dico ON(iddico=dico.id) ORDER BY orderid ASC";
$rez = mysql_query($qu);
$g = mysql_fetch_assoc($rez);
j'ai beau faire un print_r($g) un echo mysql_error et un echo de rez aucun retour
comme vous l'aurez surement compris, je tape dans 3 tables videos ma liste de videos, dicoindex les index liés aux videos et au dico en fonction des idlangues et dico mon dictionnaire
Je ne vois pas d'ou ça peut venir quelqu'un aurait une idée ?
Je suis sur un site multilingue, ce qui impose pas mal de jointures de tables.
Plutôt que de faire 2 requêtes je souhaitais faire une table temporaire
mais voilà dans phpMyAdmin tout se passe bien mais dans php aucun retour !
$qu = "CREATE TEMPORARY TABLE temp ";
$qu .= "SELECT * FROM videos LEFT JOIN dicoindex ON(id=idvideo) WHERE idlangue='20'; ";
$qu .= "SELECT * FROM temp LEFT JOIN dico ON(iddico=dico.id) ORDER BY orderid ASC";
$rez = mysql_query($qu);
$g = mysql_fetch_assoc($rez);
j'ai beau faire un print_r($g) un echo mysql_error et un echo de rez aucun retour
comme vous l'aurez surement compris, je tape dans 3 tables videos ma liste de videos, dicoindex les index liés aux videos et au dico en fonction des idlangues et dico mon dictionnaire
Je ne vois pas d'ou ça peut venir quelqu'un aurait une idée ?
Configuration: Mac OS X Safari 525.18 server local MAMP
2 réponses
-
Bonjour,
Essaies de modifier ton script de cette façon :
/////////////////////////////////////////////////////
$qu = "CREATE TEMPORARY TABLE temp ";
$qu .= "SELECT videos.* FROM videos LEFT JOIN dicoindex ON(id=idvideo) WHERE idlangue='20'; ";
$rez = mysql_query($qu);
$qu = "SELECT * FROM temp LEFT JOIN dico ON(iddico=dico.id) ORDER BY orderid ASC";
$rez = mysql_query($qu);
$g = mysql_fetch_assoc($rez);
////////////////////////////////////////////////////
Bonne chance. -
Résolu
J'ai finalement opté pour 2 INNER JOIN
SELECT V.* FROM dico AS D
INNER JOIN dicoindex AS I ON(iddico=D.id) AND I.idlangue='20'
INNER JOIN videos as V ON I.idvideo=V.id
ORDER BY orderid ASC
ça marche nickel
Mais merci beaucoup