Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : mysql requette comment faire??? [ Archives / Bases de données ] (jordangj)

mardi 24 août 2004 à 22:38:47 | mysql requette comment faire???

jordangj

bonjour je vous explique mon pb
voici le code qui me permet de crée un tableau:

$result=mysql_query("select count(nb_visite) as somme,date from visiteur where idmb='$idmb' and date like '%".$moi_annee."' group by date order by date desc") or die ("erreur compte visite");
while($row=mysql_fetch_array($result)){
$couleur = choix_couleur($couleur1, $couleur2);
$sql="select sum(p.nb_visite) as somme from visiteur v, page p where idmb='$idmb' and v.date like '".$row[date]."' and v.code=p.code ";
$result1=mysql_query($sql) or die ("erreur compte pages vues");
$row2=mysql_fetch_array($result1);
echo "<tr>
<td align=\"center\" bgcolor=".$couleur."><a href=\"?id=$id&hier=$row[date]\"><b>".$row[date]."</b></a></td>
<td align=\"center\" bgcolor=".$couleur.">$row[somme]</td>
<td align=\"center\" bgcolor=".$couleur.">$row2[somme]</td>
</tr>";
}



mon but est d'ordoner les resultats pas pages visitées avec la variable $row2[somme]
comment faire ???????
merci
GJ

mardi 24 août 2004 à 23:52:06 | Re : mysql requette comment faire???

GRenard

1. Ne pas appeler un champ "date"
2. $row['somme'] (il faut mettre les ' ' car c'est du text !)
3. pour ce qui est d'ordonner, je ne vois pas très bien la, c'est plutot toufu ton code... je te conseil de faire qu'un SQL et d'ordonner ca. Sinon tu peux tout mettre dans un tableau et faire un sort() apres.


PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.
[ Lien ]

mercredi 25 août 2004 à 00:06:18 | Re : mysql requette comment faire???

rekam

Salut!

Fais tout ça en 3 temps. D'abord tu récupères toutes les données et tu les stockes sous forme de tableaux (ou d'objets). Ensuite, tu tries ton tableau. Finalement tu reprends ton tableau et tu affiche.

ce qui donnerait qqch du genre (je saute volontairement quelques lignes de ton code) :

//Tu déclares un tableau comme ceci :
$data['date']= array();
$data['somme1'] = array();
$data['somme1'] = array();

$result = mysql_query(...);
while ($row = mysql_fetch_array($result)){
...
...
$result1 = mysql_query($sql);
$row2 = mysql_fetch_array($result1);

//Maintenant, au lieu de faire echo, tu sauvegardes tout ça dans le tableau.
$data['date'][] = $row['date'];
$data['somme1'][] = $row['somme']
$data['somme2'][] = $row2['somme']
}

//Ensuite, tu tries ton tableau $data comme tu le souhaites
array_multisort($data['somme2'], SORT_DESC, $data['somme1'], $data['date']);

//Puis tu affiches ta table
for ($i = 0; $i < count($data['somme1']); $i++){
echo "...";
}

Voilà, j'espère que ça t'aideras ! J'ai pas testé, alors si ça plante...c'est normal ;-). Et c'est vrai qu'il est mieux d'éviter d'appeler un champ de BD "date", ça créé des conflits, parfois. Pour les quotes également, faut pas les oublier, même si ça marche dès fois sans !

mercredi 25 août 2004 à 21:40:37 | Re : mysql requette comment faire???

jordangj

Voici le code que j'ai modifier c nikel merci
le seul pb c'est que c'est vraiment long avant l'affichage.
peu on alégé la requette ??? ou ya t'il quelque chose que j'ai mal fait
merci
Jordan



//Tu déclares un tableau comme ceci :
$data['date']= array();
$data['somme1'] = array();
$data['somme2'] = array();

$result = mysql_query("select date from visiteur where idmb='$idmb' and date like '%".$moi_annee."'");
while ($row = mysql_fetch_array($result)){

$sql="select sum(p.nb_visite) as somme from visiteur v, page p where idmb='$idmb' and v.date like '".$row[date]."' and v.code=p.code ";
$result1 = mysql_query($sql);
$row2 = mysql_fetch_array($result1);

//Maintenant, au lieu de faire echo, tu sauvegardes tout ça dans le tableau.
$data['date'][] = $row['date'];
$data['somme1'][] = $row['somme'];
$data['somme2'][] = $row2['somme'];
}

//Ensuite, tu tries ton tableau $data comme tu le souhaites

array_multisort($data['date'], SORT_DESC, $data['somme1'], $data['somme2']);
}

//Puis tu affiches ta table
for ($i = 0; $i < count($data['somme1']); $i++){
echo "<tr>
<td align=\"center\" bgcolor=".$couleur."><a href=\"?id=$id&hier=".$data['date'][$i]."\"><b>".$data['date'][$i]."</b></a></td>
<td align=\"center\" bgcolor=".$couleur.">".$data['somme1'][$i]."</td>
<td align=\"center\" bgcolor=".$couleur.">".$data['somme2'][$i]."</td>
</tr>";
}


samedi 28 août 2004 à 13:29:42 | Re : mysql requette comment faire???

Anthomicro

Salut ;-)

Pour faire ça en une seule requête tu fais un left join :

(je n'ai pas testé, mais la syntaxe s'en rapproche) :

$requete=mysql_query("SELECT v.date,SUM(p.nb_visite) as somme FROM visiteur v LEFT JOIN page p ON v.idmb=p.idmd AND v.code=p.code WHERE idmb='$idmb' and date like '%".$moi_annee."'");

Tu n'as plus qu'à faire un fetch_row et c'est bon

a ++

samedi 28 août 2004 à 16:07:54 | Re : mysql requette comment faire???

jordangj

salut
ouia j'ai cherché et j'ai trouvé cette histoire de join.
mais est t'il possible de recupere mes trois varable sur 1 requette ???

$result = mysql_query("select date from visiteur where idmb='$idmb' and date like '%".$moi_annee."'");

$sql="select sum(p.nb_visite) as somme2 from visiteur v, page p where idmb='$idmb' and v.date like '".$row[date]."' and v.code=p.code ";

$row['date'];
$row['somme'];
$row2['somme'2];


voila
merci
GJ


samedi 28 août 2004 à 18:31:46 | Re : mysql requette comment faire???

GRenard

SELECT a.date,b.somme,b.somme2 WHERE xxx a, yyy b WHERE a.id=b.id AND b.code=4

exemple...

Change ton champ Date !


PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.
[ Lien ]



Cette discussion est classé dans : date, mysql, row, somme, idmb


Répondre à ce message

Sujets en rapport avec ce message

Non inscription dans la base [ par chris tuckers ] Bonjour, aujourd'hui je vais etre enervant car je vais mettre beaucoup dans ce message, je suis completement paumé !!!Mon problème est que chaque fois commentaire [ par csmgroup ] Bonjour à tous,je viens vers vous car j'ai un petit soucis.J'ai instalé un script de news-commentaires, au niveau base de données, tout fonctionne. Le scroll tableau php [ par rudybiss ] Bonjour à tous!!!Voila je devéloppe un site et je dois gerer des évenements.Alors j'ai un table qui contient tous les évenements liées à des dates et Problème lors de l'envois des valeurs des cases à cocher [ par ChristOffAum ] Bonjour à toutes et à tous, me voilà sur ce forum en esperant trouver réponses à mes questions... Je n'ai pas trouvé de section présentation n'hésitez mysql me rend fou :( [ par TropNul ] Bonjour,Et merci d'avance à celles et ceux qui me répondront. Voilà mon problème. Lorsque par exemple, j'ajoute un 'row' à une table, et que le dernie convertir date Fr en anglais avant enregistrement mysql [ par bruno3591 ] Bonjour,Tout est dit dans le titre ou presque.Je me sers d'un code javascript pour faire apparaitre un petit calendrier qui, une fois la date choisit, Insertion a partir d'une liste deroulante dynamique [ par meego ] Bonjour ,voici mon problème  , j'ai 2 liste déroulante alimentée par une base de données MySqlla première liste déroulante est alimenté par une table Utilisation de $row[] [ par jmlucienvb ] J'ai besoin de récupérer dans une base de données MySql des informations qui pour un critère donné sont sur plusieurs lignes Pour ce qui est de la con Comparaison de dates : je n'arrives pas !!! [ par morpheus22170 ] Bonsoir,C'est un truc tout simple mais je n'arrive pas a faire un système d'alerte quand les livres ne sont pas rendu à tempsdans le cas, j'ai un livr Tableau Excel depuis selection mysql checkbox [ par Annadrill ] Bonsoir,JOYEUX NOEL !!!!j'ai un petit souci, voilà ce que j'essaie de faire :1. j'ai un formulaire avec des noms et un une checkbox pour chaque nom,2.


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.