Php affichage de prix en fonction de la date

Fermé
Toomou Messages postés 4 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 26 janvier 2009 - 15 janv. 2009 à 11:25
Toomou Messages postés 4 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 26 janvier 2009 - 26 janv. 2009 à 12:15
Bonjour à tous,

Je suis actuellement en stage en informatique ou je créer une petite application pour un comptable en PHP et mysql. Cependant, mes dernières années d'études n'ont pas été pour moi des plus profitables par un manque de travaille dont je paie a l'heure actuelle les conséquences...Mais je pense qu'il n'est jamais trop tard pour apprendre et j'essaie maintenant de rattraper mon retard et combler mes lacunes en travaillant assidument. Mais seul la chose n'est pas aisé!! C'est pourquoi je me tourne vers vous pour me donner des conseils, explications ou tout autres choses qui vous semblerez utile de me préciser.

Je vous explique mon problème:
La société pour laquelle je travaille loue des serveurs, le comptable écrivait jusqu'à maintenant ces écritures sur un fichier excel. Voici un une image pour vous montrer la façon dont il procédait:

[url=https://www.casimages.com/i/09011511005132110.jpg.html][img]http://nsa04.casimages.com/img/2009/01/15/mini_09011511005132110.jpg[/img][/url]
Il devait donc inscrire manuellement chaque prix pour chaque mois quand une facture lui arrivée, ce qui prend beaucoup de temps.
Je dois donc maintenant lui permettre une saisie rapide des données et un affichage de différentes erreurs. Le cahier des charges spécifie:
-un problème de double facturation
-un oublie de facturation
-il doit y avoir un prix réel et un prix prévisionnel (les écritures en vert)
J'ai donc créer pour commencer une base de donnée dont je vous donne le MLD:


serveur(ref , ref-2 , durée_abonnement , date_début)
facture(Num_fact)
associer(ref,num_fact)
(quand pensez vous? je pars dans la bonne direction ou je devrais la modifier??)

J'ai commencé par écrire un script permettant de remplier la base, c'était la partie la plus simple --'
je voudrais maintenant créer le script qui me permet de réaliser la même chose que le fichier excel et c'est la que le bât blesse car je ne sais pas par ou commencer...
J'ai tout de même créer l'affichage des mois ainsi que la requête permettant l'affichage des références des serveurs, mais je ne sais pu comment faire pour remplir le tableau en fonction des dates et des prix des serveurs.
le remplissage se fait de la façon suivante:
si par exemple, la date de début est 12/03/2008 et le prix de l'abonnement et de 500€, dans le tableau il faut qu'au mois de mars, 500€ s'affiche.
de plus comme un abonnement peut etre mensuel trimestriel, semestriel ou annuel, il faut que par exemple pour le même exemple qu'au dessus, si l'abonnement est trimestriel au moi de juin apparaisse encore 500€
(j'ai déjà créé une fonction me permettant de récupérer juste le mois de la date de début me disant que cela me serait surement utile), cependant le gros problème c'est que de temps en temps une facture peut arriver et avoir un prix différent ou bien juste un facture pour un seul mois (sur l'image, le serveur 7 montre le problème.)

ce que j'aimerais, ce n'est pas que vous me fassiez le code, j'aimerais apprendre de moi même mais que vous me donniez des idées ou des méthodes qu'il me manque pour réaliser tout ça.
désolé pour le post un long, mais j'ai essayé d'expliquer au mieux ce que je devais faire.

si vous avez des questions n'hésitez pas a me les poser!!!

Très cordialement.
A voir également:

2 réponses

KaTa_TaKa Messages postés 56 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 11 décembre 2009 2
15 janv. 2009 à 14:41
salut,
par rapport aux tables de ta base de donnée je ne pense pas que t'auras besoin de 3 tables vu que ta table facture contient une seule colonne, tu peux utiliser que 2 tables ça t'evitera de faire trop de jonction de rien :

serveur(ref,ref-2 , durée_abonnement , date_début)
facture(num_fact,ref)

sinon je ne comprends pas pourquoi t'as 2 references dans ta table serveur ...

sinon par rapport à ce que tu veux faire, ça pas l'air tres mechant. je pense qu'il faut passer par des fichier CSV (fichier.csv) et en les alimentant bien comme il faut tu trouveras pas bcp de souci et en plus y'a plein de bout de code sur le net ( pense google lol ) ....
0
Toomou Messages postés 4 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 26 janvier 2009 1
26 janv. 2009 à 12:15
Merci KaTa_TaKa et désolé de ne répondre que maintenant!!

J'ai finalement résolu mon problème de la manière suivante:

[code]
<html>
<head>
<title>Édition</title>
</head>
<body>
<table border = "1" cellpadding = "5" cellspacing = "0">
<tr>
<td>Référence ***</td>
<?php
include('Fonction\fonction.php');
include('connexion.php');
$annee = $_GET['annee'];


//affichage des mois dans le tableau html
affiche_mois();
?>
<td>Total</td>

<?php
include('connexion.php');
$req1="select num_fact, ref_haisoft, MONTH(date_fact)as mois, SUM(prix) as prix, date_fact from facture F group by ref_haisoft, mois";


$resultat = mysql_query($req1);
//boucle de parcours de la requête 1
$tot=0;
while ($row=mysql_fetch_row($resultat))
{
$i=1;
$j=1;
$num_fact=$row[0];
$ref_haisoft=$row[1];
$mois=$row[2];
$prix=$row[3];
$date_fact=$row[4];
$year=recup_annee($date_fact);
if ($year==$annee)
{
echo"<tr>";


for ($j=1;$j<=12;$j++)
{

if($mois==$j)
{
$tab[$ref_haisoft][$j]=$prix;
}
ligne 50: if ($tab[$ref_haisoft][$j]=="")
{
$tab[$ref_haisoft][$j]="0";
}
}


echo"</tr>";
}
}

echo "<pre>";
print_r ($tab);
echo"</pre>";
$a=1;
foreach ($tab as $k => $v){
echo"<tr><td>".$k."</td>";

for ($a=1;$a<=12;$a++)
{
echo "<td>".$v[$a]."</td>";
}

echo "</tr>";

}


mysql_close();
?>
</table>
</html>
/code

Seulement je bloque car j'ai une erreur que je n'arrive pas a corriger...
la voici :

Notice: Undefined offset: 2 in C:\wamp\www\nouvelle_base\Ikoula\edition_facture_reel.php on line 50

Notice: Undefined offset: 3 in C:\wamp\www\nouvelle_base\Ikoula\edition_facture_reel.php on line 50

Notice: Undefined offset: 4 in C:\wamp\www\nouvelle_base\Ikoula\edition_facture_reel.php on line 50

Notice: Undefined offset: 5 in C:\wamp\www\nouvelle_base\Ikoula\edition_facture_reel.php on line 50

Notice: Undefined offset: 6 in C:\wamp\www\nouvelle_base\Ikoula\edition_facture_reel.php on line 50

Notice: Undefined offset: 7 in C:\wamp\www\nouvelle_base\Ikoula\edition_facture_reel.php on line 50

Notice: Undefined offset: 8 in C:\wamp\www\nouvelle_base\Ikoula\edition_facture_reel.php on line 50

Notice: Undefined offset: 9 in C:\wamp\www\nouvelle_base\Ikoula\edition_facture_reel.php on line 50

Notice: Undefined offset: 10 in C:\wamp\www\nouvelle_base\Ikoula\edition_facture_reel.php on line 50

Notice: Undefined offset: 11 in C:\wamp\www\nouvelle_base\Ikoula\edition_facture_reel.php on line 50

etc etc etc...
Ma question est simple: est quoi ce genre d'erreur, et comment fait on pour s'en débarrasser lOl ???

Merci d'avance.
0