Suivant précédent avec ID

Résolu
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   -  
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je veux afficher les constantes d'un patient. Je souhaite en afficher 10 par pages.
Mais lorsque je passe à la page 2 j'ai une erreur sur la requête, car il récupère pas l'ID du patient choisi.
J'appel un fichier fonction :
//récupération de $limite
    if(isset($_GET['limite'])) 

        $limite=$_GET['limite'];
    else   $limite=0;


function verifLimite($limite,$total,$nombre) {

    // je verifie si limite est un nombre.

    if(is_numeric($limite)) {

        
// si $limite est entre 0 et $total, $limite est ok

        // sinon $limite n'est pas valide.

        if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) {

            // j'assigne 1 à $valide si $limite est entre 0 et $max

            $valide = 1;

        }    

        else {

            // sinon j'assigne 0 à $valide

            $valide = 0;

        }

    }

    else {

            // si $limite n'est pas numérique j'assigne 0 à $valide

            $valide = 0;

    }

// je renvois $valide

return $valide;

}



function affichePages($nb,$page,$total) {
        $nbpages=ceil($total/$nb);

        $numeroPages = 1;
        $compteurPages = 1;
        $limite  = 0;
		echo '<form name="essai" action="constante.php" method="post">';
        echo '<table border = "1" ><tr>'."\n";
        while($numeroPages <= $nbpages) {
        echo '<td ><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
		
        $limite = $limite + $nb;
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
            if($compteurPages == 10) {
            $compteurPages = 1;
            echo '<br>'."\n";
            }
        }
        echo '</tr>';

		echo '</form>';
	
		echo '</table>'."\n";
}

Et voici ma page de constante :
<?php
session_start();

include('connexion_bd.php');
// pour afficher les liens suivants et précédents


$_SESSION['id_patient'] =  $_POST['idusers'];

require ('fonction.php');
function dh($t)
{
	if ($t == "")
	{
		return "---";
	}
	else
	{
		return $t;
	}

}
?>
<html>
<head>
												<?php
																	$pat = "SELECT USER_LASTNAME, USER_FIRSTNAME, USER_BIRDTHDAY,USER_WEIGHT, USER_SIZE,USER_GS, pro_nom, pro_tel, pro_ville, pro_titre FROM professionnels, users WHERE professionnels.pro_id = users.PROF_ID AND USER_ID = '".$_SESSION['id_patient']."'";
																	$ex = mysql_query($pat);


																	while ($roow = mysql_fetch_array($ex))
																	{
																	?>
																		<td align="right">Nom :</td>
																		<td>&nbsp;<?php echo $roow[0]. ' '.$roow[1]; ?></td>
																		<td align="right">Né(e) le :</td>
																		<td>&nbsp;<?php echo $roow[2]; ?></td>
																	</tr>
																	<tr>
																		<td align="right">Taille :</td>
																		<td>&nbsp;<?php echo $roow[4]; ?></td>
																		<td align="right">GS :</td>
																		<td>&nbsp;<?php echo $roow[5]; ?></td>
																	</tr>
																	<tr>
																		<td align="right">Médecin traitant :</td>
																		<td>&nbsp;<?php echo $roow[9]. ' '.$roow[6]; ?></td>
																		<td>&nbsp;<?php echo $roow[7]; ?></td>
																		<td>&nbsp;<?php echo $roow[8]; ?></td>
																	</tr>
																	<?php
																	}
																	?>
																	
																</table>
															
													<br>
													<?php
// initialisation des variables 

// on va afficher 5 résultats par page.

$nombre = 5;  

// si limite n'existe pas on l'initialise à zéro

if (!$limite) $limite = 0; 

// on cherche le nom de la page.    

$path_parts = pathinfo($_SERVER['PHP_SELF']);

$page = $path_parts["basename"];


$select = 'SELECT count(constportail_id) FROM constante_portail WHERE constportail_users_id = '.$_SESSION['id_patient'].'';

$result = mysql_query($select)  or die ('Erreur : '.mysql_error() );

$row = mysql_fetch_row($result);

$total = $row[0];

 // vérifier la validité de notre variable  $limite;

$verifLimite= verifLimite($limite,$total,$nombre);

// si la limite passée n'est pas valide on la remet à zéro

if(!$verifLimite)  {

    $limite = 0;

}


$select = 'select constportail_date,constportail_heure,constportail_poids,constportail_pouls,constportail_temp,constportail_tens,constportail_sat,constportail_glyc,constportail_med FROM constante_portail WHERE constportail_users_id = '.$_SESSION['id_patient'].' ORDER BY constportail_date ASC limit '.$limite.','.$nombre;

$result = mysql_query($select)  or die ('Erreur : '.mysql_error() );
 if($total) {

    // début du tableau
?>
 
<?php
    // lecture et affichage des résultats sur 2 colonnes    

    while($row = mysql_fetch_array($result)) {

      echo '<tr class=ligne_tab>';
																	echo '<td  align="center">'.dh($row[0]).'</td>';
																	echo '<td  align="center">'.dh($row[1]).'</td>';
																	echo '<td  align="center">'.dh($row[2]).'</td>';
																	echo '<td  align="center">'.dh($row[3]).'</td>';
																	echo '<td  align="center">'.dh($row[4]).'</td>';
																	echo '<td  align="center">'.dh($row[5]).'</td>';
																	echo '<td  align="center">'.dh($row[6]).'</td>';
																	echo '<td  align="center">'.dh($row[7]).'</td>';
																	echo '<td  align="center">'.dh($row[8]).'</td>';
																	echo '</tr>';
    }

    echo '</table>'."\n";

}
else echo 'Pas d\'enregistrements dans cette table...';

mysql_free_result($result);
 if($total > $nombre) {

    // affichage des liens vers les pages

affichePages($nombre,$page,$total);

} 
  ?>


														
</body>
</html>


J'ai enlevé le code superflu, je récupère l'ID du patient situé dans un form avec un hidden provenant d'une autre page.
La première page des constantes fonctionne très bien avec le bon patient, mais lorsque j'veux naviguer entre les constantes grâce au lien, il perd l'id du patient.
Merci de votre aide.

1 réponse

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Ton problème est « normal » : ta ligne $_SESSION['id_patient'] = $_POST['idusers']; va écraser l'id stockée du patient puisque $_POST['idusers'] n'existe pas lorsque la navigation se fait par les liens.

Je préconise donc de la remplacer par la ligne suivante :
if (isset($_POST['idusers'])) $_SESSION['id_patient'] = $_POST['idusers'];

Voilà !

Xavier
0
Melooo Messages postés 1405 Date d'inscription   Statut Membre Dernière intervention   84
 
Ca marche nickel !!! :)
encore une erreur toute bête
Merci Xavier
0