Souci dans requête count(discount) dans php
Résolu
Sebas22
Messages postés
110
Date d'inscription
Statut
Membre
Dernière intervention
-
Sebas22 Messages postés 110 Date d'inscription Statut Membre Dernière intervention -
Sebas22 Messages postés 110 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j’ai un souci ponctuel sur une requête PHP/MySql.
Le souci est sans doute bestial (pardon, d’avance).
Je veux compter les occurrences identiques dans un champ.
Donc j’utilise
SELECT COUNT(DISTINCT champ) FROM table
Quand j’interroge via Sql dans PHPMyAdmin, j’ai la bonne réponse.
Cela doit être une broutille dans le code PHP (j’ajoute aussi la requête qui suit dans le code de la page et qui marche pour montrer que ce n’est pas un problème général).
Dans localhost, j’ai l’erreur :
Notice: Array to string conversion in D:\_xxxxxxxx\ stats-counts.php on line 91 et la ligne 91 est
Voici le bout de code :
Un coup de pousse serait bienvenu !
Merci d’avance
Seb
j’ai un souci ponctuel sur une requête PHP/MySql.
Le souci est sans doute bestial (pardon, d’avance).
Je veux compter les occurrences identiques dans un champ.
Donc j’utilise
SELECT COUNT(DISTINCT champ) FROM table
Quand j’interroge via Sql dans PHPMyAdmin, j’ai la bonne réponse.
Cela doit être une broutille dans le code PHP (j’ajoute aussi la requête qui suit dans le code de la page et qui marche pour montrer que ce n’est pas un problème général).
Dans localhost, j’ai l’erreur :
Notice: Array to string conversion in D:\_xxxxxxxx\ stats-counts.php on line 91 et la ligne 91 est
echo '<p>Number of XXXX : ' . $result[1] . ' </p>';
Voici le bout de code :
$requete = $connexion->prepare("SELECT COUNT(DISTINCT Valid_sp_subsp) FROM taxabase1"); $requete->execute(); $result[1] = $requete->fetchAll(); echo '<p>Number of XXXX : ' . $result[1] . ' </p>'; echo '<p> </p>'; echo '<p> </p>'; echo '<blockquote><h3><a id="FAMILYTRIBES"></a>Statistics by family-group name sequences for valid species :</h3></blockquote>'; echo '<table class="sortablenarrow" id="you"><tr><th>STATS BY FAMILY-GROUP NAME SEQUENCES</th><th>COUNTER TAXA</th></tr>'; $requete = $connexion->prepare("SELECT Family_Tribe_seq, COUNT(Family_Tribe_seq) AS counter FROM taxabase2 WHERE Family_Tribe_seq is not null and trim(Family_Tribe_seq) != '' GROUP BY Family_Tribe_seq ORDER BY Family_Tribe_seq"); $requete->execute(); $result[1] = $requete->fetchAll(); foreach ($result[1] as $row) { echo '<tr><td><i>' . $row["Family_Tribe_seq"] . '</i></td><td>'. $row ["counter"] . '</td></tr>'; } echo '</table>';
Un coup de pousse serait bienvenu !
Merci d’avance
Seb
A voir également:
- Souci dans requête count(discount) dans php
- Hard discount - Guide
- Hard-discount - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, le message d'erreur t'indique que $result[1] est une array.
peut-être pensais-tu faire:
peut-être pensais-tu faire:
$result = $requete->fetchAll(); echo '<p>Number of XXXX : ' . $result[0][0] . ' </p>';
Bonjour,
1 - https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
2 -
1 - https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
2 -
$sql = "SELECT COUNT(DISTINCT Valid_sp_subsp) as NB FROM taxabase1"; $datas = NULL; try{ $requete = $connexion->prepare($sql); $requete->execute($datas); // retourne UNE ligne $result[1] = $requete->fetch(PDO::FETCH_ASSOC) }catch(Exception $e){ echo " ERREUR ! " . $e->getMessage(); } echo '<p>Number of XXXX : ' . $result[1]['NB'] . ' </p>';
Bonjour Jordane45,
Merci de ta réaction et de ton aide rapides (un plaisir de voir que tu es fidèle au poste depuis ma dernière question en Avril dernier !).
J’ai un souci de compréhension car il n’y a pas de commentaires avec ton code (qui en plus teste les erreurs) et surtout ton code est construit différemment du mien et comme je suis encore assez débutant je plante.
En pratique, si je copie colle ton code
J’ai un message d’erreur :
Parse error: syntax error, unexpected '}' in D:\_xxxstats-counts.php on line 93
Ligne 93: } catch(Exception $e){
J’ai essayé d’enlever le }, mais bien sûr ce n’est pas çà (tes { et } sont bien appariés).
Si j’essaye d’adapter ton code à ma façon d’écrire le code PDO, comme ceci, j’ai une autre erreur :
Notice: Undefined index: NB in D:\_ -stats-counts.php on line 105
Ligne 105: echo '<p>Number of XXXX : ' . $result[1]['NB'] . ' </p>';
Pour le code:
J’ai également essayé avec la ligne changée en :
$requete->execute(); au lieu de $requete->execute($datas);
Mais c’est pareil.
J’ai enfin essayé avec la ligne changée en :
echo '<p>Number of XXXX : ' . $datas['NB'] . ' </p>'; au lieu de echo '<p>Number of XXXX : ' . $result[1]['NB'] . ' </p>';
Il n’y a plus d’erreur, mais la recherche sql ne se fait pas. (j’ai seulement Number of XXXX : et le vide)
Désolé, là c’est au-delà de mes capacités !
A+
Seb
Merci de ta réaction et de ton aide rapides (un plaisir de voir que tu es fidèle au poste depuis ma dernière question en Avril dernier !).
J’ai un souci de compréhension car il n’y a pas de commentaires avec ton code (qui en plus teste les erreurs) et surtout ton code est construit différemment du mien et comme je suis encore assez débutant je plante.
En pratique, si je copie colle ton code
$sql = "SELECT COUNT(DISTINCT Valid_sp_subsp) as NB FROM taxabase1"; $datas = NULL; try{ $requete = $connexion->prepare($sql); $requete->execute($datas); // retourne UNE ligne $result[1] = $requete->fetch(PDO::FETCH_ASSOC) } catch(Exception $e){ echo " ERREUR ! " . $e->getMessage(); } echo '<p>Number of XXXX : ' . $result[1]['NB'] . ' </p>';
J’ai un message d’erreur :
Parse error: syntax error, unexpected '}' in D:\_xxxstats-counts.php on line 93
Ligne 93: } catch(Exception $e){
J’ai essayé d’enlever le }, mais bien sûr ce n’est pas çà (tes { et } sont bien appariés).
Si j’essaye d’adapter ton code à ma façon d’écrire le code PDO, comme ceci, j’ai une autre erreur :
Notice: Undefined index: NB in D:\_ -stats-counts.php on line 105
Ligne 105: echo '<p>Number of XXXX : ' . $result[1]['NB'] . ' </p>';
Pour le code:
$requete = $connexion->prepare("SELECT COUNT(DISTINCT Valid_sp_subsp) as NB FROM taxabase1"); $datas = NULL; $requete->execute($datas); $result[1] = $requete->fetchAll(); echo '<p>Number of XXXX : ' . $result[1]['NB'] . ' </p>';
J’ai également essayé avec la ligne changée en :
$requete->execute(); au lieu de $requete->execute($datas);
Mais c’est pareil.
J’ai enfin essayé avec la ligne changée en :
echo '<p>Number of XXXX : ' . $datas['NB'] . ' </p>'; au lieu de echo '<p>Number of XXXX : ' . $result[1]['NB'] . ' </p>';
Il n’y a plus d’erreur, mais la recherche sql ne se fait pas. (j’ai seulement Number of XXXX : et le vide)
Désolé, là c’est au-delà de mes capacités !
A+
Seb
Bonjour jordane45,
désolé du retard
quelques soucis de santé
merci, mais comme tous les mauvais élèves je n'ai pas les bases indispensables et toutes mes pages sont sur ce modèle (des dizaines de pages)
yg_be m'a sorti de l'ornière (merci encore) et j'arrive à la fin de mon projet (j'aurai peut-être encore quelques questions de bugs comme celui-ci, mais c'est vraiment la fin... et j'en profite pour vous remercier tous chaleureusement sur ce forum pour votre disponibilité et votre aide)
Seb
désolé du retard
quelques soucis de santé
merci, mais comme tous les mauvais élèves je n'ai pas les bases indispensables et toutes mes pages sont sur ce modèle (des dizaines de pages)
yg_be m'a sorti de l'ornière (merci encore) et j'arrive à la fin de mon projet (j'aurai peut-être encore quelques questions de bugs comme celui-ci, mais c'est vraiment la fin... et j'en profite pour vous remercier tous chaleureusement sur ce forum pour votre disponibilité et votre aide)
Seb