Page 1 sur 1

Problème requête count

Posté : 21 avr. 2013, 14:08
par Berkowitz1
Bonjour à tous,

Pour un exercice, je dois compter combien de mots dans une base commencent par la même lettre pour l'insérer comme clé primaire dans une nouvelle table. J'ai déjà fait quelque chose de similaire à un cours précédent et cette fois ci je me retrouve bloqué car ma requête ne fonctionne pas, j'espère que quelqu'un pourra m'aiguiller vers un meilleur chemin.

J'ai toujours cette erreur la qui boucle sur le parcours de ma table : mysql_fetch_array() expects parameter 1 to be resource.

$j=0;
$lettre='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
while($j<26)
{
$i=0;//Remise à zéro compteur
$caractere=substr($lettre,$j,1);
while($i<96)//Parcours table mysql
{
$resul = mysql_query("SELECT COUNT(NOM_DPT) FROM DEPARTEMENT3 WHERE NOM_DPT LIKE '$caractere%' ");
while ($colonne = mysql_fetch_array($resul,MYSQL_NUM))//Compte le nombre d'occurences par lettre
{
$nombre=$colonne[0];//Met le nombre dans une variable
echo $nombre."<br>";//Affiche le nombre trouvé
}
$i++;
}
$zon1 = $caractere.$nombre;
echo $zon1."<br>";
$requete = "INSERT INTO T_COMPTAGE(PK) VALUES('$zon1')";//Insertion BDD
mysql_query($requete,$connexion) or die (mysql_error());
mysql_free_result($resul);//Libère la mémoire réservée par $resul
$j++;//Incrémentation compteur lettre
}

D'avance merci.

Re: Problème requête count

Posté : 21 avr. 2013, 14:28
par moogli
Salut,

Cela indique que la requête se passe mal et que mysql_query retourne false.

Il faut toujours vérifier le retour de mysql_query, tu pourra ainsi afficher un message d'erreur (ou le logguer) et ainsi conditionner l'utilisation du mysql_fetch_array.

Pour info l'extension mysql est dépréciée il est préférable d'utiliser à la place l'extension mysqli, PDO.

@+

Re: Problème requête count

Posté : 21 avr. 2013, 14:36
par Berkowitz1
Il retourne false dans ce cas ci mais je n'en comprend pas la raison. Vois-tu d’où cela peut venir? Je fais juste un comptage sur un champ et il n'y a jamais de valeur retournée ...

Merci pour ta réponse, je continue à regarder ce que cela pourrait être.

Re: Problème requête count

Posté : 21 avr. 2013, 21:56
par moogli
Affiche ale message d'erreur avec mysql_error.

En gros
<?php
if($resul === false){
echo 'erreur sql : '. mysql_error(). '<br/>';
}
else {
// le traitement avec le while
}
@+