Page 1 sur 1

créer plusieurs tables avec le même en-tête en fonction de la valeur d'une colonne de la table de base de données

Posté : 20 janv. 2022, 13:26
par Austin Russell
Bonjour. Pour un site à destination d'un pneumologue, je souhaiterais afficher une page avec un formulaire d'épreuve d'effort prérempli avec les données du patient concerné et en dessous de celui-ci afficher dans des tables les épreuves d'effort précédentes effectuées par le patient.

J'ai réussi à afficher un premier tableau contenant toutes les épreuves d'épreuve d'effort, mais comme le patient peut faire une série d'épreuves à un moment donné, s'arrêter, puis revenir à un autre temps pour refaire des épreuves d'efforts, j'ai créé un champ integer session dans ma base de données, qui indique à quelle session d'épreuves d'effort du patient appartiennent les épreuves.

Je souhaiterais afficher les épreuves d'effort des différentes sessions dans des tableaux différents les uns en dessous des autres avec à chaque fois l'en-tête du tableau.

J'ai essayé d'utiliser un second fetch pour récupérer le numéro Session de la row suivante dans la requête après avoir trier les lignes en ordre ascendant par leur numéro de session et comparer la valeur à l'id Session de la ligne actuelle, mais d'une part certaines lignes ne s'affichent pas dans mon tableau et d'autre part, je n'arrive pas à comprendre comment donner à chaque table un en-tête différent.

Code : Tout sélectionner

<?php $sql = "SELECT * FROM ee WHERE Patients_NIR= ? ORDER BY Session ASC"; $stmt = $pdo->prepare($sql); $stmt->execute([$_POST["nir"]]); while($row = $stmt->fetch()) { $val_current = $row["Session"]; $row_next = $stmt->fetch(PDO::FETCH_ASSOC); $val_next = $row_next["Session"]; if ($val_next > $val_current) { echo "<br>"; echo "<table>"; echo "<tr>"; echo "<td>"; echo "Medecin"; echo "</td>"; echo "<td>"; echo "Type_EE"; echo "</td>"; echo "<td>"; echo "Session"; echo "</td>"; echo "<td>"; echo "Date_EE"; echo "</td>"; echo "<td>"; echo "Age"; echo "</td>"; echo "<td>"; echo "IdEE"; echo "</td>"; echo "<td>"; echo "Taille_cm"; echo "</td>"; echo "<td>"; echo "Poids_kg"; echo "</td>"; echo "<td>"; echo "BMI"; echo "</td>"; echo "<td>"; echo "CoefficientW"; echo "</td>"; echo "</tr>"; echo "<tr>"; echo "<td><input type=\"hidden\" value=".$row['Medecin']." name=\"Medecin\">".$row['Medecin']."</td>"; echo "<td><input type=\"hidden\" value=".$row['Type_EE']." name=\"typeEE\">".$row['Type_EE']."</td>"; echo "<td><input type=\"hidden\" value=".$row['Session']." name=\"session\">".$row['Session']. </td>"; echo "<td><input type=\"hidden\" value=".$row['Date_EE']." name=\"dateEE\">".$row['Date_EE']."</td>"; echo "<td><input type=\"hidden\" value=".$row['Age']." name=\"age\">".$row['Age']."</td>"; echo "<td><input type=\"hidden\" value=".$row['IdEE']." name=\"idEE\">".$row['IdEE']."</td>"; echo "<td><input type=\"hidden\" value=".$row['Taille_cm']." name=\"tailleCM\">".$row['Taille_cm']."</td>"; echo "<td><input type=\"hidden\" value=".$row['Poids_kg']." name=\"poidsKG\">".$row['Poids_kg']."</td>"; echo "<td><input type=\"hidden\" value=".$row['BMI']." name=\"BMI\">".$row['BMI']."</td>"; echo "<td><input type=\"hidden\" value=".$row['CoefficientW']." name=\"coefficientW\">".$row['CoefficientW']."</td>"; echo "</tr>"; echo "</table>"; } else { echo "<tr>"; echo "<td><input type=\"hidden\" value=".$row['Medecin']." name=\"Medecin\">".$row['Medecin']."</td>"; echo "<td><input type=\"hidden\" value=".$row['Type_EE']." name=\"prenom\">".$row['Type_EE']."</td>"; echo "<td><input type=\"hidden\" value=".$row['Session']." name=\"dateDeNaissance\">".$row['Session']."</td>"; echo "<td><input type=\"hidden\" value=".$row['Date_EE']." name=\"adresse\">".$row['Date_EE']."</td>"; echo "<td><input type=\"hidden\" value=".$row['Age']." name=\"codePostal\">".$row['Age']."</td>"; echo "<td><input type=\"hidden\" value=".$row['IdEE']." name=\"ville\">".$row['IdEE']."</td>"; echo "<td><input type=\"hidden\" value=".$row['Taille_cm']." name=\"sexe\">".$row['Taille_cm']."</td>"; echo "<td><input type=\"hidden\" value=".$row['Poids_kg']." name=\"nir\">".$row['Poids_kg']."</td>"; echo "<td><input type=\"hidden\" value=".$row['BMI']." name=\"diagnostic\">".$row['BMI']."</td>"; echo "<td><input type=\"hidden\" value=".$row['CoefficientW']." name=\"medecin\">".$row['CoefficientW']."</td>"; echo "</tr>"; } } ?>
J'ai aussi essayé de stocker $row["Session"] dans une variable à la fin du tour de boucle pour la comparer avec la variable $row du prochain tour de boucle, mais çà n'a pas davantage de succès.

J'aimerais savoir ce qui cloche et ce que je peux faire pour obtenir plusieurs tables avec les données d'une session différente dans chaque tableau.

Merci d'avance à qui pourra me renseigner.

Re: créer plusieurs tables avec le même en-tête en fonction de la valeur d'une colonne de la table de base de données

Posté : 20 janv. 2022, 13:40
par or 1
le principe :
$sessiontest = 0;
while(...){
$session = ...;
if($sessiontest != $session){
$sessiontest = $session;
...
}
...
}

Re: créer plusieurs tables avec le même en-tête en fonction de la valeur d'une colonne de la table de base de données

Posté : 07 févr. 2022, 19:55
par Austin Russell
Bonsoir. Merci pour ton conseil. J'ai dû mettre de côté mon site pour quelques temps, mais çà fonctionne au final.