Recuperer resultat d'un select dans un tableau

Recuperer resultat d'un select dans un tableau - PHP - Programmation

Marsh Posté le 16-10-2011 à 21:07:02    

Bonjour,
 
Je cherche bêtement à récupérer le résultat d'une requête sous forme d'un tableau, mais comme les champs de la bdd sont linéaires, je peine un peu !
 
Voici ma table à récupérer en boucle :
http://www.357airsoft.com/~patfr/Capture.PNG
 
Je cherche à obtenir ce résultat :
 
your-name = xxxx
your-email = xxx@xxx.fr
etc....
 
Merci pour votre aide !

Reply

Marsh Posté le 16-10-2011 à 21:07:02   

Reply

Marsh Posté le 18-10-2011 à 08:17:45    

il n'y a pas de difficulté particulière...qu'est-ce que tu as fait? Qu'est-ce qui te pose problème?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-10-2011 à 08:51:09    

skeye a écrit :

il n'y a pas de difficulté particulière...qu'est-ce que tu as fait? Qu'est-ce qui te pose problème?


 
Je pense que plutot que de faire une requete par champs, il doit y avoir moyen de mettre tout ça dans un array ?
 
Voila mon code actuel pour récupérer les champs :
 

Code :
  1. $select = "SELECT DISTINCT submit_time  FROM wp_cf7dbplugin_submits WHERE form_name = 'Formulaire de contact 1'";
  2. $requete = mysql_query($select);
  3.  while($row= mysql_fetch_array($requete)) {
  4.  $sql = "SELECT field_value  FROM wp_cf7dbplugin_submits WHERE field_name = 'your-name' AND submit_time = '".$row['submit_time']."'";
  5.  $res = mysql_query($sql);
  6.  $name= mysql_fetch_array($res);
  7.  $sql1 = "SELECT field_value  FROM wp_cf7dbplugin_submits WHERE field_name = 'your-email' AND submit_time = '".$row['submit_time']."'";
  8.  $res1 = mysql_query($sql1);
  9.  $mail= mysql_fetch_array($res1);
  10.  $sql2 = "SELECT field_value  FROM wp_cf7dbplugin_submits WHERE field_name = 'your-subject' AND submit_time = '".$row['submit_time']."'";
  11.  $res2 = mysql_query($sql2);
  12.  $subject= mysql_fetch_array($res2);
  13.  $sql3 = "SELECT field_value  FROM wp_cf7dbplugin_submits WHERE field_name = 'CP' AND submit_time = '".$row['submit_time']."'";
  14.  $res3 = mysql_query($sql3);
  15.  $postcode= mysql_fetch_array($res3);
  16.  $sql4 = "SELECT field_value  FROM wp_cf7dbplugin_submits WHERE field_name = 'your-message' AND submit_time = '".$row['submit_time']."'";
  17.  $res4 = mysql_query($sql4);
  18.  $message= mysql_fetch_array($res4);


 
Il doit y avoir un moyen d’éviter les 6 requêtes je pense.
Merci

Reply

Marsh Posté le 18-10-2011 à 09:09:26    

Il n'y a rien de génial pour ce genre de structures de tables.
Mais si ça revient à tout récupérer en groupant par submit_time, autant faire directement un

Code :
  1. SELECT * FROM wp_cf7dbplugin_submits


et te faire une structure mieux adaptée en php à la lecture du resultset...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-10-2011 à 09:35:27    

skeye a écrit :


et te faire une structure mieux adaptée en php à la lecture du resultset...


 
C'est justement ce que je cherche à faire mais je ne sais pas trop comment m'y prendre.
Au départ j'étais parti sur quelque chose comme ça :
 

Code :
  1. $sql = "SELECT * FROM wp_cf7dbplugin_submits";
  2. $result = mysql_query($sql);
  3. $data= mysql_fetch_array($result);
  4. for ($i=0, $n=sizeof($data['field_name']); $i<$n; $i++) :
  5.   echo $data['field_name'][$i]['field_value'];
  6. endforeach;


 
Mais ça ne fonctionne pas !

Reply

Marsh Posté le 18-10-2011 à 09:40:29    

Fais un var_dump($data) après avoir récupéré tes résultats, tu devrais mieux comprendre la structure de ce que tu récupères, et donc ton erreur.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-10-2011 à 13:41:32    

tu le fais à l'envers. La boucle qui marche doit plus ressembler à ça:
 
for ( $i=0;$n<count($data);$i++)
{
  echo $data[$i]['field_name']
}


---------------
Aimer les femmes intelligentes est un plaisir de pédéraste. (Charles Baudelaire) - Vous vulgarisez :o (Jean-Kevin Dubois)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed