Probleme de select

cs_patrick_deb Messages postés 5 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 4 janvier 2007 - 26 déc. 2006 à 17:53
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 - 27 déc. 2006 à 20:27
Bonjour,


J'ai élaborer ce script:


?>
<?php
// recherche images 
$etoile='*';
$t_images='produit';
$reference='valsol001'; 


echo 'Avant la query','
';
echo $etoile,'
';
echo $t_images,'
';
echo $reference,'
';


//$query = "SELECT $etoile' from '$t_images' WHERE ref_produits= '$reference";
$query = mysql_query("select * FROM'$t_images' where ref_produits='$reference'");
echo '
','Apres le query avant la result','
';
echo $etoile,'
';
echo $t_images,'
';
echo $reference,'
';
echo $query,'
','
';




$result = mysql_query ($query) or die('Erreur : '.mysql_error());
echo '
','Apres le result','
';
echo $etoile,'
';
echo $t_images,'
';
echo $reference,'
';
//$html .= "</form>"
//echo $html
echo $query
?>


<?
   // fermeture de la base qui a été ouverte avec l'identificateur $connexion
   mysql_close($connexion);
?>



</html>


et quand je l'execute il me sort cette erreur :


Avant la query
*
produit
valsol001


Apres le query avant la result
*
produit
valsol001




Erreur : Query est vide


Sachant que quand je fais la meme requete sur mes tables il me sort un enregistrement


Y aurait il une erreur dans le codage de cette instruction:
$query = mysql_query("select * FROM'$t_images' where ref_produits='$reference'");?
ou dans celle là
$result = mysql_query ($query) or die('Erreur : '.mysql_error());?


Merci pour votre aide

5 réponses

juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
26 déc. 2006 à 20:36
Salut,

Inutile de poster plusieurs fois, il faut juste patienter un peu ou nettoyer son cache.

$query = mysql_query("select * FROM'$t_images' where ref_produits='$reference'");
$result = mysql_query ($query) or die('Erreur : '.mysql_error());

Le prototype de la fonction mysql_query:
resource mysql_query ( string query [, resource link_identifier] )

Là tu as injecté une ressource MySQL dans une entrer qui doit etre du type String, donc chaine de caractére.

$requette = 'SELECT `' . $etoile . '` FROM `' . $t_images . '` WHERE `ref_produits`=' . $reference; // <-- Ceci est une String

$query = mysql_query($requette); // <-- $query sera une "Resource", l'entrer "link_identifier" est facultatif.


Mise à part :

La reponse à ton code est la fonction mysql_fetch_array() :
http://fr3.php.net/manual/fr/function.mysql-fetch-array.php
0
cs_mfaraday Messages postés 144 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 4 janvier 2010
27 déc. 2006 à 13:37
Salut

Juste une histoire de chipoter un peu

Mais "SELECT *" serait plus gourmand en ressource que "SELECT truc, machin" et puis logiquement si tu as 50 champs mais que tu n'en affiche que 2, il n'y a pas grande utilité.

Je ferme la parenthèse.

Flo
0
cs_patrick_deb Messages postés 5 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 4 janvier 2007
27 déc. 2006 à 15:49
Réponse à 195941 juki_webmaster 

J'ai mis ma rdemande plusieur fois pour le plus de monde la voie comme s'est une requate qui pouvait entrer dans plusieurs domaines de discussions et non pas, comme tu le penses, pour avoir une réponse rapide.

Ensuite j'ai essayé ta requete et je me retrouve avec l'erreur suivante:
Erreur : Champ '*' inconnu dans field list.

J'ai vue que quand je faisias un echo ($requete) j'ai:
SELECT `*` FROM `produit` WHERE `ref_produits` =valsol001
c'est normal les '' entre * produit(nom de ma table) et ref_produit (colonne de ma table)

merci pour ton aide

Mon nouveu script:
<?php

// recherche images
$etoile
= '*'
;
$t_images
='produit'
;
$reference
= 'valsol001'
;

echo 'Avant la query'
,'
'
;

echo$etoile
,'
'
;

echo$t_images
,'
'
;

echo$reference
,'
'
;

//$query = "SELECT $etoile' from '$t_images' WHERE ref_produits= '$reference";
$requete
= 'SELECT `'
.$etoile
.'` FROM `'
.$t_images
.'` WHERE `ref_produits` = '
. $reference
;

//$query = mysql_query("select * FROM'$t_images' where ref_produits= '$reference'");
echo '
'
, 'Apres le query avant la result'
,'
'
;

echo$etoile
,'
'
;

echo$t_images
,'
'
;

echo$reference
,'
'
;

echo$requete
,'
'
,'
'
;

$query
=mysql_query
($requete
)ordie
('Erreur : '
.mysql_error
());

//$result = mysql_query ($query) or die('Erreur : '.mysql_error());
echo '
'
, 'Apres le result'
,'
'
;

echo$etoile
,'
'
;

echo$t_images
,'
'
;

echo$reference
,'
'
;

//$html . = "</form>"
//echo $html
echo$query

?>
0
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
27 déc. 2006 à 16:06
Arf oui désolé.

Voila la bonne requette :

$requete = 'SELECT ' . $etoile . ' FROM `' . $t_images . '` WHERE `ref_produits`= \'' . $reference . '\'';

Le message de Mfaraday te sera trés pertinant.

http://fr3.php.net/mysql (la doc dont tu as besoin)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
27 déc. 2006 à 20:27
$requete = "SELECT  $etoile FROM  $t_images  WHERE  ref_produits= \''  $reference\''";
0
Rejoignez-nous