Finalement je viens d'apporter la retouche suivante en fonction du message de jeanc_123 à une différence près le mot-clé array_key_exists avecun s, mais cette fois-ci le resultat sur une table conséquence 4000 enregistrement s'effectue très rapidement et même instantannément .merci jean pour cette précission. En effet ceci me permet de connaitre le nombre effectif d'enregistrement différent dans une même table.
print ("
recherche combien d_identifiant sont unique dans une table");
$query = "SELECT * FROM informe";
$result = mysql_query($query);
$table = array();
$count = 0;
//Ce script recherche combien d_identifiant sont unique dans une table SQL-Autor denis B.
if ($result)
{
print("*******************************");
while ($row = mysql_fetch_row($result))
{
//print($row[0]);
if( !array_key_exists( $row[1], $table ))
{
array_push($table,$row[1]);
}
}
print("
XXX Identifiant Unique_________________");
$count=0;
print("");
foreach ($table as $name)
{
print(", \".$name.\"
\");
if ($count%8==0) print(\"----
\");
$count+=1;
}
print("
");
print("Le nombre d'identifiant différent=".$count);
}
@JEANC_123 :
Pour répondre à la question précise posée :
"Permet ainsi d'extraire combien y a t-il d'identifiants différents dans un des champs d'une table." ,
un "distinctrow *" ne convient pas, cela ne lui donnerait pas le nombre d'identifiants différents dans un des champs d'une table.
Et il semble qu'il ne veuille connaître que le nombre d'enregistrements différents.
C'est vrai, on s'éloigne du code source, mais faire du code basé sur une requête sql avec des boucles, des tableaux ...
alors qu'une autre requête sql simple peut donner le résultat directement, c'est une question de philosophie.
MacGaliver
Messages postés146Date d'inscriptionvendredi 28 mai 2010StatutMembreDernière intervention21 juillet 20133 27 mai 2013 à 17:19
27 mai 2013 à 18:20
print ("
recherche combien d_identifiant sont unique dans une table");
$query = "SELECT * FROM informe";
$result = mysql_query($query);
$table = array();
$count = 0;
//Ce script recherche combien d_identifiant sont unique dans une table SQL-Autor denis B.
if ($result)
{
print("*******************************");
while ($row = mysql_fetch_row($result))
{
//print($row[0]);
if( !array_key_exists( $row[1], $table ))
{
array_push($table,$row[1]);
}
}
print("
XXX Identifiant Unique_________________");
$count=0;
print("");
foreach ($table as $name)
{
print(", \".$name.\"
\");
if ($count%8==0) print(\"----
\");
$count+=1;
}
print("
");
print("Le nombre d'identifiant différent=".$count);
}
27 mai 2013 à 17:57
Pour répondre à la question précise posée :
"Permet ainsi d'extraire combien y a t-il d'identifiants différents dans un des champs d'une table." ,
un "distinctrow *" ne convient pas, cela ne lui donnerait pas le nombre d'identifiants différents dans un des champs d'une table.
Et il semble qu'il ne veuille connaître que le nombre d'enregistrements différents.
C'est vrai, on s'éloigne du code source, mais faire du code basé sur une requête sql avec des boucles, des tableaux ...
alors qu'une autre requête sql simple peut donner le résultat directement, c'est une question de philosophie.
27 mai 2013 à 17:19
Au passage j'en profite pour annoncer que "mysql_query" à été amélioré: "mysqli_query".
http://fr.php.net/manual/fr/ref.mysqli.php
Cordialement.
27 mai 2013 à 17:18
Et pour compléter, mysql est obsolète depuis 5.3 et plus supportée depuis 5.4.
27 mai 2013 à 15:21
En fait la syntaxe exacte est
SELECT DISTINCTROW * FROM MaTable;
Mais je pense qu'on commence à s'éloigner du contexte du code source.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.