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

Petit nouveau ! | 5 Messages

30 janv. 2015, 13:21

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

Mammouth du PHP | 688 Messages

30 janv. 2015, 13:47

$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>";

Petit nouveau ! | 5 Messages

30 janv. 2015, 13:52

bonjour,
merci de ta réponse mais je n'ai toujours qu'un seul tableau à la sortie

cdt

ViPHP
xTG
ViPHP | 7331 Messages

30 janv. 2015, 15:22

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.

Petit nouveau ! | 5 Messages

30 janv. 2015, 15:30

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