Jointure qui marche pas
Résolu
kami_24
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
__acron__ Messages postés 60 Date d'inscription Statut Membre Dernière intervention -
__acron__ Messages postés 60 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
mon problème est le suivant:
j'essaye de récupérer des données d'une table avec des conditions issues d'une autre table c pourquoi j'utilise une jointures et voici le code:
mais la condition que j'ai posé ne marche pas (tablecc.manager='receiving_manager')
est ce que vous avez une idée?
mon problème est le suivant:
j'essaye de récupérer des données d'une table avec des conditions issues d'une autre table c pourquoi j'utilise une jointures et voici le code:
$s=mysql_query("SELECT * FROM tablecc, manager_approve WHERE manager_approve.ref_no='".$row['ref_no']."' AND tablecc.manager='receiving_manager'"); $data=mysql_fetch_array($s); echo $data['nom']; if(!empty($data['nom'])){ echo '<a href="stock/BSK'.$row['ref_no'].'.pdf">bsk'.$row['ref_no'].'</a>';} else {echo' <form name="remplir" method="POST" action="pending.php"> <input type="hidden" name="ref_no" value="'.$row['ref_no'].'" class="envoi"> <input type="submit" name="pending" value="pending_'.$row['ref_no'].'" class="envoi"> </form>';}
mais la condition que j'ai posé ne marche pas (tablecc.manager='receiving_manager')
est ce que vous avez une idée?
A voir également:
- Jointure qui marche pas
- Jointure excel - Guide
- Pb de jointure ✓ - Forum MySQL
- [Excel,vba,ado] faire une jointure de tables - Forum VB / VBA
- Jointure en php - Forum PHP
- PHP Mysql jointure ✓ - Forum MySQL
13 réponses
peux-tu poster les structures de tes 2 tables stp ?
SHOW CREATE TABLE tablecc;
SHOW CREATE TABLE manager_approve;
Un conseil, évite les jointure comme ça, écris plutôt "[...] FROM tablecc JOIN manager_approve ON ([...etc...])", plutot que "[...] FROM tablecc, manager_approve WHERE [...]".
SHOW CREATE TABLE tablecc;
SHOW CREATE TABLE manager_approve;
Un conseil, évite les jointure comme ça, écris plutôt "[...] FROM tablecc JOIN manager_approve ON ([...etc...])", plutot que "[...] FROM tablecc, manager_approve WHERE [...]".
pour la table manager_approve:
CREATE TABLE IF NOT EXISTS 'manager_approve' (
'ref_no' int(11) NOT NULL,
'mail' varchar(50) NOT NULL,
'date_approve' datetime NOT NULL,
'remark' text NOT NULL
)
pour la table tablecc:
CREATE TABLE IF NOT EXISTS 'tablecc' (
'id' int(11) NOT NULL AUTO_INCREMENT,
'cost_center' varchar(11) DEFAULT NULL,
'operation' varchar(9) DEFAULT NULL,
'manager' varchar(50) NOT NULL,
'name' varchar(21) DEFAULT NULL,
'email' varchar(27) DEFAULT NULL,
PRIMARY KEY ('id')
)
CREATE TABLE IF NOT EXISTS 'manager_approve' (
'ref_no' int(11) NOT NULL,
'mail' varchar(50) NOT NULL,
'date_approve' datetime NOT NULL,
'remark' text NOT NULL
)
pour la table tablecc:
CREATE TABLE IF NOT EXISTS 'tablecc' (
'id' int(11) NOT NULL AUTO_INCREMENT,
'cost_center' varchar(11) DEFAULT NULL,
'operation' varchar(9) DEFAULT NULL,
'manager' varchar(50) NOT NULL,
'name' varchar(21) DEFAULT NULL,
'email' varchar(27) DEFAULT NULL,
PRIMARY KEY ('id')
)
pour faire plus propre tu devrais écrire:
"SELECT * FROM manager_approve
JOIN tablecc ON (tablecc.manager='receiving_manager')
WHERE manager_approve.ref_no='".$row['ref_no']."'"
dis moi si ca marche... sinon c'est que tu n'as pas d'entré dans tablecc avec manager='reveiving_manager'... ou pas de "manager_approve.ref_no='".$row['ref_no']."'"
"SELECT * FROM manager_approve
JOIN tablecc ON (tablecc.manager='receiving_manager')
WHERE manager_approve.ref_no='".$row['ref_no']."'"
dis moi si ca marche... sinon c'est que tu n'as pas d'entré dans tablecc avec manager='reveiving_manager'... ou pas de "manager_approve.ref_no='".$row['ref_no']."'"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je profite de poser une autre question sur le méme code dans l'URL=href="stock/BSK'.$row['ref_no'].'.pdf" ça c' bien l'emplacement des fichies pdf qui ont pour nom BSK1,BSK2,BSK3....mais qu'on je clique sur l'url rien ne s'ouvre..
ca fait partie des questions que je me posais.. es-tu sûr que $row['ref_no'] contient une valeur ?
sinon quelle est l'URL de ton site, essaie avec des chemins absolues.
sinon quelle est l'URL de ton site, essaie avec des chemins absolues.
oui oui $row['ref_no'] contient bien une valeur je l'ai testé par echo ..
l'url de mon site j'ai pa bien comprie ta question..
l'url de mon site j'ai pa bien comprie ta question..
et bien tu mets: stock/BSK1.pdf dans le lien, hors c'est une chemin relatif, si ton site à une URL du style http://site.com/truc/ et que tes PDF sont à http://site.com/stock/BSK1.pdf tu ne les auras pas, vu que tu va taper dans http://site.com/truc/stock/BSK1.pdf
oui mais le fichier qui contient mon code c lui méme qui contient le fichier stock alors c un chemin relatif..
ah oui là j'ai oublier de dire que je l'ai modifier ce name par nom j'ai croyé moi aussi que c ça le poblème pour ne pas mélanger le name de tablecc avec le name de manager_approve ..ms bon ça reste le méme problème..
je vois pas de name dans manager_approve..
D'ailleurs qu'est ce qui te fait dire que ca foire ?
Et es-tu sur d'avoir les bonnes entrées dans tes tables, post un select * des 2 tables stp... ca devient bizarre là...
D'ailleurs qu'est ce qui te fait dire que ca foire ?
Et es-tu sur d'avoir les bonnes entrées dans tes tables, post un select * des 2 tables stp... ca devient bizarre là...
re,
voilà j'ai résolue le problème est effectivement j'ai utilisé la requête que tu m'a proposé acron et ça a marché et en faite j'avais oublié une condition..
donc voilà la requéte juste:
donc c bon merci beaucoup
voilà j'ai résolue le problème est effectivement j'ai utilisé la requête que tu m'a proposé acron et ça a marché et en faite j'avais oublié une condition..
donc voilà la requéte juste:
$s=mysql_query("SELECT * FROM tablecc JOIN manager_approve ON (tablecc.manager='receiving_manager') WHERE manager_approve.ref_no='".$row['ref_no']."' AND tablecc.name=manager_approve.nom");
donc c bon merci beaucoup