Page 1 sur 1

Séparer les résultats d'une requête sql

Posté : 30 janv. 2015, 13:21
par djmorphe
Bonjour à tous,
j'ai un petit problème auquel je ne trouve pas de solution.
voici l'exposé :


j'ai une base avec les champs type, nbr, prix, date, heure, mois
une page enregistrement.php qui enregistre plusieurs ligne en en même temps et c'est l'heure d'enregistrement couplé à la date qui me permet de générer des groupes.

je lance une requête sur ma page liste.php afin de récupérer les données voulu pour l'affichage
$sql = 'SELECT type, nbr, prix, date, heure FROM enregistrement WHERE date=date AND heure=heure ';
ensuite j'ai ma boucle
while ($data = mysql_fetch_array($req)) {
		if ($data['heure']==$data['heure']) {
		echo "<table>";
		echo '<tr><td>type : '.$data['type'].'</td><td>Nbr : '.$data['nbr'].'</td><td>Date :'.$data['date'].'</td></tr>';
		echo "</table>";
		}
	
}
actuellement cela m'affiche toute la table sous forme de liste !

mon problème est au niveau de l'affichage des données, je voudrais qu'elles soient groupées sous forme de tableau mais qu'a chaque changement de groupement (date=date AND heure=heure) cela créer un nouveau tableau afin de séparer les groupes d'enregistrements.

affichage souhaité :
date1 - heure1 :
type1 - nbr1 - prix1
type2 - nbr2 - prix2
type3 - nbr3 - prix3
...


date2 - heure2 :
type1 - nbr1 - prix1
type2 - nbr2 - prix2
type3 - nbr3 - prix3
...

j'espère être assez compréhensible et vous remerciant d'avance de votre aide
cdt
olivier

Re: Séparer les résultats d'une requête sql

Posté : 30 janv. 2015, 13:47
par tof73
$sql = 'SELECT type, nbr, prix, date, heure FROM enregistrement WHERE date=date AND heure=heure order by date, heure';
code non testé :
$first = true;
$date = "';
$heure = '';
while ($data = mysql_fetch_array($req)) {
  if($data['date'] != $date || $data['heure'] != $heure){
    if(!$first){
      echo "</table>";      
    }
    echo "<table>";
    $first = false;
    $date = $data['date'];
    $heure = $data['heure']; 
  }
  echo '<tr><td>type : '.$data['type'].'</td><td>Nbr : '.$data['nbr'].'</td><td>Date :'.$data['date'].'</td></tr>';        
}
echo "</table>";

Re: Séparer les résultats d'une requête sql

Posté : 30 janv. 2015, 13:52
par djmorphe
bonjour,
merci de ta réponse mais je n'ai toujours qu'un seul tableau à la sortie

cdt

Re: Séparer les résultats d'une requête sql

Posté : 30 janv. 2015, 15:22
par xTG
A la vue du code que l'on te propose si tu n'as qu'un seul tableau c'est que tous tes enregistrements sont à la même date/heure.
Et en effet c'est ce que retourne ta requête... (WHERE date=date AND heure=heure)

Bref il te faut revoir la condition de sélection de ta requête pour inclure les enregistrements qu'il te manque.

Re: Séparer les résultats d'une requête sql

Posté : 30 janv. 2015, 15:30
par djmorphe
bonjour,
pourtant j'ai bien des heures différentes par groupe, des dates identiques car plusieurs enregistrement dans une même journée.
après si vous avez une solution pour attribuer un id unique lors de l'enregistrement des lignes ça pourrais être plus simple à la sortie mais il faudrait que cet id puisse être attribuer à plusieurs lignes chose que je n'ai pas trouvé, c'est pour ça que j'ai opté pour un groupement date+heure pour différencier les enregistrement.

voilà ce que ça me retourne :

type : Impression A3 noir Nbr : 3 Date :29-01-2015 heure :16:04:44
type : Impression A3 couleur Nbr : 6 Date :29-01-2015 heure :16:04:44
type : Photocopie A3 noir Nbr : 7 Date :29-01-2015 heure :16:04:44
type : Photocopie A3 couleur Nbr : 8 Date :29-01-2015 heure :16:04:44
type : Impression A4 noir Nbr : 15 Date :29-01-2015 heure :16:04:44
type : Impression A4 couleur Nbr : 20 Date :29-01-2015 heure :16:04:44
type : Photocopie A4 noir Nbr : 30 Date :29-01-2015 heure :16:04:44
type : Impression A3 noir Nbr : 3 Date :29-01-2015 heure :16:08:03
type : Impression A3 couleur Nbr : 6 Date :29-01-2015 heure :16:08:03
type : Photocopie A3 noir Nbr : 7 Date :29-01-2015 heure :16:08:03
type : Photocopie A3 couleur Nbr : 8 Date :29-01-2015 heure :16:08:03
type : Impression A4 noir Nbr : 15 Date :29-01-2015 heure :16:08:03
type : Impression A4 couleur Nbr : 20 Date :29-01-2015 heure :16:08:03
type : Photocopie A4 noir Nbr : 30 Date :29-01-2015 heure :16:08:03
type : Photocopie A4 couleur Nbr : 5 Date :29-01-2015 heure :16:08:03
type : Impression A3 noir Nbr : 3 Date :29-01-2015 heure :16:16:14
type : Impression A3 couleur Nbr : 6 Date :29-01-2015 heure :16:16:14
type : Photocopie A3 noir Nbr : 7 Date :29-01-2015 heure :16:16:14
type : Photocopie A3 couleur Nbr : 8 Date :29-01-2015 heure :16:16:14
type : Impression A4 noir Nbr : 15 Date :29-01-2015 heure :16:16:14
type : Impression A4 couleur Nbr : 20 Date :29-01-2015 heure :16:16:14
type : Photocopie A4 noir Nbr : 30 Date :29-01-2015 heure :16:16:14
type : Photocopie A4 couleur Nbr : 5 Date :29-01-2015 heure :16:16:14
type : Photocopie A3 noir Nbr : 12 Date :29-01-2015 heure :16:19:18
type : Impression A4 couleur Nbr : 10 Date :30-01-2015 heure :09:47:45


et l'affichage recherché :

type : Impression A3 noir Nbr : 3 Date :29-01-2015 heure :16:04:44
type : Impression A3 couleur Nbr : 6 Date :29-01-2015 heure :16:04:44
type : Photocopie A3 noir Nbr : 7 Date :29-01-2015 heure :16:04:44
type : Photocopie A3 couleur Nbr : 8 Date :29-01-2015 heure :16:04:44
type : Impression A4 noir Nbr : 15 Date :29-01-2015 heure :16:04:44
type : Impression A4 couleur Nbr : 20 Date :29-01-2015 heure :16:04:44
type : Photocopie A4 noir Nbr : 30 Date :29-01-2015 heure :16:04:44


type : Impression A3 noir Nbr : 3 Date :29-01-2015 heure :16:08:03
type : Impression A3 couleur Nbr : 6 Date :29-01-2015 heure :16:08:03
type : Photocopie A3 noir Nbr : 7 Date :29-01-2015 heure :16:08:03
type : Photocopie A3 couleur Nbr : 8 Date :29-01-2015 heure :16:08:03
type : Impression A4 noir Nbr : 15 Date :29-01-2015 heure :16:08:03
type : Impression A4 couleur Nbr : 20 Date :29-01-2015 heure :16:08:03
type : Photocopie A4 noir Nbr : 30 Date :29-01-2015 heure :16:08:03
type : Photocopie A4 couleur Nbr : 5 Date :29-01-2015 heure :16:08:03


type : Impression A3 noir Nbr : 3 Date :29-01-2015 heure :16:16:14
type : Impression A3 couleur Nbr : 6 Date :29-01-2015 heure :16:16:14
type : Photocopie A3 noir Nbr : 7 Date :29-01-2015 heure :16:16:14
type : Photocopie A3 couleur Nbr : 8 Date :29-01-2015 heure :16:16:14
type : Impression A4 noir Nbr : 15 Date :29-01-2015 heure :16:16:14
type : Impression A4 couleur Nbr : 20 Date :29-01-2015 heure :16:16:14
type : Photocopie A4 noir Nbr : 30 Date :29-01-2015 heure :16:16:14
type : Photocopie A4 couleur Nbr : 5 Date :29-01-2015 heure :16:16:14


type : Photocopie A3 noir Nbr : 12 Date :29-01-2015 heure :16:19:18


type : Impression A4 couleur Nbr : 10 Date :30-01-2015 heure :09:47:45

ça sera je pense plus compréhensif
cdt