Salut,
Je recherche le moyen de selectionner (en php) le contenu de 2 tables en même temps (faire une sorte de tirage en vrac), sans tri.
J'ai essayé ça mais en vain :
$bdd->query("SELECT * FROM Table1, Table2");
J'ai essayé d'utiliser UNION/UNION ALL mais ça ne marche pas bien entendu ;)
Merci de m'éclairer :)
Fais tout simplement un :
SELECT * FROM table1, table2 WHERE table1.id=table2.id
Bonsoir,
Hum je comprend pas trop pourquoi tu dis que le select sur deux tables ne fonctionne pas ... Pour que ceci fonctionne il faut que la construction de tes tables soit semblables.
Si tu veux de l'aide donne nous un exemple concret.
Cordialement
Salut, merci de ta réponse. Dans un cas concret : je veux tirer deux types de tables sur la page recherche.php : la table test et la table actualités. La configuration des deux tables est presque identique (la table test contient plus de champs mais les champs que je veux tirer sont identiques pour les deux).
Un petit peu de code :
<?php
$reponse = $bdd->query("SELECT * FROM Actualites");
WHILE ($donnees = $reponse->fetch())
{
?>
<?php echo $donnees'Titre']; ?>
<?php
}
$reponse->CloseCursor();
?>
Et donc je voudrais tirer le titre des actualités mais aussi des tests, de manière non triée/aléatoire (que les actualitées soient mélangées avec les tests)
Bonjour, tu peux faire un "UNION" :
$query = mysql_query("(SELECT id,type FROM Table1) UNION (SELECT id,type FROM Table2) ORDER BY RAND()");
J'espère avoir répondu à t'as question :)
NODsk
Pour récupérer toutes les colonnes de chaque table, il te faut le préciser pour chaque table, ce qui donne:
$bdd->query("SELECT actualites.*, tests.* FROM actualites, tests ORDER BY RAND()");
Bonjour, si les structures de tes tables sont legerement differentes, pourquoi ne pas mettre tes valeurs dans un tableau PHP et en faire ce que tu veux apres, tri ou melange ... ?
Voici un petit exemple
SELECT * FROM table1 INNER JOIN table2
SELECT * FROM table1 INNER JOIN table2 WHERE table1.id = table2.id