fonction where

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : fonction where

par yoyoyo » 22 oct. 2005, 13:48

voila le code résolu :
<?
mysql_connect("ftp", "utilisateur", "pass"); // Connexion à MySQL
mysql_select_db("base"); // Sélection de la base coursphp

$reponse = mysql_query("SELECT host FROM visiteurs");

$tab_extension=array(); // tableau contenant toutes les extensions
while ($donnees = mysql_fetch_array($reponse) )
{

$host = $donnees['host'];
$host_array = explode('.',$host); // on sépare tous les "."
$host_count = count($host_array); // nombre d'éléments dans le tableau
$extension_array_number = $host_count - 1; // le tableau commençant à 0 l'extension est nombre d'élements moins 1
$tab_extension[] = $host_array[$extension_array_number]; // ajout de l'extension dans le tableau
}
$ext=array_count_values($tab_extension);
?>

<!-- recherche -->
<?
if ($ext["fr"]>0) {
echo "visiteurs francais ";
echo $ext["fr"]; 
}
?>
<br>

<!-- recherche -->
<?
if ($ext["br"]>0) {
echo "visiteurs bresilien ";
echo $ext["br"]; 
}
?>
<br>

<?
mysql_close();
?>
je vais maintenant creer une autre table qui liste les pays fr, br, it...
et faire un bouble qui recherche tout seul avec le resultat optenu si je peux

par fab » 22 oct. 2005, 13:29

au passage pense a mettre le tag résolu :)

par Truc » 22 oct. 2005, 13:29

je teste avec plusieurs variables du coup
tant qu'a faire, le code sert a ça :lol:

par yoyoyo » 22 oct. 2005, 13:27

excellent ca fonctionne !!!

je teste avec plusieurs variables du coup

merci bcp a vous

par yoyoyo » 22 oct. 2005, 13:21

excusez moi :D lool

je teste les 2 et je regarde de plus pres

par fab » 22 oct. 2005, 13:06

ouep ça revient exactement au même dailleurs :p ( sauf que moi je suis maniac :p )

par Truc » 22 oct. 2005, 12:56

mais j'ai une erreur que je ne comprend pas :
Warning: array_count_values(): The argument should be an array in visiteur.php
un oubli de ma part, mauvaise variable =>
$ext=array_count_values($tab_extension);
Mais le code de fab marche aussi bien, j'avais pas vu qu'il avait posté une réponse :roll:

par fab » 22 oct. 2005, 12:41

oui bah je te fais le code tu pourrais au moins prendre la peine d'essayer de le comprendre et tu verrais que il n'y a pas d'écho
rajoute
echo $count_fr;

par yoyoyo » 22 oct. 2005, 12:33

<?php....
fab je teste ton code mais rien ne s'affiche

par yoyoyo » 22 oct. 2005, 12:21

merci truc j'ai capté la boucle

mais j'ai une erreur que je ne comprend pas :

Warning: array_count_values(): The argument should be an array in visiteur.php

par Truc » 22 oct. 2005, 12:19

Tu compte a chaque tour de boucle normal que tu trouve 1 a chaque fois, essai comme ceci
mysql_connect("serveur", "base", "pass"); // Connexion à MySQL
mysql_select_db("table"); // Sélection de la base coursphp

$reponse = mysql_query("SELECT host FROM visiteurs");
$tab_extension=array(); // tableau contenant toutes les extensions
while ($donnees = mysql_fetch_array($reponse) )
{

$host = $donnees['host'];
$host_array = explode('.',$host); // on sépare tous les "."
$host_count = count($host_array); // nombre d'éléments dans le tableau
$extension_array_number = $host_count - 1; // le tableau commençant à 0 l'extension est nombre d'élements moins 1

$tab_extension[] = $host_array[$extension_array_number]; // ajout de l'extension dans le tableau
}

$ext=array_count_values($extension); // compte le nombre d'éléments par extension

echo $ext["fr"]; // affichera le nombre d'extension "fr" 

mysql_close();
a toi de faire un switch apres pour afficher le nombre en fonction de l'extension

par yoyoyo » 22 oct. 2005, 12:02

impossible de faire l'addition du resultat de la requete,
meme avec la fonction SUM :
 if($extension =='fr')    // Pas de ; a la fin
{
$retour = count ($extension, COUNT_RECURSIVE);
$resultat =sum($retour);
echo $resultat;
}
Fatal error: Call to undefined function: sum() in visiteur.php

c'est etrange ou c'est un bug :(

par fab » 22 oct. 2005, 12:00

<?php
$reponse = mysql_query("SELECT host FROM visiteurs");
$array_host = array();
while ($donnees = mysql_fetch_array($reponse) )
	{
	$host = $donnees['host'];
	$host_array = explode('.',$host);
	$host_count = count($host_array);
	$extension_array_number = $host_count - 1;
	$extension = $host_array[$extension_array_number];
	if(!is_array($array_host[$extension]))  // le tableau existe ?
		{
		$array_host[$extension] = array(); // non alors faut le créér
		}
	array_push($array_host[$extension],$host); // allé hop dans le tableau !
	}
// c'est ici que tu peux compter une fois la lecture des hosts terminée
// petit exemple pour fr
$count_fr = in_array("fr",$array_host) ? count($array_host['fr']) : 0 ;
mysql_close(); 
?>

par yoyoyo » 22 oct. 2005, 11:19

je viens d'essayer le code et de l'adapté a recup mes IP deja collectée dans
ma base...non ca ne me plait pas trop lool (sorry :D )

je pense etre pret du but, j'arrive desormais a extraire d'une adresse
son extension, a selectionner l'extention voulu (ex les FR..)
mais je n'arrive pas a les additionner

avez vous une idée SVP ?

ca viens surement d'ici :
 if($extension =='fr')    // Pas de ; a la fin
{
$retour = count ($extension, COUNT_RECURSIVE);
echo $retour;
}

par pjl » 22 oct. 2005, 11:08

pjl, effectivement j'ai trouvé le sujet, mais le code marche pas
je ne sais pas de quel code tu parles mais je peux garantir que la géolocalisation par IP marche très bien, à partir du moment ou l'on est conscient des limites du système.