Utiliser une requete SQL sur un fichier CSV-------------------------------------------
Url     : http://codes-sources.commentcamarche.net/source/100089-utiliser-une-requete-sql-sur-un-fichier-csvAuteur  : cs_mecrosoftDate    : 22/08/2013
Licence :
=========

Ce document intitul  Utiliser une requete SQL sur un fichier CSV  issu de CommentCaMarche
(codes-sources.commentcamarche.net) est mis  disposition sous les termes de
la licence Creative Commons. Vous pouvez copier, modifier des copies de cette
source, dans les conditions fixes par la licence, tant que cette note
apparat clairement.

Description :
=============

Recemment un client souhaitant stocker les mesures de capteurs, tel que pour la 
temperature ou l'humidit&eacute;, dans un fichier de type csv 
<br />; j'ai d&e
acute;cid&eacute; de cr&eacute;er un code &quot;simple&quot; et facilement maint
enable dans l'avenir. 
<br />
<br />Donc comment utilis&eacute; une requete SQ
L sur un fichier: 
<br />    -sqllite ou autre, avec import du csv dans la base
, mais le client vouler y acceder depuis excel pour l'imprimer 
<br />
<br />a
lors j'ai cr&eacute;er un semblant de parseur sql avec les class PHP; 
<br />et
 voil&agrave;! 
<br />
<br />pour l'instant on peut utiliser &quot;insert () i
nto () values ()&quot; et le &quot;select from where&quot; 
<br />via par  
<b
r />
<br /><pre class='code' data-mode='php'> 
$db-&gt;base(&quot;BDO_Salle_Bl
anche.csv&quot;)-&gt;insert(array(&quot;Time&quot;,&quot;Temperature&quot;,&quot
;Pression&quot;))-&gt;values(array(date(&quot;d/m/Y H:i:s&quot;), 23, 21))-&gt;e
xec(); 
</pre> 
<br />
<br /><pre class='code' data-mode='php'> 
$db-&gt;sel
ect(array(&quot;Time&quot;, &quot;Pression&quot;))-&gt;from(&quot;BDO_Salle_Blan
che.csv&quot;)-&gt;where(array(&quot;Time&quot;=&gt;&quot;20/08/2013 21:21:15&qu
ot;))-&gt;exec() 
</pre> 
<br />
<br /><pre class='code' data-mode='php'> 
$
resultat = $db-&gt;select(array(&quot;Time&quot;, &quot;Pression&quot;, &quot;Te
mperature&quot;))-&gt; 
from(&quot;BDO_Salle_Blanche.csv&quot;)-&gt; 
where(ar
ray( 
    &quot;Time&quot;=&gt;array( 
        &quot;name&quot;=&gt;&quot;self
::between&quot;, 
        &quot;args&quot;=&gt;array(&quot;21/08/2013 00:00:00&
quot;, &quot;21/08/2013 01:50:00&quot;) 
    ) 
))-&gt; 
exec(); 
</pre> 
<
br />
<br />Sinon pour une vrai base de donn&eacute;e MySQL ou MsSQL et des req
uetes bien plus compliqu&eacute; vous pouvez
<br /><pre class='code' data-mode=
'php'>
$db-&gt;exec(&quot;SELECT .... FROM .... WHERE .... ORDER BY ...&quot;);

</pre>
<br />
<br />Petit &agrave; petit j'ajouterai d'autre fonctionnalit&e
acute; de SQL comme le join, order by, ... 
<br />
<br />En esperant que cela 
puisse vous &ecirc;tre utile!
