Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
J'ai un soucis avec un code qui génère des fichiers xls :
include('connexion.php');
// Connexion MySQL
// la variable qui va contenir les données CSV
$outputCsv = '';
// Nom du fichier final
$fileName = 'produit_non_vendu.csv';
$month = $_POST['choix_mois'];
$DATE = date('Y-'.$month.'');
$requete = "SELECT CodeBarre,NumeroSerie,Etat,NumeroLivraison,ReferenceConstructeur FROM produits WHERE DateCreation LIKE '%$DATE%' AND Etat = 'ESTOCK' ORDER BY id";
$sql = mysql_query($requete);
if(mysql_num_rows($sql) > 0)
{
$i = 0;
while($Row = mysql_fetch_assoc($sql))
{
$i++;
// Si c'est la 1er boucle, on affiche le nom des champs pour avoir un titre pour chaque colonne
if($i == 1)
{
foreach($Row as $clef => $valeur)
$outputCsv .= trim($clef).';';
$outputCsv = rtrim($outputCsv, ';');
$outputCsv .= "\n";
}
// On parcours $Row et on ajout chaque valeur à cette ligne
foreach($Row as $clef => $valeur)
$outputCsv .= trim($valeur).';';
// Suppression du ; qui traine à la fin
$outputCsv = rtrim($outputCsv, ';');
// Saut de ligne
$outputCsv .= "\n";
}
}
else
// retour sur la page daccueil
exit('<meta http-equiv="refresh" content="0; url=../index.php?resultats=aucun" />');
// Entêtes (headers) PHP qui vont bien pour la création d'un fichier Excel CSV
header("Content-disposition: attachment; filename=".$fileName);
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: application/vnd.ms-excel\n");
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
echo $outputCsv;
mysql_close($db);
exit();
?>
Avec une requête simple, j'obtiens mon résultat mais si je met un INNER JOIN, cela ne fonctionne pas. Quelqu'un pourrait m'en expliquer la raison ?
Merci beaucoup pour vos réponses,
Antho
Hors ligne
Bonjour,
Dans l'exemple, je n'ai pas fait d'inner join mais en gros la requête deviendrait :
Merci pour ta réponse :-)
Hors ligne
Saluton,
Il nous faudrait, a minima, le résultat d'un SHOW CREATE TABLE sur chacune des deux tables produits et produits_config, car si, par exemple, la colonne DateCreation est, ce qui serait normal, de type DATE ou DATETIME voire TIMESTAMP, le LIKE a peu de chance d'être opérant.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
Il s'agit d'un datetime, dans ce cas précis comment faire ? Pourquoi cela n'est pas opérant ? peut être que le like ne fonctionne pas sur un champ datetime ?
Cela fonctionne parfaitement si la requête ne contient pas le INNER JOIN
Merci beaucoup
Antho
Dernière modification par Anthotill (30-11-2010 13:26:13)
Hors ligne
Il s'agit d'un datetime, dans ce cas précis comment faire ? Pourquoi cela n'est pas opérant ? peut être que le like ne fonctionne pas sur un champ datetime ?
Non, non, pas peut-être...
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Legu Tiun Diablan Manlibron, tout simplement.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
Dans ce cas, comment faire alors ? Peut être
Qu'en pensez vous ?
Antho
Hors ligne
$DATE = date('Y-'.$month.'');
donc
$DATE=date('Y');
WHERE (YEAR(DateCreation) = $DATE AND MONTH(DateCreation) = $month)
a++
Hors ligne
@MK j'avoue que je pige pas, peut être hormis le fait que le like sur des nombre n'est pas ansi SQL mais une 'extension' mysql
enfin c'est quand même bon à savoir
merci
@+
Il en faut peu pour être heureux pompompompompompompompompompompom
Hors ligne
La colonne DateCreation est un DATETIME, c'est donc un type particulier de données que MySQL manipulent selon des règles très particulières qui sont détaillées dans la doc et pour lesquellesune petite collection de fonctions spécifiques sont proposées.
LIKE est vraiment le dernier opérateur de comparaison qu'il me viendrait à l'idée d'utiliser sur des colonnes de ce type.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
Votre débat m'échappe, vous êtes des pros !
J'ai donc remplacé
Ça à l'air de fonctionner même si la solution de Pierrot est également à retenir.
Merci beaucoup à tous, je pense que l'on peux dire que mon problème est résolu !
Vous êtes trop fort les gars, continuez comme ça ! Bravo et merci beaucoup
Antho
Hors ligne
Pages :: 1