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   -
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:
$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

  1. __acron__ Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   4
     
    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 [...]".
    0
  2. kami_24 Messages postés 46 Statut Membre
     
    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')
    )
    0
  3. __acron__ Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   4
     
    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']."'"
    0
  4. kami_24 Messages postés 46 Statut Membre
     
    d'accord acron merci pour ta réponse je vai la testé et te répondre plus tard..
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kami_24 Messages postés 46 Statut Membre
     
    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..
    0
  7. __acron__ Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   4
     
    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.
    0
  8. kami_24 Messages postés 46 Statut Membre
     
    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..
    0
  9. __acron__ Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   4
     
    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
    0
  10. kami_24 Messages postés 46 Statut Membre
     
    oui mais le fichier qui contient mon code c lui méme qui contient le fichier stock alors c un chemin relatif..
    0
  11. __acron__ Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   4
     
    au fait je viens de voir un truc mais tu fais $data['nom'] alors que dans ta table c'est 'name'...
    0
  12. kami_24 Messages postés 46 Statut Membre
     
    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..
    0
  13. __acron__ Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   4
     
    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à...
    0
  14. kami_24 Messages postés 46 Statut Membre
     
    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
    0
    1. __acron__ Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   4
       
      cool. oublie pas de mettre "résolu" !
      a+
      0