Requête php sur deux bases

bl75013 Messages postés 9 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 16 janvier 2012 - 7 juin 2010 à 19:45
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 - 11 juin 2010 à 12:26
bonsoir,
je débute, merci de votre compréhension
j'ai deux tables
je souhaite faire une requête sur ces 2 tables si dans une de ces tables aucuns renseignements on affiche un texte.
mon code :
$sql = ('SELECT * FROM `bdd`.`expo`, `bdd`.`expo1` ORDER BY id DESC LIMIT 0, 5');
$req = mysql_query($sql)or die(mysql_error());
$nb_expo = mysql_num_rows($req);
$str = "Pas d\'expositions actuellement, mais si vous désirez être tenu au courant, merci de m\'adresser un mail.";
if ($nb_expo == 0)
{
echo stripslashes($str);
}

cela marche si aucunes tables n'est renseigné mais si on trouve un renseignement mon texte s'affiche ?????????????????

14 réponses

cs_Breub Messages postés 20 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 18 juin 2010
8 juin 2010 à 11:40
Pourquoi 2 tables? Quelles différences entre expo et expo1?
0
bl75013 Messages postés 9 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 16 janvier 2012
8 juin 2010 à 16:59
bjr,
dans mon apprentissage (douloureux) pour présenter mes expos, j'ai un problème pour présenter mes images accompagnant mes expos si elles sont dans la même table.
donc, j'ai crée deux tables ainsi je n'ai pas de problèmes mes images s'affichent bien.
mais je souhaite faire cette requête dont le résultat doit indiquer le message quand il n' y a pas d'expo dans ces tables.

merci par avance de votre intérêt.
0
cs_Breub Messages postés 20 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 18 juin 2010
9 juin 2010 à 12:32
Je ne pense pas avoir tout saisi ;

CEPENDANT quand tu fais une requête sur 2 tables tu dois être capable de les associer (je suppose qu'un lien existe entre expo et expo1), de faire une jointure.

C'est à dire un champs qui sera commun à tes 2 tables.

Ta requête doit être du genre :

SELECT * 
FROM expo, expo1 
WHERE expo.champCommun = expo1.champCommun (jointure)
ORDER BY id DESC


Dis moi si ça t'aide...ou pas...
0
bl75013 Messages postés 9 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 16 janvier 2012
10 juin 2010 à 13:17
bjr,
non pas vraiment,
rappel de mon but,
si il n'y a pas d'infos présentent dans ces deux tables, on affiche le texte.
les deux tables comportent des champs communs
type titre par ex.
Merci pour regard
si tu as solution, suis preneur..:)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Breub Messages postés 20 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 18 juin 2010
10 juin 2010 à 13:24
Peut tu exporter tes 2 tables pour que je puisse y voir plus clair?
0
bl75013 Messages postés 9 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 16 janvier 2012
10 juin 2010 à 14:24
Les deux tables sont sur la même bdd (mysql) chez ovh.
Table expo
Champs id (int11) (auto_increment)
Champs titre (text) utf8_unicode_ci not null
Champs datedbt
Champs datefin
Champs comment (text)
Champs imb (blob)
Key primaire sur id

la table expo1
la copie conforme.
0
cs_Breub Messages postés 20 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 18 juin 2010
10 juin 2010 à 14:52
Dans ce cas :

$sql = "SELECT COUNT(*) FROM expo, expo1
WHERE expo.id = expo1.id"

Si ça te renvoie 0 c'est qu'il n'y a pas d'expos. Par contre je comprends encore moins pourquoi il y a 2 tables si elles sont identiques. L'analyse est à revoir je pense. Bon courage
0
bl75013 Messages postés 9 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 16 janvier 2012
10 juin 2010 à 18:01
re,
j'avais essayé ça mais ne fonctionne pas.
le message s'affiche même si il y a une ou deux infos présentes
0
cs_Breub Messages postés 20 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 18 juin 2010
11 juin 2010 à 10:01
En entrant ta requête sous mysql y a t-il la réponse souhaité (cad 1 ou 2...)

Si oui c'est ton traitement qui n'est pas bon :

$sql = "SELECT * FROM expo, expo1
WHERE expo.id = expo1.id";

$query = mysql_query($sql) or die(mysql_error());

if(mysql_num_rows($query) == 0)
{
    echo "Pas d'expositions actuellement, mais si vous désirez être tenu au courant, merci de m'adresser un mail.";
}


Voila ;-)
0
bl75013 Messages postés 9 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 16 janvier 2012
11 juin 2010 à 10:28
re,
tout d'abord merci de t'intéresser à mon cas.
Si les champs sont les mêmes dans les deux tables,
en revanche les contenus sont différents et les id ne correspondent pas.
ce que je n'arrive pas à faire est :
on vérifie si présence info dans les tables
si pas d'infos dans les tables
résultat on affiche le texte
soit faire des conditions

à plus et encore merci
0
cs_Breub Messages postés 20 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 18 juin 2010
11 juin 2010 à 10:38
Ah ok en fait l'idéal serait de réunir les deux tables en faisant un
INSERT into expo VALUES(SELECT * FROM expo1)

Comme ça tu n'aurais qu'une table et tu pourrais faire un SELECT * FROM expo
avec le même résonnement qu'au début.
0
bl75013 Messages postés 9 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 16 janvier 2012
11 juin 2010 à 11:19
mais je ne souhaite pas insérer les tables.
0
cs_Breub Messages postés 20 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 18 juin 2010
11 juin 2010 à 11:23
Pour quelle raison précisément? Auquel cas tu peux toujours les dupliquer
en faisant

INSERT IGNORE into expo VALUES(SELECT * FROM expo1);

INSERT IGNORE into expo1 VALUES(SELECT * FROM expo)
0
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 3
11 juin 2010 à 12:26
Bonjour je ne sais pas si ca peut t'aider mais as tu essayer de faire 2 requête différentes pour tester si il y a des info dedans et si il n'y a aucuns résultats retourner par tes 2 requêtes tu affiche le texte et si une les requêtes retournent des enregistrements alors tu fais ta requête avec les 2 tables.



Personne ne peut se permettre de juger l'autre....
0
Rejoignez-nous