Requête sql vers 2 tables

Petit nouveau ! | 2 Messages

15 mars 2007, 15:06

Bonjour à tous,
Je suis oscien (newbies), mais sur le forum concerné, cette question sort (à priori) du domaine de ce moteur.

Voici donc ma question
Dans le but d'afficher les infos fabricants (image, nom, url et description) en page index.php,

j'ai remplacé

Code : Tout sélectionner

// Get the right image for the top-right $image = DIR_WS_IMAGES . 'table_background_list.gif'; if (isset($HTTP_GET_VARS['manufacturers_id'])) { $image = tep_db_query("select manufacturers_image from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'"); $image = tep_db_fetch_array($image); $image = $image['manufacturers_image'];
Qui appelait une image

par

Code : Tout sélectionner

// Get the right image for the top-right if (isset($HTTP_GET_VARS['manufacturers_id'])) { $manufacturers_query = tep_db_query("select m.manufacturers_image as image, m.manufacturers_name as name, mi.manufacturers_url as url, mi.manufacturers_description as description from " . TABLE_MANUFACTURERS . " m, " . TABLE_MANUFACTURERS_INFO . " mi where mi.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'"); $manufacturers = tep_db_fetch_array($manufacturers_query);
Qui appelle l'image, le nom, l'url et la description du fabricant.

J'ai ajouté un champ manufacturers_description à la table manufacturers_info, et j'ai inséré directement dans la bdd (manufacturers_info) le texte de description.

Mais le texte appelé par la ligne ci-dessous n'apparaît pas :

Code : Tout sélectionner

<tr> <td class="main"><?php echo $manufacturers['description']; ?></td> </tr>
Par contre, les autres variables image, name, et url apparaissent correctement

Autre info, en faisant 2 requêtes (pour la table manufacturers et pour manufacturers_info) tout s'affiche correctement.

Pourriez vous m'aider à écrire correctement 1 requête appelant ces 2 tables ?

Merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 mars 2007, 16:07

A première vue ta requête à l'air bonne, as-tu essayé de l'afficher et de l'exécuter directement dans ta base de données pour voir ce qu'elle retournait ?
Tu peux également faire un print_r() de $manufacturers pour voir les index et valeurs qu'il contient :)


Ca ne changera rien au problème, mais tu peux virer le (int), ca ne sert à rien de caster ta variable en nombre pour la concaténer dans une chaine de caractère. Tu peux également virer les apostrophes s'il s'agit d'un nombre :
$sql = "SELECT m.manufacturers_image as image, m.manufacturers_name as name, mi.manufacturers_url as url, mi.manufacturers_description as description 
  FROM " . TABLE_MANUFACTURERS . " m, " . TABLE_MANUFACTURERS_INFO . " mi 
  WHERE mi.manufacturers_id = m.manufacturers_id 
  AND m.manufacturers_id = " . $_GET['manufacturers_id'] ;
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 2 Messages

15 mars 2007, 17:07

Merci pour tes conseils Ryle, je m'en vais de ce pas tester tout ça :)