[RESOLU] 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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] 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

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

par Austin Russell » 07 févr. 2022, 19:55

Bonsoir. Merci pour ton conseil. J'ai dû mettre de côté mon site pour quelques temps, mais çà fonctionne au final.

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

par or 1 » 20 janv. 2022, 13:40

le principe :
$sessiontest = 0;
while(...){
$session = ...;
if($sessiontest != $session){
$sessiontest = $session;
...
}
...
}

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

par Austin Russell » 20 janv. 2022, 13:26

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.