Probleme PHP\SQL SELECT FROM

Fermé
tatann22 Messages postés 80 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 2 mai 2013 - 1 févr. 2011 à 15:52
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 1 févr. 2011 à 18:00
Bonjour,
Déja merci de porter attention a ce message :)

Je ne comprend pas lorsque je fait ce codage :

<?php

$serveur = "mysql5-4";
$nom_base = "**********";
$login = "***********";
$pwd = "*****";	

// connexion à MySQL
mysql_connect ($serveur,$login,$pwd) or die ('ERREUR '.mysql_error());	

// sélection de la base de données
mysql_select_db ($nom_base) or die ('ERREUR '.mysql_error()); 

// Requete
$requete = "SELECT 'cat,desc FROM table'";
$resultat = mysql_query ($requete); 

$ligne = mysql_fetch_assoc($resultat);

echo 'le premier enregistrement a pour description '.$ligne["desc"].' et pour catégorie '.$ligne["cat"]; 


?>


J'obtient juste
 le premier enregistrement a pour description  et pour catégorie   

Quelqu'un comprend ? je debute désolée si mon probleme et peut etre tout con
A voir également:

1 réponse

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
1 févr. 2011 à 18:00
Ta requête semble un peu étrange avec les simple quotes... moi je ferai plutot :
$requete = "SELECT TON_ID_UNIQUE,cat,desc FROM table ORDER BY TON_ID_UNIQUE LIMIT 0, 1";
$resultat = mysql_query ($requete); 
if(mysql_num_rows($resultat) == 1 ){
$ligne = mysql_fetch_assoc($resultat);
echo 'le premier enregistrement a pour description '.$ligne["desc"].' et pour catégorie '.$ligne["cat"]; 
}else{
  echo "Il n'y a pas d'enregistrement".
}

A noter que dans le code j'ai changé ta requête en supprimant les simple quotes, j'ai rajouté un order by car il faut bien savoir dans quel sens MySQL doit organiser son select si tu veux récupérer le 1er enregistrement. d'ailleurs, j'ai mis "TON_ID_UNIQUE" car je ne connais le nom du champs que tu as utilisé en primary key. J'ai aussi rajouté un limit 0, 1 afin que MySQL arrette de charger les enregistrement dès qu'il en a trouvé un car tu n'en veux qu'un et ça mange des resource plus ta BD va grossir.
J'ai rajouté le test avec un mysql_num_row car si tu fais un num_rows alors qu'il a rien trouvé, ca va pas le faire.
Pour info, ce qui est pratique pour débugger ce genre de situation c'est de regarder ce qu'il y a dans ton tableau qui est setté avec le mysql_num_rows avec un print_r. La, je pense que si tu le fais, tu verra que comme tu as écrit ton code, il est vide.
Bonne continuation !
0