Créer un tableau a partir de ma BDD

guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016 - 14 oct. 2010 à 08:46
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016 - 14 oct. 2010 à 13:26
Bonjour,
Je souhaiterai créer un tableau avec 3 colonnes a partir de ma bdd

Voici mon code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>BDD des piliers de Bar 2</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <link rel="stylesheet" media="screen" type="text/css" title="combats" href="presentation.css" />
    </head>
    
    
    Le BDD des Piliers de bar 2


    
    <?php
$sql_serveur "host"; $sql_base "sd"; $sql_login = "root"; $sql_password = "";
// Connection au serveur mySQL
@mysql_connect($sql_serveur, $sql_login, $sql_password) or die("Connection au serveur impossible !");
@mysql_select_db($sql_base);
// $NbrCol : le nombre de colonnes
// $NbrLigne : calcul automatique a la FIN
// -------------------------------------------------------
// (exemple)
$NbrCol = 3;
// La requete (exemple) :

$query = "SELECT Clodo, Pts Mini, Pts Maxi FROM stats WHERE Type='equipier'";
$result = mysql_query($query);
// -------------------------------------------------------
// nombre de cellules a remplir
 $NbreData = mysql_num_rows($result); Erreur ici
// -------------------------------------------------------
// affichage
$NbrLigne  = 0;
if ($NbreData != 0) {
   $j = 1;
   echo '';
while ($val = mysql_fetch_array($result)) {
if ($j%$NbrCol == 1) {
$NbrLigne++;
echo \"----
\";
$fintr = 0;
}
echo '';
// -------------------------
// DONNEES A AFFICHER dans la cellule
echo $val['Clodo'];
echo '
';
echo $val['Pts Mini'];
echo '
';
echo ''.$val['Pts Maxi'].'';
// -------------------------
echo ', ';
if ($j%$NbrCol == 0) {
echo \"\";
$fintr = 1;
}
$j++;
}
// derniere balise /tr
if ($fintr!=1) { echo ''; }
   echo '
';
} else {
   echo 'pas de données à afficher';
}
 
?>
</html>


J'ai cette erreur : Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\tests\score.php on line 28

S'il vous plait un peu d'aide

Merci

7 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
14 oct. 2010 à 10:54
Salut,

La lecture de la documentation de PHP permet souvent de résoudre des problèmes, parfois même avant qu'ils n'apparaissent...
Exemple, sur la page http://www.php.net/mysql_query on peut lire :
Pour les requêtes du type SELECT, SHOW, DESCRIBE, EXPLAIN et les autres requêtes retournant un jeu de résultats, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur.


Conséquence : la requête ne s'est pas exécutée correctement.

Pour savoir l'erreur qui s'est produite, il ne suffit pas de rester les bras croisés, il faut l'afficher. Le plus crade mais le plus rapide consiste à faire quelque chose comme :
$result = mysql_query($query) or die(mysql_error()); 


Ca permettra au moins de savoir ce qui se passe, où et pourquoi. A partir de là, la solution devrait s'imposer d'elle-même.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
Lord Spartan Messages postés 5 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 3 novembre 2010
14 oct. 2010 à 12:51
Salut,je pense que ta requete est fausse, essai :
'SELECT Clodo, Pts Mini, Pts Maxi FROM stats WHERE Type like "equipier"';

L'erreur vient peut être de ton "=".
0
Lord Spartan Messages postés 5 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 3 novembre 2010
14 oct. 2010 à 12:56
Voici les différents types de recherche avec LIKE :

'A_Z' : toutes les chaînes commençant par 'A', ou un autre caractère, et terminant par 'Z'. Par exemple, 'ABZ' et 'A2Z' satisferaient la condition, alors 'AKKZ' ne le ferait pas (car il y a deux caractères entre A et Z au lieu d'un).

'ABC%' : toutes les chaînes commençant par 'ABC'. Par exemple, 'ABCD' et 'ABCABC' satisferaient la condition.

'%XYZ' : toutes les chaînes terminant par 'XYZ'. Par exemple, 'WXYZ' et 'ZZXYZ' satisferaient la condition.

'%AN%' : toutes les chaînes contenant le modèle 'AN' quelle que soit sa position. Par exemple, 'LOS ANGELES' et 'SAN FRANCISCO' satisferaient la condition.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
14 oct. 2010 à 12:56
Mouarf, j'avais pas regardé en détails... L'erreur ne vient pas du signe égal, mais des espaces dans les noms de tes champs.
Deux solutions :
- tu protèges les noms des champs avec des guillemets simples inverses : `
- tu n'utilises pas d'espaces dans les noms des champs, parce que c'est mal.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0

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

Posez votre question
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
14 oct. 2010 à 12:58
Arrête, on a tout à fait le droit d'utiliser le signe égal pour tester une égalité ! Ca ne cause pas une erreur de syntaxe qui empêche une requête de s'exécuter...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
14 oct. 2010 à 13:15
Mon erreur se trouvait du fait que j avais oublier de définir &nombredata maintenant ça marche

Merci de votre aide
0
guilstunt Messages postés 52 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 1 mars 2016
14 oct. 2010 à 13:26
J ai également changer de nom pot éviter les espace
0
Rejoignez-nous