Page 1 sur 1

Ennvoie formaulaire PHP vers Excel Ou Autre

Posté : 17 déc. 2008, 15:33
par ju3979
Bonjour à tous,

Je vous explique le contexte:
J'ai actuellement un formaulaire php que les utilisateurs remplissent et que nous recevons par mail
Jusque La tout fonctionne

Maintenant je souhaiterais ques les informations saissies dans le formaulaire soit visible et modifiable.
Quel est la solution la plus simple ?

Envoie des données vers un fichier excel ?
Visualiser et modifier les données via une page html ?

Par contr les données doivent arriver dans le même fichier préformaté et je souhaite garder un historique (un seul fichier pour toute les formulaires reçus)

Pouvez vous m'aider ?

D'avance merci

Posté : 17 déc. 2008, 19:22
par hi-logik
SALUT !

Si j'ai bien compris tu souhaite enregistrer les informations venant d'un formulaire ?

ou tu pourrais les éditer, modifier et effacer ?

si c'est le cas as tu accès à une base de donnée ?

en plus de les envoyer par email

le mieux serais d'enregistrer ces informations dans une base de donnée !

puis éventuellement faire un export de ta base de donnée en CSV avec un séparateur
pour faire simple en créant une fonction qui s'occupe de récupérer les infos
de ta base et les convertir en CSV !

sinon si tu n'as pas de base de donnée tu peux les enregistrer direct dans un fichier CSV

car si j'ai bien compris tu souhaite traiter tes infos par Excel ?

Posté : 17 déc. 2008, 20:58
par ju3979
oui c'est bien ça effectivement je suis entrain de voir pour en plus de les recevoir par mail, les enregistrée dans une table d'une BDD
Sur ce poitn je suis entrain d'eesayer de le faire

Par contre ensuite je souhaiterais que 2 type d'utilisateures puissent y accèder

Les premiers uniquement en visualisation
Les deuxièmes en modification et ajout

Existe t-il un moyen simple de créer une interface simplifié pour répondre à ce besoin ?

Merci pour l'aide

Posté : 17 déc. 2008, 21:25
par hi-logik
Et bien pour les droits administrateur je suis pas très calé !

mais je crois que tu peux faire une table administrateur avec pseudo, mot de pass(crypté en md5 ou autre) et une table utilisateur

ou bien une seul table en mettant un champ DROIT ou tu mettrais 0 pour admin et 1 pour
utilisateur limité !

puis tu gère ça avec une session en php !

du style
if($_SESSION['droit'] == 0) {

  echo '<a href="fichier.php?action=alter">modifier</a>';

}
du coup le lien modifier ne sera pas présent si il n'est pas sur la session admin

voila comment je vois les choses


je penses que tu trouveras pas mal de ressource sur le web qui en parles

^^ ++

Posté : 17 déc. 2008, 23:02
par ju3979
Grace au code ci dessous j'ai réussi à créer une pae permettant de visualiser l'ensemble des données de ma BDD

Par contre maintenant je souhaiterais pouvoir via cette affichage pouvoir modifier les données via par exemple un bouton modifier par enregistrement

voici mon code

Code : Tout sélectionner

<html> <body> <?php //========================================= // includes du fichier fonctions //========================================= require 'fonctions.php'; //========================================= // information pour la connection à le DB //========================================= $host = 'localhost'; $user = 'root'; $pass = ''; $db = 'formulaire'; //========================================= // initialisation des variables //========================================= // on va afficher 15 résultats par page. $nombre = 15; // si limite n'existe pas on l'initialise à zéro if (!$limite) $limite = 0; // on cherche le nom de la page. $path_parts = pathinfo($_SERVER['PHP_SELF']); $page = $path_parts["basename"]; //========================================= // connection à la DB //========================================= $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); //========================================= // requête SQL qui compte le nombre total // d'enregistrements dans la table. //========================================= $select = 'SELECT count(id) FROM demande'; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $row = mysql_fetch_row($result); $total = $row[0]; //========================================= // vérifier la validité de notre variable // $limite; //========================================= $verifLimite= verifLimite($limite,$total,$nombre); // si la limite passée n'est pas valide on la remet à zéro if(!$verifLimite) { $limite = 0; } //========================================= // requête SQL qui ne prend que le nombre // d'enregistrement necessaire à l'affichage. //========================================= $select = 'select id_responsable,responsable FROM demande ORDER BY responsable ASC limit '.$limite.','.$nombre; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); //========================================= // si on a récupéré un resultat on l'affiche. //========================================= if($total) { // début du tableau echo '<table bgcolor="#FFFFFF">'."\n"; // première ligne on affiche les titres id_responsable et responsable dans 2 colonnes echo '<tr>'; echo '<td bgcolor="#669999"><b><u>id_responsable</u></b></td>'; echo '<td bgcolor="#669999"><b><u>responsable</u></b></td>'; echo '</tr>'."\n"; // lecture et affichage des résultats sur 2 colonnes while($row = mysql_fetch_array($result)) { echo '<tr>'; echo '<td bgcolor="#CCCCCC">'.$row['id_responsable'].'</td>'; echo '<td bgcolor="#CCCCCC">'.$row['responsable'].'</td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; } else echo 'Pas d\'enregistrements dans cette table...'; mysql_free_result($result); //========================================= // si le nombre d'enregistrement à afficher // est plus grand que $nombre //========================================= if($total > $nombre) { // affichage des liens vers les pages affichePages($nombre,$page,$total); // affichage des boutons displayNextPreviousButtons($limite,$total,$nombre,$page); } ?> </body> </html>
D'avance merci pour l'aide [/quote]

Posté : 17 déc. 2008, 23:29
par hi-logik
et bien tu peux mettre un lien modifié dans ta boucle
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row['id_responsable'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['responsable'].'</td>';
echo '<td bgcolor="#CCCCCC"><a href="form?action=modifier&id='.$row['id_responsable'].'">'.$row['responsable'].'</a></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
} 
tu aura sur ton lien l'id et l'action que tu souhaites réaliser

et si vraiment tu veux le faire avec un bouton tu peux faire comme ça dans la boucle:

Code : Tout sélectionner

<input type="button" name="lien1" value="modifier" onClick="self.location.href='formulaire.php?action=modifier&id=$id'" />
ensuite sur ton formulaire des données à modifier

tu fais un test du genre
if(isset['$_GET['action']) && $_GET['action']=="modifier")
{
       // alors action !
}
tu appelle les infos de ta base de donnée correspndant à l'id passer en paramètre GET

et tu les insert dans les attributs value du champs formulaire correspondant !

Posté : 18 déc. 2008, 09:45
par ju3979
Ok

Mais moi je souhaiterais avoir un seul lien "modifier" par ligne d'enregistrement et quand on clic dessus on a la possibilité de modifier l'ensemble des champs de l'enregistrement

Merci pour l'aide

Posté : 18 déc. 2008, 20:47
par hi-logik
Si j'ai bien compris tu souhaite qu'il y est un lien ou bouton modifier sur chaque ligne qui s'affiche ?

car si c'est ce que j'ai compris et bien la réponse est au dessus !

tu ajoutes un lien dans ton tableau de la boucle while !