Code deffectueux : select from

  • Auteur de la discussion Auteur de la discussion catseyes
  • Date de début Date de début
Nouveau WRInaute
bonjour,
mon code ne marche pas et je n'ai pas de message d'erreur !
Il m'affiche simplement l'echo "Nous n'avons pas trouvé de partenaires dans cette catégorie."

Code:
<table width="80%" border="0" align="center" cellpadding="1" cellspacing="4">
  <tr valign="top"> 
    <td colspan="3" class="titre"> <table width="100%" border="0" cellpadding="0" cellspacing="0" >
        <tr> 
          <td class="tetiere" align="center" >RESTAURANTS</td>
        </tr>
      </table>
      <p></p>
      <p></p>
      Les restaurants de Pau</td>
  </tr>
  <tr> 
    <td colspan="3" height="20">&nbsp;</td>
  </tr>
  <?php 
$nb=10; //nombre d'enregistrement par page 
define('DB_SERVER', 'mysql5-3'); // serveur mysql
			define('DB_SERVER_USERNAME', 'monlog'); // nom d'utilisateur
			define('DB_SERVER_PASSWORD', 'pass'); // mot de passe
			define('DB_DATABASE', 'mabase'); // nom de la base
			$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,DB_SERVER_PASSWORD)
		or die('Impossible de se connecter : ' . mysql_error());
// sélection de la base de données
			mysql_select_db(DB_DATABASE, $connect);
			$sql = "SELECT DISTINCT Societe, Tel, Adresse,CP,Ville FROM fichier WHERE Activité='Restaurant'";
$resultat = mysql_query($sql);
if (mysql_query($resultat) == 0) 
{ 

	echo "<tr><td colspan=\"2\" class=\"normal\">Nous n'avons pas trouvé de partenaires dans cette catégorie.</td></tr>"; 
} else {
?>
  <tr bgcolor="#eeeeee"> 
    <td width="30%" class="label">Restaurant</td>
    <td width="35%" class="label">Téléphone</td>
    <td width="35%" class="label">Adresse</td>
  </tr>
  <?php 

	while ($recherche=mysql_fetch_array($resultat)) 
	{
	?>
  <tr> 
    <td class="normal"><?php echo $recherche['Société'];?></td>
    <td class="normal"><?php echo $recherche['Tel'];?></td>
    <td class="normal"><?php echo $recherche['Adresse'];?><?php echo $recherche['CP'];?><?php echo $recherche['Ville'];?></td>
  </tr>
  <?php }?>
 <tr bgcolor="#eeeeee"> 
    <td colspan="2" class="label"> Description </td>
    <td>Photo</td>
  </tr>
  <tr>
    <td colspan="2"><?php echo $recherche['texte'];?></td>
	<td colspan="2"><?php echo $recherche['image'];?></td>
  </tr>
  <?php }?>
</table>

Toute aide est bienvenue
 
WRInaute accro
Code:
$sql = "SELECT DISTINCT Societe, Tel, Adresse,CP,Ville FROM fichier WHERE Activité='Restaurant'";

à mon avis ça coince quelquepart là dedans ;)

Vérifie les noms de champs.

Je me demande si "Activité" ne devrait pas être interrogé avec LIKE 'Restaurant' plutôt que avec ='Restaurant' ;)
 
WRInaute impliqué
J'apprends un truc là, je ne savais pas que l'on pouvait mettre des accents sur les zones de table.
 
WRInaute occasionnel
mé non je l'ai ton bug:
if (mysql_query($resultat) == 0) --> :-((
if (mysql_num_rows($resultat) == 0) --> :-))

et hop
 
Nouveau WRInaute
bonjour,
merci de vos réponses.
J'ai viré les accents ( base et code) et corrigé if (mysql_num_rows($resultat) == 0)
Sans résultats :cry:
 
Nouveau WRInaute
oui, mais curieusement, il ne me renvoi qu'un enregistrement !
j'ai viré les accents, les majuscules, vérifié les orthographes et tenté le where like, sans plus de resultats.
 
WRInaute passionné
il faut créer une routine de debuggage sinon tu ne t'en sortiras jamais

lol

ça ressemble un peu à ça

Code:
$nb = 10;

define('DB_SERVER', 'mysql5-3'); // serveur mysql 
define('DB_SERVER_USERNAME', 'monlog'); // nom d'utilisateur 
define('DB_SERVER_PASSWORD', 'pass'); // mot de passe 
define('DB_DATABASE', 'mabase'); // nom de la base 

if(!$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,DB_SERVER_PASSWORD))
	{
	die('Impossible de se connecter au server : '.DB_SERVER."\n".mysql_error()); 
	}  
elseif(!mysql_select_db(DB_DATABASE, $connect))
	{
	die('Impossible de se connecter à la base : '.DB_DATABASE."\n".mysql_error()); 
	}       
elseif(!$resultat = mysql_query("SELECT DISTINCT Societe, Tel, Adresse,CP,Ville FROM fichier WHERE Activité like 'Restaurant'"))
	{
	die('requete invalide : '.mysql_error()); 
	}   
elseif(mysql_num_rows($resultat) < 1)
     {
	die('resultat vide : '.mysql_error()); 
	}

rog
 
Nouveau WRInaute
Merci Rog,
on a du mieux, le tableaux s'affiche comme il faut, mais il ne me renvoi qu'un enregistrement !! :roll:

Je ne comprends pas !
 
WRInaute passionné
donc la requete n'est pas bugguée

faut continuer dans une logique de debuggage

- echo(mysql_num_rows($resultat));
- ajouter le champs Activité dans la requete
- accessoirement virer les filtres comme distinct

rog
 
Nouveau WRInaute
J'ai modifié le code comme suit, mais toujours un seul enregistrement renvoyé


Code:
if(!$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,DB_SERVER_PASSWORD))
   {
   die("Impossible de se connecter au server : ".DB_SERVER."\n".mysql_error());
   } 
elseif(!mysql_select_db(DB_DATABASE, $connect))
   {
   die("Impossible de se connecter à la base : ".DB_DATABASE."\n".mysql_error());
   }   
elseif(!$resultat = mysql_query("SELECT societe,tel, adresse,cp,ville FROM fichier WHERE activite like convert( _utf8 'Restaurant' using latin1) COLLATE latin1_swedish_ci LIMIT 0 , 30"))
   {
   die('requete invalide : '.mysql_error());
   }   
elseif(mysql_num_rows($resultat) < 1)
     {
   die('resultat vide : '.mysql_error());
   }  
 else {
 echo(mysql_num_rows($resultat)); 
?>
  <tr bgcolor="#eeeeee"> 
    <td width="30%" class="label">Restaurant</td>
    <td width="35%" class="label">Téléphone</td>
    <td width="35%" class="label">Adresse</td>
  </tr>
  <?php 

	while ($recherche=mysql_fetch_array($resultat)) 
	{
	?>
  <tr> 
    <td rowspan="2" class="normal"><?php echo $recherche['societe'];?></td>
    <td rowspan="2" class="normal"><?php echo $recherche['tel'];?></td>
    <td class="normal"><?php echo $recherche['adresse'];?><br> </td>
  </tr>
  <tr> 
    <td class="normal"><?php echo $recherche['cp'];?> <?php echo $recherche['ville'];?></td>
  </tr>
  <?php }?>
  <tr bgcolor="#eeeeee"> 
    <td colspan="2" class="label"> Description </td>
    <td>Photo</td>
  </tr>
  <tr> 
    <td colspan="2"><?php echo $recherche['texte'];?></td>
    <td colspan="2"><?php echo $recherche['image'];?></td>
  </tr>
  <?php }?>
</table>
 
WRInaute passionné
essaies ça

Code:
SELECT activite,societe,tel, adresse,cp,ville FROM fichier WHERE activite like Restaurant

et ça

Code:
SELECT * FROM fichier WHERE activite like Restaurant

les melanges de charset c'est pas trop top

rog
 
Nouveau WRInaute
Pour la syntaxe, c'est issu de phpMyAdmin,
le code modifié me donne un :
Parse error: syntax error, unexpected T_ELSEIF
a la ligne : 36 ( en gras)

elseif(!$resultat = mysql_query('SELECT activite,societe,tel, adresse,cp,ville FROM fichier WHERE activite like Restaurant'));
{
die('requete invalide : '.mysql_error());
}
elseif(mysql_num_rows($resultat) < 1)
{
die('resultat vide : '.mysql_error());
}
else {
echo(mysql_num_rows($resultat));
?>

bou bou bou
 
WRInaute passionné
Code:
elseif(!$resultat = mysql_query('SELECT activite,societe,tel, adresse,cp,ville FROM fichier WHERE activite like Restaurant'));

le point virgule

Code:
elseif(!$resultat = mysql_query('SELECT activite,societe,tel, adresse,cp,ville FROM fichier WHERE activite like Restaurant'))

rog[/quote]
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut