Requête php sur deux bases

Signaler
Messages postés
9
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2012
-
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
-
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

Messages postés
20
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
18 juin 2010

Pourquoi 2 tables? Quelles différences entre expo et expo1?
Messages postés
9
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2012

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.
Messages postés
20
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
18 juin 2010

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...
Messages postés
9
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2012

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..:)
Messages postés
20
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
18 juin 2010

Peut tu exporter tes 2 tables pour que je puisse y voir plus clair?
Messages postés
9
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2012

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.
Messages postés
20
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
18 juin 2010

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
Messages postés
9
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2012

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
Messages postés
20
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
18 juin 2010

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 ;-)
Messages postés
9
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2012

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
Messages postés
20
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
18 juin 2010

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.
Messages postés
9
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
16 janvier 2012

mais je ne souhaite pas insérer les tables.
Messages postés
20
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
18 juin 2010

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)
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
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....