Rechercher : dans
Par :

Probleme avec un CREATE TEMPORARY TABLE

Dernière réponse le 14 mai 2008 à 13:42:24 elid, le 14 mai 2008 à 11:29:35 
 Signaler ce message aux modérateurs

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 ?

Configuration: Mac OS X
Safari 525.18
server local MAMP

Meilleures réponses pour « probleme avec un CREATE TEMPORARY TABLE » dans :
SQL - Création de table Voir Le SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...

1

byakhlefncr, le 14 mai 2008 à 13:35:20

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épondre à byakhlefncr

2

 elid, le 14 mai 2008 à 13:42:24

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

Répondre à elid
Collection CommentÇaMarche.net