tri par date + génération csv

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : tri par date + génération csv

Re: tri par date + génération csv

par stealth35 » 06 janv. 2010, 17:29

protege ta valeur par contre

Re: tri par date + génération csv

par bastos37 » 06 janv. 2010, 17:28

Je viens de trouver la réponse #-o
SELECT * FROM ma_table WHERE created='".$_GET['created']."'";

Et c'est la même chose pour la génération du fichier avec la date.

Merci beaucoup pour m'avoir aiguillé.
A charge de revanche

Re: tri par date + génération csv

par stealth35 » 06 janv. 2010, 17:26

pourquoi tu mets un @ et apres une gestion d'erreur ?

Re: tri par date + génération csv

par bastos37 » 06 janv. 2010, 17:14

Bon je vais surement te paraitre un peu neuneu :oops: mais j'ai un problème avec la variable.
J'ai créé une page "export.php" dans laquelle je mets la requête suivante qui va générer mon csv
<?
$hote="localhost";
$base="Internet_v2";
$utilisateur="";
$pass="";
$date=$Result['created'];//je souhaite aussi mettre la date sur le fichier csv généré

$c=@mysql_connect("$hote","$utilisateur","$pass") or die('Echec de la connexion à la base de donnée');

mysql_select_db("$base") or die('Connexion à la base de donnée réussie mais table manquante ou endommagée'); 

$sql = "SELECT * FROM jos_ckforms_3 WHERE created=$date";

$Query = mysql_query($sql);

header("Content-Type: application/csv-tab-delimited-table");
header("Content-disposition: attachment; filename=table-".$date.".csv");
header("Pragma: no-cache");
header("Expires: 0");
...
?> 
Je ne sais plus comment on récupère la variable de export.php?created=".$Result['created']." :cry:
Peux tu m'aider ?
Je voulais aussi mettre la date sur le fichier généré mais ça je devrais m'en sortir (ou pas :D )

Re: tri par date + génération csv

par Invité » 06 janv. 2010, 16:42

Ok merci je vais essayé et je vous tiens au courant.
Encore super merci

Re: tri par date + génération csv

par Sodams » 06 janv. 2010, 16:34

Un petit détail en passant :
<?php
// J'ai choisi le mot de passe "ifas2010"
if (isset($_POST['mot_de_passe'])) // Si la variable existe
{
    // On se crée une variable $mot_de_passe avec le mot de passe entré
    $mot_de_passe = $_POST['mot_de_passe'];
}
else // La variable n'existe pas encore
{
    $mot_de_passe = ""; // On crée une variable $mot_de_passe vide
}
 
if ($mot_de_passe == "ifas2010") // Si le mot de passe est bon
{
     // INSTRUCTIONS
}
?>
Celà peut très bien se remplacer par :
<?php
// J'ai choisi le mot de passe "ifas2010"
if (isset($_POST['mot_de_passe']) && $_POST['mot_de_passe'] == "ifas2010") // Si la variable existe
{
     // INSTRUCTIONS
}
?>
Pourquoi?

Si tu utilises un AND dans ton if, et que la première instruction est fausse, il ne testera pas la deuxième. En d'autre mots, si isset($_POST['mot_de_passe']) == false, il ne testera pas $_POST['mot_de_passe'] == "ifas2010" et ne génerera donc pas d'erreur si $_POST['mot_de_passe'] n'existe pas.


Pour ton problème, pourquoi ne crées-tu pas un lien à la ligne suivante ? :
echo "<tr><td>".$Result['created']."</td></tr>";

// avec un lien
echo "<tr><td><a href='export.php?created=".$Result['created']."'>>".$Result['created']."</a></td></tr>";

Tu pourras ensuite executer une requête SQL avec WHERE created = [TA VARIABLE] pour récupérer la liste des informations du jour et les exporter.

Re: tri par date + génération csv

par zeus » 06 janv. 2010, 12:56

Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

tri par date + génération csv

par bastos37 » 06 janv. 2010, 12:52

Bonjour, je vais essayé d'être clair :
- j'ai créé un formulaire qui permet d'enregistrer des infos dans une table.
- je souhaite que les résultats soient affichés par jour : c'est à dire qu'il peut y avoir plusieurs enregistrements par jour mais que la date d'enregistrement ne s'affiche qu'une seule fois. J'ai réussi à faire ceci :
<?php
// J'ai choisi le mot de passe "ifas2010"
if (isset($_POST['mot_de_passe'])) // Si la variable existe
{
    // On se crée une variable $mot_de_passe avec le mot de passe entré
    $mot_de_passe = $_POST['mot_de_passe'];
}
else // La variable n'existe pas encore
{
    $mot_de_passe = ""; // On crée une variable $mot_de_passe vide
}
 
if ($mot_de_passe == "ifas2010") // Si le mot de passe est bon
{
// On affiche la page cachée.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
        <p>Sélectionnez dans la liste la journée que vous souhaitez télécharger</p>
				
			<?php
			
			$hote="localhost";
			$base="Internet_v2";
			$utilisateur="";
			$pass="";
			$c=@mysql_connect("$hote","$utilisateur","$pass") or die('Echec de la connexion à la base de donnée');
			mysql_select_db("$base") or die('Connexion à la base de donnée réussie mais table manquante ou endommagée'); 
			$sql = "SELECT * FROM jos_ckforms_3 ORDER BY created";
			$Query = mysql_query($sql);
			$created = 0;
			
			echo "<table>";
			while( $Result = mysql_fetch_array($Query) )
				{
				    if( $created == $Result['created'] )
				    {
				        echo "<tr><td>".$Result['NOM']."</td></tr>";
				    }
				    else
				    {
				        echo "<tr><td>".$Result['created']."</td></tr>";
				        echo "<tr><td>".$Result['NOM']."</td></tr>";
				        $created = $Result['created'];
				    }
				}
			echo "</table>";

			?>       
    </body>
</html>
<?php
}
else // le mot de passe n'est pas bon
{
// On affiche la zone de texte pour rentrer le mot de passe.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	    <head>
	        <title>Page protégée par mot de passe</title>
	        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	    </head>
	    <body>
			<p>Veuillez entrer le mot de passe pour obtenir l'accès à la zone de pré-inscription aux concours IFAS:</p>
			<form action="index.php" method="post">
			<p>
			<input type="text" name="mot_de_passe" /> <input type="submit" value="Valider" />
			</p>
			</form>
	    </body>
</html>


<?php
} // Fin du else
// Fin du code :)
?>
- ensuite et c'est là que ça se complique je veut créer un lien sur les dates qui génèrera un fichier csv avec les enregistrements du jour sélectionné.
Comment faire ? J'arrive à récupérer toutes les donnes de la table dans un fichier csv mais je voudrai pouvoir récupérer jour par jour
J'espère avoir été clair.
Merci d'avance