[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-team] Somme d'un tableau en PHP3 (Exemple bien concret)
Merci pour votre aide.
Bon, ben puisque vous voulez du concret en voici.
J'aimerais savoir ce que coutent les appels téléphoniques que j'effectue
sur ma ligne en fonction de la durée et de la zone à appeler.
J'ai donc créé une DB (Belgacom) MySQL avec 3 tables :
CREATE TABLE call (
call_id int(11) DEFAULT '0' NOT NULL auto_increment,
call_date date,
call_duration varchar(11),
user_id int(11),
zone_id int(11),
PRIMARY KEY (call_id),
KEY call_id (call_id),
UNIQUE call_id_2 (call_id)
);
CREATE TABLE user (
user_id int(11) DEFAULT '0' NOT NULL auto_increment,
user_firstname varchar(20),
user_name varchar(20),
PRIMARY KEY (user_id),
KEY user_id (user_id),
UNIQUE user_id_2 (user_id)
);
CREATE TABLE zone (
zone_id int(11) DEFAULT '0' NOT NULL auto_increment,
zone_data varchar(25),
zone_prix varchar(11),
PRIMARY KEY (zone_id),
KEY zone_id (zone_id),
UNIQUE zone_id_2 (zone_id)
);
J'ai pondu un scripte PhP3 pour l'encodage des appels et un autre pour le
calcul des communications.
Je parviens à lui faire calculer le prix de chaque appel mais ce que je
n'arrive pas à faire c'est le total de tout les appels...
Pourtant, j'ai comme l'impression que c'est tout con à faire...
J'ai créé un array ($grand_total) qui reprend tout les "totaux
intermédiaires".
Voici la partie du script qui calcule les totaux et affiche les résultats :
while($row = mysql_fetch_array($result))
{
if ($row["zone_id"] == 1)
{
if ($row["call_duration"] >= 180)
{
$total = ($row["zone_prix"] / 60) * $row["call_duration"];
}
else
{
$total = ($row["zone_prix"] / 60) * 180;
}
}
else
{
if ($row["zone_id"] == 2)
{
if ($row["call_duration"] >= 180)
{
$total = ($row["zone_prix"] / 60) * $row["call_duration"];
}
else
{
$total = ($row["zone_prix"] / 60) * 180;
}
}
else
{
if ($row["zone_id"] == 3)
{
if ($row["call_duration"] >= 60)
{
$total = ($row["zone_prix"] / 60) *
$row["call_duration"];
}
else
{
$total = ($row["zone_prix"] / 60) * 60;
}
}
else
{
if ($row["zone_id"] == 4)
{
if ($row["call_duration"] >= 60)
{
$total = ($row["zone_prix"] / 60) *
$row["call_duration"];
}
else
{
$total = ($row["zone_prix"] / 60) * 60;
}
}
else
{
if ($row["zone_id"] == 5)
{
if ($row["call_duration"] >= 30)
{
$total = ($row["zone_prix"] / 60) *
$row["call_duration"];
}
else
{
$total = ($row["zone_prix"] / 60) * 30;
}
}
else
{
if ($row["zone_id"] == 6)
{
if ($row["call_duration"] >= 30)
{
$total = ($row["zone_prix"] / 60) *
$row["call_duration"];
}
else
{
$total = ($row["zone_prix"] / 60) * 30;
}
}
else
{
}
}
}
}
}
}
$grand_total[] = $total;
echo $row["user_firstname"];
printf(" ");
echo $row["user_name"];
printf(" - ");
echo $row["call_date"];
printf(" - ");
echo $row["zone_data"];
printf(" - ");
echo $row["zone_prix"];
printf("Fb - ");
echo $total;
printf("Fb ");
printf(" - ");
echo $row["call_duration"];
printf("<br>");
}
Voilà, j'espère que j'ai pas été trop long.
Si ça intéresse qq'un, je peux lui faire parvenir le tout une fois terminé.
Hugues
---------
Visit the Linux Supertore Online: http://www.redcorp.com !
If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.
Archive of the list: http://tania.be.linux.org/