Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/08/2011, 04h41   #1
Nouveau Membre du Club
 
karine bazin
Inscription : juillet 2010
Messages : 90
Détails du profil
Informations personnelles :
Nom : karine bazin

Informations forums :
Inscription : juillet 2010
Messages : 90
Points : 25
Points : 25
Par défaut erreur PDO rowcount + transmission donnée $_POST

Bonjour,

J'ai plein d'erreurs et je m'en sort pas! Dur dur d'être débutant!

Voila, Je fais une requête pour récupérer le numéro des identifiants de mes tables. Je voudrais afficher un ensemble de bouton avec le nom et la date (çà cela fonctionne) mais je voudrais que cela retienne l’identifiant. En effet, je voudrais que l’identifiant puisse se transmettre sur mon autre fichier pour l’utiliser après dans une autre requête selon la sélection du bouton.
Je ne sais pas si c’est très clair.
Pour l’instant j’ai tout faux car cela ne marche pas du tout !
J'ai une erreur avec rowcount qui n'est pas défini et je suis vraiment embêtée avec ce $_POST pour le récupérer et connaitre la valeur!

Ne faites pas trop la grimace en le lisant, je débute !


Le premier fichier:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
<?php
try
   {
    // On se connecte à MySQL
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=easyreport', 'root', '', $pdo_options);
 
	 $reponse = $bdd->prepare('SELECT idrapport, nompatient ,daterapport FROM rapport WHERE nompatient = ? AND iddirecteur != 0');
   $reponse->execute(array($_POST['patientname']));
	$nbr=rowCount($reponse); 
 
   if (FALSE === ($donnees = $reponse->fetch())) {
    // pas de ligne
	echo 'Aucun rapport à ce nom a été trouvé';
} else { 
 $i=0; 
$_SESSION['listeidentifiantcorrection']=array(); 
    		do {
			$_SESSION['listeidentifiantcorrection'][$i]=$donnees["idrapport"];; 
$i++; 
				?>
	 <form action="choixvisualisation.php" method="post">
	 	 <input type="submit" name= " <?php echo $donnees['idrapport'] ?>" value=" <?php  echo $donnees['nompatient'].' '.$donnees['daterapport'] ?> "/> </br> 
	</form>
		 <?php 
		}	
while ($donnees = $reponse->fetch() AND $i<=$nbr);		
 
for($nbrligne=0; $nbrligne<sizeof($_SESSION['listeidentifiantcorrection']);$nbrligne++) 
    { 
    echo $_SESSION['listeidentifiantcorrection'][$nbrligne];
    } 
 
	$reponse->closeCursor(); // Termine le traitement de la requête
}
Le deuxième fichier:

Code :
1
2
3
4
5
6
7
8
 
 
		for($i=0;$i<sizeof($_SESSION['listeidentifiantcorrection']);$i++)
    { 
	$variable=$_SESSION['listeidentifiantcorrection'][$i]
   if isset($_POST[$variable])
   {echo $_SESSION['listeidentifiantcorrection'][$i].'</br>'.;
   }

Merci pour votre aide
kbazin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 10h52   #2
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Il y a moyen d'optimiser ton code, mais ma première question serait :

As tu mis session_start() dans tes pages .
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 14h58   #3
Nouveau Membre du Club
 
karine bazin
Inscription : juillet 2010
Messages : 90
Détails du profil
Informations personnelles :
Nom : karine bazin

Informations forums :
Inscription : juillet 2010
Messages : 90
Points : 25
Points : 25
OUI OUI il y a bien session start() j'ai mis qu'une partie du code!!!
kbazin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 15h09   #4
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
dans les deux fichiers ?
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 01h57   #5
Nouveau Membre du Club
 
karine bazin
Inscription : juillet 2010
Messages : 90
Détails du profil
Informations personnelles :
Nom : karine bazin

Informations forums :
Inscription : juillet 2010
Messages : 90
Points : 25
Points : 25
Oui je les ai bien mis dans les deux fichiers
kbazin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 08h41   #6
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Ok, on va essayé de te faire réfléchir.

Tu veux récupérer l'identifiant (idrapport si j'ai compris), et pour cela tu met en place tout un mécanisme de session ?

voici des pistes :

Pourquoi ne pas le passer dans ton $_POST.

Connais-tu le type 'hidden' des inputs ?

Ton formulaire porte le nom de ton identifiant, pourquoi ne pas le récupérer ?
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 10h24   #7
Nouveau Membre du Club
 
karine bazin
Inscription : juillet 2010
Messages : 90
Détails du profil
Informations personnelles :
Nom : karine bazin

Informations forums :
Inscription : juillet 2010
Messages : 90
Points : 25
Points : 25
je suis désolé mais j'ai pas tout compris

Citation:
Tu veux récupérer l'identifiant (idrapport si j'ai compris), et pour cela tu met en place tout un mécanisme de session ?
j'ai cherché un peu en ligne et j'ai vu qu'il fallait utiliser les sessions car je peux avoir une liste de bouton selon le résultat de la requête.

Citation:
Pourquoi ne pas le passer dans ton $_POST.
je ne comprends pas je met déjà l'identifiant dans le $_POST mais je n'arrive pas à l'utiliser après

Citation:
Connais-tu le type 'hidden' des inputs ?
Je connais le nom, j'ai lu que cela n'était pas sécuritaire de l'utiliser d'où le fait que je passe par les sessions. mais je ne vois pas trop ce que cela changerai!

Citation:
Ton formulaire porte le nom de ton identifiant, pourquoi ne pas le récupérer ?
heu non, où alors j'ai pas compris!


Je suis pas sur d'avoir compris mais en gros faudrait que je rajoute un champs hidden comme le input pour récupérer l'identifiant?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 $reponse = $bdd->prepare('SELECT idrapport, nompatient ,daterapport FROM rapport WHERE nompatient = ? AND iddirecteur != 0');
   $reponse->execute(array($_POST['patientname']));
 
		   if (FALSE === ($donnees = $reponse->fetch())) {
    // pas de ligne
	echo 'Aucun rapport à ce nom a été trouvé';
} else { 
do {	?>
	 <form action="choixvisualisation.php" method="post">
 
	 <input type="submit" name= " <?php echo $donnees['idrapport'] ?>" value=" <?php  echo $donnees['nompatient'].' '.$donnees['daterapport'] ?> "/>
<input type="hidden" name=" id" value=" <?php  echo $donnees['idrapport'] ?> "/> </br> 
	</form>
		 <?php 
		}	
while ($donnees = $reponse->fetch() );		
 
$reponse->closeCursor(); // Termine le traitement de la requête
 
}
mais si j'ai plusieurs boutons cela ne va prendre que mon dernier id non?

Code :
1
2
 
echo 'id est '.$-POST['id'] ;
kbazin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 10h33   #8
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Fait comme ceci dans ton deuxième exemple

Code :
1
2
3
 
<input type="hidden" name="id" value=" <?php  echo $donnees['idrapport'] ?> " /> 
	</form>
Et tu récupère dans $_POST['id']
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 10h50   #9
Nouveau Membre du Club
 
karine bazin
Inscription : juillet 2010
Messages : 90
Détails du profil
Informations personnelles :
Nom : karine bazin

Informations forums :
Inscription : juillet 2010
Messages : 90
Points : 25
Points : 25
Je viens de comprendre!

Merci beaucoup, j'avais essayé de trouver toute seule sur les forums mais je me suis bien compliqué la vie pour rien!

kbazin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h25.


 
 
 
 
Partenaires

Hébergement Web