Page 1 sur 1

Une $variable dans l'adresse ?

Posté : 13 mars 2007, 18:02
par dunbar
Bonjour,

Est t'il possible de faire passer une $variable dans un lien ?
Je m’explique :lol:
J'ai un tableau qui reprend des résultats par mois je voudrais rajouter un lien qui permet d'imprimer les résultats d'un mois précis.
Donc je voudrais que quand on clique sur le mois de Janvier par exemple on imprime les résultats du mois de janvier.
La seule solution que j'ai trouvé pour l'instant est de faire une requête par mois et de pointer le lien ver s le fichier.
Mais il doit surement avoir un moyen plus simple ?


D'avance merci

Posté : 13 mars 2007, 18:20
par angebleu17
ton lien ressemblera à ça :

page.php?num=$variable

$variable correspond au mois

Ensuite dans page.php, tu récupére ta variable :
<?
if(isset($_GET['num']))     $num=$_GET['num'];
else      $num="";
?>
je ne sais pas trop si c'est ça que tu voulais savoir...

Re: Une $variable dans l'adresse ?

Posté : 13 mars 2007, 19:08
par VaN
Bonjour,

Est t'il possible de faire passer une $variable dans un lien ?
Je m’explique :lol:
J'ai un tableau qui reprend des résultats par mois je voudrais rajouter un lien qui permet d'imprimer les résultats d'un mois précis.
Donc je voudrais que quand on clique sur le mois de Janvier par exemple on imprime les résultats du mois de janvier.
La seule solution que j'ai trouvé pour l'instant est de faire une requête par mois et de pointer le lien ver s le fichier.
Mais il doit surement avoir un moyen plus simple ?


D'avance merci
Bienvenue dans l'univers fantastique du PHP :)

Ce que tu souhaites faire est la chose la plus basique qu'offre le PHP : il est tout à fait possible de faire passer des variables via URL.

Tout d'abord, ton fichier doit porter l'extension .php pour pouvoir interpreter ces variables.
Dans une url, la premiere variable sera declarée à l'aide d'un '?' puis les autres à l'aide d'un '&'.

Exemple, tu souhaites passer l'année, le mois et le jour via URL :
calendrier.php?annee=2007&mois=03&jour=13

Tu récuperes ensuite leur contenu grâce à $_GET['nom_de_la_variable'].

Il ne reste plus qu'à faire les traitements adéquats en fonction de leur valeur.

Re: Une $variable dans l'adresse ?

Posté : 13 mars 2007, 20:28
par dunbar
Salut,

Merci pour vos réponses.
Alors voilà mon fichier qui génére la requete.
if(isset($_GET[$month_fr['mois']]))     $num=$_GET[$month_fr['mois']];
else      $num="";
//$sql_détail = (isset($_GET[$month_fr['mois']])) $_GET[$month_fr['mois']];

    $requete =  "SELECT
                           ref_client,
                           nom_client,
                           adr_client,
                           commune,
                           code_postal,
                           date_encodage,
                           adr_modem,
                           technicien,
                           heure_debut,
                           heure_fin,
                           TA,
                           WHERE '".$num."'
                           FROM prestation"
Et voici mon lien qui envoie vers le fichier plus haut
echo '<td style="border: 1px ridge #6699CC" >
<a target="_blank" href=fac/facture_mensuel_index.php?mois='.$month_fr[$row['mois']].'>
<p align="center">excel</td>';
Alors mon soucis est simplement que mon fichier Excel est vide :boire4:

Quelle serais mon erreur ?

PS: Mon lien fonctionne bien puisque il note bien le mois sur lequel je clique

D'avance merci

Posté : 13 mars 2007, 20:48
par VaN
Il y'a plusieurs erreurs dans la requete : jètes un coup d'oeil sur la doc SQL : http://dev.mysql.com/doc/refman/5.0/fr/select.html

je corrige ce que je peux :
$requete =  "SELECT
                           ref_client,
                           nom_client,
                           adr_client,
                           commune,
                           code_postal,
                           date_encodage,
                           adr_modem,
                           technicien,
                           heure_debut,
                           heure_fin,
                           TA
                           FROM prestation" 
                           WHERE date = '".$num."'";
                           
en gros, FROM se place avant les condition.
Ensuite, WHERE nécessite qu'il y'ai une "comparaison". Tu cherche a sortir des données dont le mois stocké correspond à ta variable. donc le dire de cette manière dans le WHERE. Mais j'imagine que tu dois stocker dans ta base une date entière, et pas seulement le mois.
Tu peux quand meme reussir à sortir ces données, je te renvoie vers cette solution : http://www.phpfrance.com/forums/viewtop ... highlight=

Posté : 13 mars 2007, 21:43
par dunbar
Salut

Merci pour votre aide, voilà mon script fonctionne correctement
Voici mon code
<?
include '../../../connect/fc-phpconnect_tvc.php';

$date = $_GET['mois'];
        list($annee, $mois, $jour) = explode("-", $date);


header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename= Facturation du $mois-$annee.xls");




    $requete = mysql_query("SELECT
                           ref_client,
                           nom_client,
                           adr_client,
                           commune,
                           code_postal,
                           date_encodage,
                           adr_modem,
                           technicien,
                           heure_debut,
                           heure_fin,
                           TA
                           FROM prestation
                           WHERE YEAR(date) = '".$annee."' AND MONTH(date) = '".$mois."'
                           ORDER BY code_postal DESC
                           ");





    if (mysql_numrows($requete) ==0)
        {   // si elle est vide, on en informe l'utilisateur à l'aide d'un Javascript
            print "<script> alert('La requête n\'a pas abouti !')</script>";
        }

   // construction du tableau HTML
  print '<div align="center">
<table border=1 width="586">

             <TR><TD>Référence</TD><TD>Nom</TD>
<TD>Adresse</TD><TD>Commune</TD>
<TD>cd_postal</TD><TD>Date</TD>
<TD>Modem</TD><TD>Technicien</TD>
<TD>Début</TD><TD>Fin</TD><TD>TA</TD>
</TR><TR>';


    for ($ligne=0 ; $ligne<mysql_numrows($requete);$ligne++)
     {
         for ($colonne = 0;$colonne < 11 ; $colonne++)
              {
                 print '<TD>' .mysql_result($requete , $ligne, $colonne).  '</TD>';
              }
       print '</TR>';
      }
    print '</TABLE>';





        mysql_close();
?>
Merci a+

Posté : 14 mars 2007, 18:04
par dunbar
Salut

Merci pour votre aide, voilà mon script fonctionne correctement
Voici mon code
<?
include '../../../connect/fc-phpconnect_tvc.php';

$date = $_GET['mois'];
        list($annee, $mois, $jour) = explode("-", $date);


header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename= Facturation du $mois-$annee.xls");




    $requete = mysql_query("SELECT
                           ref_client,
                           nom_client,
                           adr_client,
                           commune,
                           code_postal,
                           date_encodage,
                           adr_modem,
                           technicien,
                           heure_debut,
                           heure_fin,
                           TA
                           FROM prestation
                           WHERE YEAR(date) = '".$annee."' AND MONTH(date) = '".$mois."'
                           ORDER BY code_postal DESC
                           ");





    if (mysql_numrows($requete) ==0)
        {   // si elle est vide, on en informe l'utilisateur à l'aide d'un Javascript
            print "<script> alert('La requête n\'a pas abouti !')</script>";
        }

   // construction du tableau HTML
  print '<div align="center">
<table border=1 width="586">

             <TR><TD>Référence</TD><TD>Nom</TD>
<TD>Adresse</TD><TD>Commune</TD>
<TD>cd_postal</TD><TD>Date</TD>
<TD>Modem</TD><TD>Technicien</TD>
<TD>Début</TD><TD>Fin</TD><TD>TA</TD>
</TR><TR>';


    for ($ligne=0 ; $ligne<mysql_numrows($requete);$ligne++)
     {
         for ($colonne = 0;$colonne < 11 ; $colonne++)
              {
                 print '<TD>' .mysql_result($requete , $ligne, $colonne).  '</TD>';
              }
       print '</TR>';
      }
    print '</TABLE>';





        mysql_close();
?>
Merci a+
Quelqu'un pourrais t'il me dire comment faire pour créer un classeur (une feuille par commune) ou qui connait un bon tutot sur excel et php

D'avance merci