Problème de débutant appel Mysql

napster24 Messages postés 5 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 25 août 2009 - 23 août 2009 à 16:26
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 - 23 août 2009 à 23:03
Bonjour tout le monde,
voilà j'ai récupérer un script fonctionnant en php et faisant appel à du SQL.
Ce site est en faite un site de Direct Download Link. Voici les tables SQL importantes :
CREATE TABLE `ddl_users` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(100) NOT NULL default '',
  `password` varchar(100) NOT NULL default '',
  `mail` varchar(200) NOT NULL default '',
  `msn` varchar(200) NOT NULL default '',
  `icq` varchar(100) NOT NULL default '',
  `level` enum('1','2','3') NOT NULL default '1',
  `rating` varchar(200) NOT NULL default '',
  `show_mail` enum('1','0') default '0',
  `activation` varchar(100) NOT NULL default '',
  `status` enum('1','0') default '0',
  `uploads` varchar(100) default '0',
  `mbs` varchar(100) default '0',
  `list` enum('0','1') default '0',
  PRIMARY KEY  (`id`)
);


DROP TABLE IF EXISTS `ddl_downfiles`;
CREATE TABLE `ddl_downfiles` (
  `id` varchar(100) NOT NULL default '',
  `username` varchar(200) NOT NULL default ''
);


CREATE TABLE `ddl_upload` (
  `id` int(11) NOT NULL auto_increment,
  `user_id` varchar(50) character default '0',
  `cat` varchar(100) character NOT NULL default '',
  `title` varchar(100) character NOT NULL default '',
  `format` varchar(100) NOT NULL default '',
  `interpret` varchar(100) NOT NULL default '',
  `kbps` varchar(100)  NOT NULL default '',
  `genre` varchar(100) NOT NULL default '',
  `files` text character NOT NULL,
  `info` text character NOT NULL,
  `posttime` varchar(100) NOT NULL default '',
  `name` varchar(100) NOT NULL default '',
  `url` varchar(100) NOT NULL default '',
  `size` varchar(100) NOT NULL default '',
  `rating` varchar(100) default '0',
  `rates` varchar(100) default '0',
  `passwort` text NOT NULL,
  `status` enum('0','1') default '0',
  `last_update` varchar(100) NOT NULL default '0',
  `image` text character NOT NULL,
  `subcat_id` varchar(100) NOT NULL default '',
  `admin` enum('0','1') NOT NULL default '0',
  PRIMARY KEY  (`id`)
);



Je pense ne rien avoir oublié. Bien entendu il y a d'autres tables mais pas importantes je pense.

Voici mon problème : Je voudrait afficher un module "statistiques" indiquants le nombre d'uploads en tout et la taille totale de tout les uploads sur le site.

Il y a déjà un module de statistiques mais celui-là ne s'applique que à chaque membre et donc on en vois que la taille totale et le nombre d'uploads de l'utilisateur en question sur son module perso après identification. Pour infos voici le code utilisé dans le script pour afficher les stats personnelles des membres :


(situé au dessus du Doctype)
<?

session_start();

include "includes/var.inc.php";

$section = $_GET['section'];

$username = $_SESSION['username'];
$user_sql = mysql_query("SELECT * FROM $users_table WHERE username='$username'");
$user_info = mysql_fetch_array($user_sql);
$user_id = $user_info['id'];
$user_level = $user_info['level'];
$user_uploads_num = $user_info['uploads'];
$user_uploads_size = $user_info['mbs'];

if(!$username){
   $user_panel_header = "off";
   } else {
   $user_panel_header = "on";
   }



(situé à l'endroit d'affichage)
<? if(!$username){
        
 echo "<form method="post" action="index.php?section=checkuser">\n";
 echo "\n\";
echo \"----
\n\";
echo \"User, \n\";
echo \", \n\";
echo \"\n\";
echo \"----
\n\";
echo \"Pass, \n\";
echo \", \n\";
echo \"\n\";
echo \"----
\n\";
echo \"   , \n\";
echo \"\n\";
                 echo "
\n";
                 echo "</form>\n";
 
 } else {
 
 echo "\n\";
echo \"----
\n\";
echo \"Bienvenue
".$username.", \n\";
echo \"\n\";
echo \"----
\n\";
echo \"Total Uploads: ".$user_uploads_num.", \n\";
echo \"\n\";
echo \"----
\n\";
echo \"".$user_uploads_size." MB In Total, \n\";
echo \"\n\";
                 echo "
\n";
 
 }
 
 ?>		  



S'il vous manque des infos n'hésitez pas !

5 réponses

pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
23 août 2009 à 20:03
Bah si j'ai bien compris dans ta table SQL il y a déja un champs qui spécifie la taille de l'upload cummulé par chaqu'un des utlisateurs...

si c'est le cas une simplme requête de sommation MySQL suffira:
http://mysql.ifrance.com/showthread.php?t=181

bonne soirée!


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
0
napster24 Messages postés 5 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 25 août 2009
23 août 2009 à 22:45
Salut, merci de ta réponse.

Voici le bout de code que j'ai fait du coup :

$unit = "MB";
$size=mysql_query("select SUM(mbs) from ddl_users");
$sizetotal=mysql_fetch_array($size); 

    
if($size > 1024){
   $sizetotal = round($size/1024, 2);
   $unit = "GB";
   }
   
echo "Taille Totale : $sizetotal $unit\n";



Et je me retrouve avec ce message :

Taille Totale : Array MB
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
23 août 2009 à 22:53
Dans la deuxiemme partie de ton script tu devrais utiliser $sizetotal au lieu de $size et éventuellement accèder a un champs spécifique a ta réponse dans l'array que te renvoi mysql_fetch_array()!

Bonne nuit!


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
0
napster24 Messages postés 5 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 25 août 2009
23 août 2009 à 22:56
Euh donc ça donnerai :

if($size > 1024){
   $sizetotal = round($sizetotal/1024, 2);
   $unit = "GB";
   }


Mais je n'ai pas compris pour l'histoire de l'array. (je débute de chez débute désolé)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
23 août 2009 à 23:03
Ben un array est un tableau associatif de valeures... va lire la doc PHP par exemple!

Pour ce qui est de ton code:

if($sizetotal > 1024){
    $sizetotal = round($sizetotal/1024, 2);
    $unit = "GB";
}


mais il faut que $sizetotal contienne bien la somme... comment trouveroù c'est:
print_r($size); // Pour "imprimmer" le tableau retourné! 


Allé, bye!
[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
0
Rejoignez-nous