Jointure qui marche pas
Résolu
kami_24
Messages postés
46
Statut
Membre
-
__acron__ Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
__acron__ Messages postés 39 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?
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 [...]". -
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')
) -
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']."'" -
d'accord acron merci pour ta réponse je vai la testé et te répondre plus tard..
-
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. -
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.. -
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..
-
au fait je viens de voir un truc mais tu fais $data['nom'] alors que dans ta table c'est 'name'...
-
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à... -
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:
$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