Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/02/2011, 15h01   #1
Invité de passage
 
Inscription : février 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 8
Points : 0
Points : 0
Par défaut Exporter les données vers excel (php/Mysql)

Bonjour tout le monde
je suis débutant et je dois faire une application pour mon stage
donc j'ai fait un moteur de recherche qui me donne un tableau comme resultat tout va bien jusqu'à là, ce que je voudrais faire c'est que quand j'ai ces résultats je peux l'exporter vers excel c'est à dire avoir un bouton qu on on clique dessu les données s'exporte vers excel.
voila mon script recherche.php.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('stock', $base) ;
 
?>
<style>
	body {background-color: #DAFFA8; background-image: url(imagefond.jpg);background-repeat: repeat-y;background-position: left top;}
	</style>
<center><table border bgcolor="#7FFF00"><tr>
  <CAPTION><strong>Produits disponibles dans le stock</strong></CAPTION>
<th>ID</th>
<th>Type</th>
<th>Marque</th>
<th>Modele</th>
<th>Format</th>
<th>Commentaires</th>
 
</tr>
 
<?php
	$marque=mysql_real_escape_string(htmlspecialchars ($_POST['Marque']));
	$produit=mysql_real_escape_string(htmlspecialchars ($_POST['Produit']));
	$format=mysql_real_escape_string(htmlspecialchars ($_POST['Format']));
	$type=mysql_real_escape_string(htmlspecialchars ($_POST['Type']));
	$modele=mysql_real_escape_string(htmlspecialchars ($_POST['Modele']));
 
$requete = "SELECT * FROM $produit WHERE 1=1 ";
 
if ($type != "") {
   $requete .= "AND Type= '".$type."' ";
}
if ($marque != "") {
   $requete .= "AND Marque= '".$marque."' ";
}
if ($modele != "") {
   $requete .= "AND Modele= '".$modele."' ";
}
if ($format != "") {
   $requete .= "AND Format = '".$format."' ";
}
 
if ($type != "") {
   $requete .= "OR Type= '".$type."' ";
}
if ($marque != "") {
   $requete .= "OR Marque= '".$marque."' ";
}
if ($modele!= "") {
   $requete .= "OR Modele= '".$modele."' ";
}
if ($format != "") {
   $requete .= "OR Format= '".$format."' ";
}
 
$res = mysql_query($requete) or die(mysql_error());
while ($donnees = mysql_fetch_array($res)) // On fait une boucle pour lister les résultats
{
?>
 
<tr>
<td><?php echo $donnees['ID'];?></td>
<td><?php echo $donnees['Type'];?></td>
<td><?php echo $donnees['Marque']; ?></td>
<td><?php echo $donnees['Modele']; ?></td>
<td><?php echo $donnees['Format']; ?></td>
<td><?php echo $donnees['Commentaires']; ?></td>
</tr>
 
 
<?php
}
echo"Pour faire une nouvelle recherche";
// Fin de la boucle
?>
     <html>
    <body>
 <form action="f_recherche_famille2.html" method="post">
 <p><input type="submit"style="width: 130px" value=" Cliquer ICI " /></p>;
</form>
 <form action="excel.php" method="post">
 <p><input type="submit"style="width: 130px" value=" exportexcel " /></p>;
</form>
<form action="index.php" method="post">
			<p><input type="submit"style="width: 130px"  value="Fermer" /></p>
		</form>
	    </body>
    </html>
merci pour les aides.
debutant91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 15h09   #2
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
mais tu veux un format excel excel ou un format tabulé?

parce que y'en a un qui est facile pour un débutant et l'autre que tu vas galérer. Et ya plein de tutos.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 18h45   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Hello

Si tu utilise du CSV (Comma Separated Values - .csv) c'est très simple à faire et c'est compris par Excel, exemple:
Code :
1
2
3
4
5
6
7
8
9
10
 
$query = "SELECT `name`,`surname`,`age` FROM `member`";
if ($results = mysql_query($query))
{
    header('Content-Type: application/csv');
    echo "name;surname;value\r\n";
    while ($row = mysql_fetch_assoc($results))
       echo implode(';', $row) . "\r\n";
}
else die('Query Error');
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 20h22   #4
Invité de passage
 
Inscription : février 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 8
Points : 0
Points : 0
Bonjour Benjamin, en fait je veux que l'utilisateur peut modifier les données obtenus en exportant le fichier vers un format qui puisse faire ça, et comment faire apparaitre un bouton qui directement exporte ces données en cliquant dessus. je note que je suis débutant Merci pour l'aide
debutant91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 20h49   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Citation:
enfait je veux que l'utilisateur peut modifier les données obtenus en exportant le fichier vers un format qui puisse faire ça
Alors il te faut un formualire d'import/export :p

Faire un boutton pour lancer le téléchargement est très facile:
Code :
1
2
3
4
 
<form action="export.csv.php">
<input type="submit" value="Exporter" />
</form>
Pour récupérer les données modifiées par l'utilisateur, c'est très simple aussi:
Code :
1
2
3
4
5
 
<form actipn="import.csv.php">
<input type="file" name="csv_file" />
<input type="submit" value="Importer" />
</form>
coté PHP:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
if (isset($_FILES['csv_file']))
{
  $handle = fopen($_FILES['tmp_name'], 'r');
  $data = array(); // le tableau qui va contenir nos données
  $keys = explode(';', fgets($handle));
  while ($line = fgets($handle))
  {
     $data[] = array_combine($keys, explode(';', $line));
  }
 
  fclose($handle);
  var_dump($data);
}
That's really that easy
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 21h11   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
plutôt :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (isset($_FILES['csv_file']))
{
    $handle = fopen($_FILES['tmp_name'], 'r');
    $data = array(); // le tableau qui va contenir nos données
 
    $keys = fgetcsv($handle, 0, ';'));
 
    while ($line = fgetcsv($handle, 0, ';'))
    {
        $data[] = array_combine($keys, $line);
    }
 
    fclose($handle);
    var_dump($data);
}


pas oublier le fgetcsv

et pour exporter c'est :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if ($results = mysql_query($query))
{
 
    $handle = tmpfile();    
    $row    = mysql_fetch_assoc($results);
 
    fputcsv($handle, array_keys($row), ';');
 
    do
    {
    	fputcsv($handle, $row, ';');
    }
    while($row = mysql_fetch_assoc($results));
 
    header('Content-Type: application/csv');
    fpassthru($handle);
}
else 
{
    exit('Query Error');
}
pas oublier non plus le fputcsv
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/02/2011, 03h08   #7
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Je l'oublie à chaque fois... bien vu.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 11h18   #8
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
on pourrait presque y mettre dans la faq.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 11h43   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
je vais faire un article la dessus
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 16h33   #10
Invité de passage
 
Inscription : février 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 8
Points : 0
Points : 0
oui c'est bien ce script que vous m'avez donné mais ce que je comprends pas est ce comment ce script va connaitre les données recherchées, alors que les deux script sont séparés? je m'explique j'ai mon script recherche.php qui contient le bouton qui me redirige vers export.csv.php donc quand je fais ma recherche j'ai mes données se forme d'un tableau avec un bouton ci dessus si je souhaite exporter ce fichier je clique dessus et je veux que les résultats de cette recherche apparaissent dans le fichier exporté. je rappelle que je suis débutant dans la programmation.
debutant91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 16h58   #11
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Il te suffit soit
- de mettre en cache les informations de la page de listing afin de les utiliser pour générer le fichier CSV
- de faire passer les critères de recherche obtenus sur la page de listing sur la page d'export et d'utiliser le même algorithme que celui du listing mais pour créer le CSV au lieu du HTMl.

Note que si tu avait fait ton site en suivant le pattern MVC, tu pourrait utiliser les mêmes contrôles métier et changer uniquement la vue en spécifiant le format HTML dans un cas et CSV dans l'autre.

Bon courage.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 19h06   #12
Invité de passage
 
Inscription : février 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 8
Points : 0
Points : 0
Frenchement Benjamin, je n'ai rien compris et honnetement c'est comme tu me parle le chinois, je me connais pas en programmation à la base je suis réseau mais je me converti en programmation voila merci
debutant91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 19h10   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par debutant91 Voir le message
Frenchement Benjamin, je n'ai rien compris et honnetement c'est comme tu me parle le chinois, je me connais pas en programmation à la base je suis réseau mais je me converti en programmation voila merci
si tu débutes ca veux dire que t'as le temps d'apprendre et ne brule pas les étapes non plus sinon tu vas jamais t'en sortir.
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 22h45   #14
Invité de passage
 
Inscription : février 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 8
Points : 0
Points : 0
Citation:
Envoyé par stealth35 Voir le message
si tu débutes ca veux dire que t'as le temps d'apprendre et ne brule pas les étapes non plus sinon tu vas jamais t'en sortir.
stealth35 je suis d'accord avec toi mais je dois faire cette application dans un moi voila sinon j'apprends au fur a mesur
debutant91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 09h57   #15
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
qu'est ce qu'il te reste a régler comme problème ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 10h23   #16
Invité de passage
 
Inscription : février 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 8
Points : 0
Points : 0
Citation:
Envoyé par stealth35 Voir le message
qu'est ce qu'il te reste a régler comme problème ?
j'ai réussi à faire un script (export.php) qui exporte des données vers Excel ou par exemple les script que vous m'avez donnes ci dessus, mon souci maintenant c'est que comment faire un lier sur le scrpit export.php et le scrpit recherche.php c'est à dire quand je fais une recherches les donnée trouvé peuvent se télécharger ou exporter vers Excel si je clique sur le bouton "Exporter".
voila mes scripts:
recherche.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('stock', $base) ;
 
?>
<style>
	body {background-color: #DAFFA8; background-image: url(imagefond.jpg);background-repeat: repeat-y;background-position: left top;}
	</style>
<center><table border bgcolor="#7FFF00"><tr>
  <CAPTION><strong>Produits disponibles dans le stock</strong></CAPTION>
<th>ID</th>
<th>Type</th>
<th>Marque</th>
<th>Modele</th>
<th>Format</th>
<th>Commentaires</th>
 
</tr>
 
<?php
	$marque=mysql_real_escape_string(htmlspecialchars ($_POST['Marque']));
	$produit=mysql_real_escape_string(htmlspecialchars ($_POST['Produit']));
	$format=mysql_real_escape_string(htmlspecialchars ($_POST['Format']));
	$type=mysql_real_escape_string(htmlspecialchars ($_POST['Type']));
	$modele=mysql_real_escape_string(htmlspecialchars ($_POST['Modele']));
 
$requete = "SELECT * FROM $produit WHERE 1=1 ";
 
if ($type != "") {
   $requete .= "AND Type= '".$type."' ";
}
if ($marque != "") {
   $requete .= "AND Marque= '".$marque."' ";
}
if ($modele != "") {
   $requete .= "AND Modele= '".$modele."' ";
}
if ($format != "") {
   $requete .= "AND Format = '".$format."' ";
}
 
if ($type != "") {
   $requete .= "OR Type= '".$type."' ";
}
if ($marque != "") {
   $requete .= "OR Marque= '".$marque."' ";
}
if ($modele!= "") {
   $requete .= "OR Modele= '".$modele."' ";
}
if ($format != "") {
   $requete .= "OR Format= '".$format."' ";
}
 
$res = mysql_query($requete) or die(mysql_error());
while ($donnees = mysql_fetch_array($res)) // On fait une boucle pour lister les résultats
{
?>
 
<tr>
<td><?php echo $donnees['ID'];?></td>
<td><?php echo $donnees['Type'];?></td>
<td><?php echo $donnees['Marque']; ?></td>
<td><?php echo $donnees['Modele']; ?></td>
<td><?php echo $donnees['Format']; ?></td>
<td><?php echo $donnees['Commentaires']; ?></td>
</tr>
 
 
<?php
}
echo"Pour faire une nouvelle recherche";
// Fin de la boucle
?>
     <html>
    <body>
 <form action="f_recherche_famille2.html" method="post">
 <p><input type="submit"style="width: 130px" value=" Cliquer ICI " /></p>;
</form>
<form action="export.php" method="post">
 <p><input type="submit"style="width: 130px" value=" Exporter " /></p>;
</form>
<form action="index.php" method="post">
			<p><input type="submit"style="width: 130px"  value="Fermer" /></p>
		</form>
	    </body>
    </html>
enfait dans le fichier recherche.php qui donne les résultats de la recherche, y'a un bouton(Exporter) qui apparaît avec ces résultats et qui peut exporter ces derniers vers excel.
mon script excel.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
    // à elle seule, la ligne suivante suffit à envoyer le résultat du script dans une feuille Excel
    header("Content-type: application/vnd.ms-excel");
    // la ligne suivante est facultative, elle sert à donner un nom au fichier Excel
   header("Content-Disposition: attachement; filename=c:\exportexl\ fichier_excel.xls");
  $DBHost="localhost";
  $DBUser="root";
  $DBPass="";
$DBName="valneo";
   // La suite est une simple requête php-mysql. On interroge la table utilisée dans l'exemple précédent.
   $bdd = mysql_connect($DBHost,$DBUser,$DBPass);
   mysql_select_db($DBName,$bdd);
   // notez la présence du caractère arobase (@) , en cas d'erreur,
  // il empêche PHP d'écrire un message d'erreur sur le navigateur
    $requete=@mysql_query('SELECT* FROM pc ');
    // on vérifie le contenu de  la requête ;
    if (@mysql_num_rows($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 '<table border=1>
            <!-- impression des titres de colonnes -->
             <TR><TD>ID</TD><TD>Marque</TD><TD>Modele</TD></TR><TR>';
 
    // lecture du contenu de la requête avec 2 boucles imbriquées; par ligne et par colonne
    for ($ligne=0 ; $ligne<@mysql_numrows($requete);$ligne++)
     {
         for ($colonne = 0;$colonne < 3 ; $colonne++)
              {
                 print '<TD>' .mysql_result($requete , $ligne,$colonne).  '</TD>';
              }
       print '</TR>';
      }
    print '</TABLE>';
    mysql_close();
 
// on informe l'utilisateur de la réussite
   if (@mysql_num_rows($requete) >0)
        {
            print "<script> alert('La table est bien mise à jour !')</script>";
        }
?>
ce que je veux comment le programme excel.php va savoir qu'on est dans tell recherche et telle table autrement dit comment adapter cette ligne pour qu elle soit généralisée
Code :
$requete=@mysql_query('SELECT* FROM pc ');
je sais pas si je suis claire ou pas.merci beaucoup
debutant91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 15h37   #17
Invité de passage
 
Inscription : février 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 8
Points : 0
Points : 0
bonjour j'ai trouvé grâce à votre aide mais j'ai toujours un petit souci.quand j'envoi les données par la méthode $_SESSION je récupère dans la tableau Excel que les données de la ligne correspondant mon clique( j'ai un petit lien "export vers Excel" sur chaque ligne) et moi je veux qu'il y a un seul bouton (lien) quand je clique dessus il me donne toutes les données sur tableau Excel.mecri
voila mon fichier qui traite la recherche (recherche.php)et qui donne les donnée se forme tableau
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
session_start();
 
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('stock', $base) ;
 
?>
<style>
	body {background-color: #DAFFA8; background-image: url(imagefond.jpg);background-repeat: repeat-y;background-position: left top;}
	</style>
<center><table border bgcolor="#7FFF00"><tr>
  <CAPTION><strong>Produits disponibles dans le stock</strong></CAPTION>
<th>ID</th>
<th>Marque</th>
<th>Processeur</th>
<th>Commentaires</th>
 
</tr>
 
<?php
	$marque=mysql_real_escape_string(htmlspecialchars ($_POST['Marque']));
	$produit=mysql_real_escape_string(htmlspecialchars ($_POST['Produit']));
	$processeur=mysql_real_escape_string(htmlspecialchars ($_POST['Processeur']));
	$frequence=mysql_real_escape_string(htmlspecialchars ($_POST['Frequence']));
 
$requete = "SELECT * FROM $produit WHERE 1=1 ";
$_SESSION['produit'] = "$produit";
if ($processeur != "") {
   $requete .= "AND Processeur= '".$processeur."' ";
}
if ($marque != "") {
   $requete .= "AND Marque = '".$marque."' ";
}
 
if ($processeur != "") {
   $requete .= "OR Processeur= '".$processeur."' ";
}
if ($marque != "") {
   $requete .= "OR Marque = '".$marque."' ";
}
 
$res = mysql_query($requete) or die(mysql_error());
while ($donnees = mysql_fetch_array($res)) // On fait une boucle pour lister les résultats
{
?>
 
<tr>
<td><?php echo $donnees['ID'];?></td>
<td><?php echo $donnees['Marque']; ?></td>
<td><?php echo $donnees['Processeur'];?></td>
<td><a href="export_excel.php?id=<?php echo $donnees['ID'];?>&marque=<?php echo $donnees['Marque'];?>&processeur=<?php echo $donnees['Processeur'];?>&produit=<?php echo $_SESSION['produit'];?>;">Exporter vers Excel</a></td>
 
</tr>
 
<?php
}// Fin de la boucle
echo"Pour faire une nouvelle recherche";
?>
et voila le fichier qui exporte vers Excel.(export_excel.php)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
session_start();
 print_r($_GET);
//$id=intval($_GET['id']);
 $marque=$_GET['marque'];
  $processeur=$_GET['processeur'];
  $produit=$_GET['produit'];
    // à elle seule, la ligne suivante suffit à envoyer le résultat du script dans une feuille Excel
    header("Content-type: application/vnd.ms-excel");
    // la ligne suivante est facultative, elle sert à donner un nom au fichier Excel
   header("Content-Disposition: attachement; filename=c:\exportexl\ fichier_excel.xls");
  // require_once("conf_int.php");
  $DBHost="localhost";
  $DBUser="root";
  $DBPass="";
$DBName="stock";
   // La suite est une simple requête php-mysql. On interroge la table utilisée dans l'exemple précédent.
   $bdd = mysql_connect($DBHost,$DBUser,$DBPass);
   mysql_select_db($DBName,$bdd);
   // notez la présence du caractère arobase (@) , en cas d'erreur,
  // il empêche PHP d'écrire un message d'erreur sur le navigateur
    $requete=@mysql_query("SELECT ID,'".$marque."','".$processeur."',commentaires FROM $produit ");
    // on vérifie le contenu de  la requête ;
    if (@mysql_num_rows($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 '<table border=1>
            <!-- impression des titres de colonnes -->
             <TR><TD>ID</TD><TD>Marque</TD><TD>Processeur</TD><TD>Commentaires</TD></TR><TR>';
 
    // lecture du contenu de la requête avec 2 boucles imbriquées; par ligne et par colonne
    for ($ligne=0 ; $ligne<@mysql_numrows($requete);$ligne++)
     {
         for ($colonne = 0;$colonne < 4 ; $colonne++)
              {
                 print '<TD>' .mysql_result($requete , $ligne,$colonne).  '</TD>';
              }
       print '</TR>';
      }
    print '</TABLE>';
    mysql_close();
 
// on informe l'utilisateur de la réussite
   if (@mysql_num_rows($requete) >0)
        {
            print "<script> alert('La table est bien mise à jour !')</script>";
        }
?>
je vous signale que les programmes marchent et ils donnent des résultats mais il faut qu il y'a un seul lien et qui donne toutes les données .Merci beaucoup
debutant91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h56.


 
 
 
 
Partenaires

Hébergement Web