PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 29-04-2010 16:54:29

Capi
Membre
Inscription : 03-03-2010
Messages : 45

[Résolu] Récuperer un Count

Bonjour

Après 3h de recherche je laisse tomber.... je n'arrive vraiment pas à voir où je me plante

Je fais une requete pour recuperer le nombre de lignes qu'une requete envoie :

$result = mysql_query('SELECT COUNT(produit) FROM table1 WHERE departement=\'' . $_POST['dep'] . '\'');
echo mysql_result($result, 0);

Et j'ai comme erreur :
Warning: mysql_result(): supplied argument is not a valid MySQL result resource

Et je commence vraiment à craquer....

Une idée de la raison du pourquoi ?

Hors ligne

#2 29-04-2010 17:16:17

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] Récuperer un Count

Une formation de concaténation qui n'existe pas et qui ne sers à rien tout simplement. ^^
Essayes cela :

$result = mysql_query("SELECT COUNT(produit) FROM table1 WHERE departement='{$_POST['dep']}'");

Utilises un logiciel qui colore la syntaxe tu trouverai tout de suite ce genre d'erreur.

Hors ligne

#3 29-04-2010 17:57:08

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : [Résolu] Récuperer un Count

c'est pas un problème de concaténation, sinon tu aurai un parse error et pas un Warning: mysql_result(): supplied argument is not a valid MySQL result resource

[code : php]
    echo 'Il y a ' . current(mysql_fetch_array("SELECT COUNT(produit) FROM table1 WHERE departement='{$_POST['dep']}'"))) . " produit dans la base de données";
[/code]

a++

Hors ligne

#4 30-04-2010 08:43:44

Capi
Membre
Inscription : 03-03-2010
Messages : 45

Re : [Résolu] Récuperer un Count

Salut à vous deux smile
Je reconnais que la forme de concaténation n'était pas géniale, mais j'ai repris celle d'un tuto tellement ça me gonflait et je voulais être sûr qu'il n'y ait pas de soucis

En utilisant le code de Pierrot (avec une parenthèse en moins à la fin ;-) )   je me retrouve avec :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Warning: current() [function.current]: Passed variable is not an array or object in /homez.170/ blablabla


:s

Hors ligne

#5 30-04-2010 08:55:56

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : [Résolu] Récuperer un Count

tu peux meme en enlever une 2eme et rajouter des . aux bons endroits wink

Et uniformise la concaténation (au lieu de ' devant et " derrière):


    echo 'Il y a '.current(mysql_fetch_array("SELECT COUNT(produit) FROM table1 WHERE departement='.{$_POST['dep']}.'").' produit(s) dans la base de données';
 

MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#6 30-04-2010 09:12:54

Capi
Membre
Inscription : 03-03-2010
Messages : 45

Re : [Résolu] Récuperer un Count

On va pas s'en sortir, j'ai un Parse error: syntax error, unexpected ';'
Juste à noter que mon editeur (dreamweaver) n'aime pas la structure avec le { et aurait tendance à préférer quand ça n'y est pas, mais après j'ai un parse error, unexpected T_VARIABLE si je les enleve
Elles servent à quoi ces accolades ?

Euh je ne sais pas si ça peut aider, mais je me connece en PDO... ça change rien à la suite je suppose mais je préfère préciser

Dernière modification par Capi (30-04-2010 09:13:21)

Hors ligne

#7 30-04-2010 09:21:28

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : [Résolu] Récuperer un Count

Bon, procéde par étape :


$dep = $_POST['dep'];
$cpt = mysql_query("SELECT COUNT(*) FROM table1 WHERE departement='".$dep."'");
echo 'Il y a '.$cpt.' produit(s) dans la base de données';
 

Ensuite, tu testes :


$cpt = mysql_query("SELECT COUNT(*) FROM table1 WHERE departement='".$_POST['dep']."'");
// sauf que ça va planter (ou pas ^@^), d'où le besoin des accolades pour isoler la variable :
$cpt = mysql_query("SELECT COUNT(*) FROM table1 WHERE departement='".{$_POST['dep']}."'");
// et enfin, tu concatènes tout :
echo 'Il y a '.blablabla.' produit(s) dans la base de données';
 

Dernière modification par Alnoss (30-04-2010 09:39:48)


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#8 30-04-2010 09:33:10

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] Récuperer un Count

Mauvaise concaténation, tu as utilisé des doubles quotes pour la requête, donc pas de points pour la variable. smile

Hors ligne

#9 30-04-2010 09:36:21

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : [Résolu] Récuperer un Count

Quelle rapidité ! j'étais en train d'éditer le post de 10h21 pour plus de détails wink Merci !


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#10 30-04-2010 10:07:49

Capi
Membre
Inscription : 03-03-2010
Messages : 45

Re : [Résolu] Récuperer un Count

Alors ^^

La première solution me donne : Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

La seconde : Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in

La 3eme : Parse error: syntax error, unexpected '{'

je déprime sad

Hors ligne

#11 30-04-2010 10:18:32

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : [Résolu] Récuperer un Count

Mouais, un peu normal, à faire 50 trucs à la fois... je fais n'imp

Essaye ça ^^ :


$dep = $_GET['dep'];
$row=mysql_fetch_array(mysql_query("SELECT COUNT(*) AS cpt FROM table1 WHERE departement='".$dep."'"));
$cpt = $row['cpt'];
echo 'Il y a '.$cpt.' produit(s) dans la base de données';
 

edit : rajout de la parenthése ^^

Dernière modification par Alnoss (30-04-2010 10:37:58)


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#12 30-04-2010 10:33:37

Capi
Membre
Inscription : 03-03-2010
Messages : 45

Re : [Résolu] Récuperer un Count

Mdr ce coup là il manquait une parenthèse ^^
Mais toujours la même erreur sinon :


Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established
Il y a produit(s) dans la base de données

:$ :$

Hors ligne

#13 30-04-2010 10:46:42

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : [Résolu] Récuperer un Count

bon ! ca avance ! le soucis n'est plus sur la requete...
le plus simple serait que l'on ai le code complet, car on s'escrime sur une ligne alors que le soucis semble provenir d'ailleurs...


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#14 30-04-2010 11:00:51

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] Récuperer un Count

Pour exécuter une requête (mysql_query) il faut ouvrir une connexion avant cela :
- mysql_connect() // connexion serveur
- mysql_select_db() // Selection base de donnée

Hors ligne

#15 30-04-2010 11:13:33

Capi
Membre
Inscription : 03-03-2010
Messages : 45

Re : [Résolu] Récuperer un Count

 <?php
try
{
  $bdd = new PDO('****');
}
catch(Exception $e)
{
       die('Erreur : '.$e->getMessage());
}
      $dep = $_POST['dep'];
      $row=mysql_fetch_array(mysql_query("SELECT COUNT(produit) AS cpt FROM table1 WHERE departement='".$dep."'"));
      $cpt = $row['cpt'];
       echo 'Il y a '.$cpt.' produit(s) dans la base de données';
     
?>

Avec sur ma page précédente une liste déroulante toute bête qui m'envoit "dep" sur cette page.

Dernière modification par Capi (30-04-2010 11:14:14)

Hors ligne

#16 30-04-2010 11:22:57

ManicoW
Cowrespondant
Lieu : Tours
Inscription : 08-05-2009
Messages : 192
Site Web

Re : [Résolu] Récuperer un Count

Bonjour,

Connexion a mysql ouverte avec pdo, la requete doit être faite a coup de pdo, pas a coup de fonction mysql smile

@+


la v2, c'est tabou, on en viendra tous a bout

Hors ligne

#17 30-04-2010 14:01:31

Capi
Membre
Inscription : 03-03-2010
Messages : 45

Re : [Résolu] Récuperer un Count

Houraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa !!!


$sql = "SELECT COUNT(produit) FROM table1 WHERE radio='".$dep."'";
$res = $bdd->query($sql);
$result = $res->fetchColumn();
print("$result");
 

(et même pour arriver à ça ca n'a pas été facile !)

merci à tous

Hors ligne

Pied de page des forums