PDA

View Full Version : Compter des lignes dans une table !


bastien
1 juillet 2004, 17h44
Hello tous !

Dans ma quête de l'apprentissage de mysql, je cherche à compter le nombre de lignes dans une table, et bien evidemment afficher ce résultat !
Voici donc ce que j'ai fais, mais je suis sur qu'il fdoit manquer un petit quelques chose pour que ça marche !!!! :D

Merci ;)

require("confmysql.php");
$mysql_link = mysql_connect("$sql_serveur", "$sql_user", "$sql_password");
$requete = "SELECT COUNT(id) FROM $sql_table WHERE etat = occaz";
$result = mysql_db_query("$sql_bdd", $requete);
mysql_close($mysql_link);
echo "$result voiture(s)";

Spycam
1 juillet 2004, 18h02
require("confmysql.php");
$mysql_link = mysql_connect("$sql_serveur", "$sql_user", "$sql_password");
$requete = "SELECT COUNT(id) FROM $sql_table WHERE etat = occaz";
$result = mysql_db_query("$sql_bdd", $requete);
mysql_close($mysql_link);
echo "$result voiture(s)";

Je ferais çà :

require("confmysql.php");
$mysql_link = mysql_connect("$sql_serveur", "$sql_user", "$sql_password");
$requete = "SELECT * FROM $sql_table WHERE etat = 'occaz'";
$result = mysql_query($requete);
mysql_close($mysql_link);
$voiture=mysql_num_fields($result);
echo ($voiture." voiture(s)");

ou alors çà ( + lourd ) :


require("confmysql.php");
$mysql_link = mysql_connect("$sql_serveur", "$sql_user", "$sql_password");
$requete = "SELECT * FROM $sql_table WHERE etat = 'occaz'";
$result = mysql_query($requete);
mysql_close($mysql_link);
$voiture=0;
while(mysql_fetch_array($result) ==TRUE)
{ $voiture++; }
echo ($voiture." voiture(s)");

C'est à tester...

Benjy
1 juillet 2004, 18h12
Essaye ça...
require("confmysql.php");
$mysql_link = mysql_connect($sql_serveur, $sql_user, $sql_password);
$requete = "SELECT COUNT(id) AS total FROM " . $sql_table . " WHERE etat = occaz";
$result = mysql_query($requete);
$occaz = mysql_fetch_array($result);
mysql_free_result($result);
mysql_close($mysql_link);
echo $occaz['total']" . voiture(s)";
Sinon, il faut utiliser mysql_query plutôt que mysql_db_query...

fonji
1 juillet 2004, 18h23
Yep je vote pour la solution de Benjy. Si tu veux pas mettre un AS, alors utilise $result[1].

bastien
1 juillet 2004, 19h40
Alors avec la soluce de Spycam j'ai droit à:

Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in D:\sites\dev\autodif\v_occaz.inc.php on line 9
voiture(s)
Soit $voiture=mysql_num_fields($result);

Et pour Benjy,

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in D:\sites\dev\autodif\v_occaz.inc.php on line 11
Soit echo $occaz['total']" . voiture(s)";

Donc j'ai mis echo $occaz['total']." voiture(s)";
Mais là Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\sites\dev\autodif\v_occaz.inc.php on line 8

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in D:\sites\dev\autodif\v_occaz.inc.php on line 9
voiture(s) Soit $occaz = mysql_fetch_array($result);
mysql_free_result($result);

help ! :(

SantX
1 juillet 2004, 21h58
require("confmysql.php");
$mysql_link = mysql_connect($sql_serveur, $sql_user, $sql_password);
$query = mysql_query("SELECT COUNT(id) AS total FROM $sql_table WHERE etat='occaz'");
$occaz = mysql_fetch_array($query);
echo $occaz['total']." voiture(s)";
mysql_free_result($query);
mysql_close($mysql_link);


Moi je testerai ça ;) !

bastien
1 juillet 2004, 22h18
Merci SantX !
J'ai pas testé car un ami m'a dépatouillé entretemps !

Voici le code, si jamais il peut servir à qulqu'un ;o)

<?
$sql_serveur = 'localhost';
$sql_user = 'root';
$sql_password = '';
$db2 = 'basezyk';
$sql_table = 'voitures';

// connection à la DB

$db = mysql_connect($sql_serveur, $sql_user, $sql_password) or die
('Erreur : '.mysql_error() );
mysql_select_db($db2) or die ('Erreur :'.mysql_error());
$query = "SELECT id FROM voitures WHERE etat='occaz'";
$result = mysql_query($query, $db) or die ("Requête invalide");
$count = mysql_num_rows($result);

mysql_close($db);

echo $count." voiture(s)";
?>

Et merci à vous de m'avoir aidé ;o)

Benjy
1 juillet 2004, 23h37
require("confmysql.php");
$mysql_link = mysql_connect($sql_serveur, $sql_user, $sql_password);
$query = mysql_query("SELECT COUNT(id) AS total FROM $sql_table WHERE etat='occaz'");
$occaz = mysql_fetch_array($query);
echo $occaz['total']." voiture(s)";
mysql_free_result($query);
mysql_close($mysql_link);


Moi je testerai ça ;) !
Oui bon j'ai inversé " et . :p
Ca arrive quand on code toute la journée ;)

schatzita
23 juillet 2004, 16h47
Bonjour!
Une autre solution, que j'ai utilisée dans un programme. Elle n'est pas top top, mais j'ai pas pu faire marcher autre chose!

$query = 'SELECT COUNT(*) FROM voitures';
$result = mysql_query($query);
$nombre_voitures = mysql_fetch_array($rq);
/* la requete retourne un nombre. Mysql_fetch_array prend ce resultat et le met en premier élément d'une table, donc pour l'imprimer.....*/
echo $nombre_voitures[0];

voilà! en espérant que cela puisse aider quelqu'un