[RESOLU] erreur de syntaxe Parse error: syntax error, unexpected '}' in C:\wamp\www\projet\detaildemande.php on line 43

Petit nouveau ! | 9 Messages

22 déc. 2015, 12:05

salut a tous!suis debutant en php et je veux faire une page pour qfficher les données recuperées dans la base afin de les afficher.je me coince a un message d'erreur qui dit: Parse error: syntax error, unexpected '}' in C:\wamp\www\uba projet\detaildemande.php on line 43.si quelqu'un a une idée sur d'ou provient cet erreur
voici mon code
<?php
					require_once 'connexionbdd.php';
					
					
								// Récupération des variables 
								$nom = $_POST['nom'];
								$prenom = $_POST['prenom'];
								$typecarte = $_POST['typecarte'];
					$prenom = htmlspecialchars($_POST['prenom']);
										
					$adresse = htmlspecialchars($_POST['adresse']);
					
					$telephone = htmlspecialchars($_POST['telephone']);
					
					$email = htmlspecialchars($_POST['email']);
					
					$numcompte = htmlspecialchars($_POST['numcompte']);
										
					$agence = htmlspecialchars($_POST['agence']);
					
					$typecarte = htmlspecialchars($_POST['typecarte']);
										
					$typecompte = htmlspecialchars($_POST['typecompte']);
					
					$date = htmlspecialchars($_POST['date']);
					
					$iddemande=$_GET["iddemande"] ;
					$requete = "SELECT * FROM  demande WHERE  iddemande=".$iddemande ; 
								$pdo = connexion(); 
								$resultat = $pdo->query($requete);
								if(!$resultat)
								{
									echo "Lecture impossible";
								}
								else
								  {
									$nbcol = $resultat->columnCount();
									$nbuser = $resultat->rowCount();
										$ligne = $resultat->fetch(PDO::FETCH_ASSOC); // Tableau associatif
										$titres = array_keys($ligne);
										$ligne = array_values($ligne);
										foreach($titres as $valeur)
								  }	
?>

Eléphant du PHP | 385 Messages

22 déc. 2015, 12:11

Bonjour, il manque les accolades de ton foreach même si il est vide, format ton code pour voir ces erreur plus facilement http://beta.phpformatter.com/.

Petit nouveau ! | 9 Messages

22 déc. 2015, 13:52

suis debutant en php.accolades a mettre ou?

Eléphant du PHP | 243 Messages

22 déc. 2015, 14:34

En gros à la fin de ton code, le foreach doit contenir des accolades :
if(!$resultat)
                {
                  echo "Lecture impossible";
                }
                else
                  {
                  $nbcol = $resultat->columnCount();
                  $nbuser = $resultat->rowCount();
                    $ligne = $resultat->fetch(PDO::FETCH_ASSOC); // Tableau associatif
                    $titres = array_keys($ligne);
                    $ligne = array_values($ligne);
                    foreach($titres as $valeur)
                    {
                    }
                  }
Mais bon, dans ce cas là il ne sert à rien, donc autant le supprimer.
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Petit nouveau ! | 9 Messages

22 déc. 2015, 15:26

ok ce probleme de syntaxe est resolu merci,meme si y a d'autres erreurs je m y attendais

Eléphant du PHP | 243 Messages

22 déc. 2015, 16:07

Si y'a encore d'autres erreurs, il faudra nous donner plus de détails.
  • Ce que tu cherches à faire
    Ce qui se passe
Dans le cas où le problème est résolu, un bouton du même nom est placé tout en haut ! :wink:
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Petit nouveau ! | 9 Messages

22 déc. 2015, 16:43

merci de prendre votre temps precieux pour m'aider.en fait jai un page rechercherdemande.php dont le code source ci dessous affiche quelques information sur une demande de carte enregistrée dans la base de donnée et les liens modifier,suprimer et detail(pour plus d' information)qui renvoient respectivement vers une page de modification,de suppression et de details traiter par d'autre fichier php,ici detaildemande.php qui est censé m'afficher toutes les information de la table concernée mais au lieu de ça plutot le message d'erreur: Undefined index: iddemande in C:\wamp\www\ projet\detaildemande.php on line 7



code soure rechercherdemande.php
<?php
					
					require_once 'connexionbdd.php';
					if (isset($_POST['rechercher']))
	                  {
					
						
						
							// Vérification de la saisie du mot-clef
							if(!empty($_POST['nom']))
							{
								// Récupération des variables 
								$nom = $_POST['nom'];
								$prenom = $_POST['prenom'];
								$typecarte = $_POST['typecarte'];
							
																
								// Création des requêtes de selection
								$requete = "SELECT nom AS 'nom', prenom AS 'prenom', typecarte AS 'type carte'   FROM  demande WHERE    nom  LIKE '%$nom%' AND prenom LIKE '%$prenom%' AND typecarte LIKE '%$typecarte%' ";
								$pdo = connexion(); 
								$resultat = $pdo->query($requete);
								if(!$resultat)
								{
									echo "Lecture impossible";
								}
								else{
									$nbcol = $resultat->columnCount();
									$nbuser = $resultat->rowCount();
									if($nbuser == 0)
									{
										echo "<h3>Il n'y a aucune demande  de ce type de carte enregistrée au nom ce client<h3>";
									}
									else{
										$ligne = $resultat->fetch(PDO::FETCH_ASSOC); // Tableau associatif
										$titres = array_keys($ligne);
										$ligne = array_values($ligne);
										
										echo "<h3> Resultat de la recherche :<h3> ";
										// Affichage des titres du tableau
										echo "<table class=\"resultat\" border=\"1\"><tr>";
										foreach($titres as $valeur)
										{
											echo "<th class=\"th\">".$valeur."</th>";
										}
										echo "<th class=\"th\"><img class=\"image\" src=\"modif.PNG\" alt=\"modifier\" /></th>
												<th class=\"th\"><img class=\"image\" src=\"sup.PNG\" alt=\"supprimer\" /></th>
												<th class=\"th\"><img class=\"image\" src=\"detail.png\" id=\"détail\" /></th></tr>";
										// Affichage des valeurs du tableau
										do
										{
											echo "<tr>";
											foreach($ligne as $donnees)
											{
												echo "<td>".$donnees."</td>";
											}
											echo "<td class=\"bouton\"><a href=\"modifierdemande.php?id=".$valeur['iddemande']."\">Modifier</a></td>
													<td class=\"bouton\"><a href=\"supprimerdemande.php?id=".$valeur['iddemande']."\">Supprimer</a></td>
													<td class=\"bouton\"><a href=\"detaildemande.php?id=".$valeur['iddemande']."\">Details</a></tr>";
										}
										while($ligne = $resultat->fetch(PDO::FETCH_NUM));
										echo "</table>";
									}
									
									$resultat->closeCursor();
									$pdo = null;
								}
							}
													
					}
					
?>



code source detaildemande.php
<?php
					require_once 'connexionbdd.php';
					
					
								// Récupération des variables 

					$iddemande=$_GET["iddemande"];
					$requete = "SELECT * FROM  demande WHERE  iddemande=".$iddemande ; 
								$pdo = connexion(); 
								$resultat = $pdo->query($requete);
								if(!$resultat)
								{
									echo "Lecture impossible";
								}
								else
								  {
									
										$ligne = $resultat->fetch(PDO::FETCH_ASSOC); // Tableau associatif

									}	
?>
je crois que l'erreur est dans le second traitement
cordialement

Petit nouveau ! | 9 Messages

22 déc. 2015, 16:54

si je me suis fai comprendre

Mammouth du PHP | 1967 Messages

22 déc. 2015, 17:08

dans cette partie ci :
echo "<td class=\"bouton\"><a href=\"modifierdemande.php?id=".$valeur['iddemande']."\">Modifier</a></td>
<td class=\"bouton\"><a href=\"supprimerdemande.php?id=".$valeur['iddemande']."\">Supprimer</a></td>
<td class=\"bouton\"><a href=\"detaildemande.php?id=".$valeur['iddemande']."\">Details</a></tr>";

D'où viens ta variable $valeur['iddemande'] ?? car à mon avis elle n'est pas définie.

Ensuite, tu fabrique tes liens avec un attribut "id" et tu tente de récupèrer un attribut iddemande dans $_GET['iddemande']
ca ne colle pas.

Soit au moins 2 erreurs à corriger
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 9 Messages

22 déc. 2015, 17:40

merci pour ton aide.la seconde erreur est rectifiée.en ce qui concerne la premiére,la variable $iddemande=$_GET["id"] est recuperée je crois depuis la premiére page grace a GET?

Mammouth du PHP | 1967 Messages

22 déc. 2015, 17:45

Dans ce cas, il te faut utiliser $iddemande plutot que $valeur['iddemande']
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 9 Messages

22 déc. 2015, 17:59

en fait la variable $valeur['iddemande']. vient de la premiére page ici
foreach($titres as $valeur)
                    {
                      echo "<th class=\"th\">".$valeur."</th>";
                    }
                    echo

Petit nouveau ! | 9 Messages

22 déc. 2015, 18:07

ca m'affiche l'erreur Notice: Undefined index: id in C:\wamp\www\ projet\detaildemande.php on line 7

Petit nouveau ! | 9 Messages

22 déc. 2015, 19:17

aprés modification voici mon code
detaildemande.php
<?php
					require_once 'connexionbdd.php';
					
					
								// Récupération des variables 

					$iddemande=$_GET["id"];
					$requete = "SELECT * FROM  demande WHERE  iddemande=".$iddemande ; 
								$pdo = connexion(); 
								$resultat = $pdo->query($requete);
								if(!$resultat)
								{
									echo "Lecture impossible";
								}
								else
								  {
									
										$ligne = $resultat->fetch(PDO::FETCH_ASSOC); // Tableau associatif

									}	
?>
et le message d'erreur: Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 't' in 'where clause'' in C:\wamp\www\ projet\detaildemande.php on line 10

Mammouth du PHP | 1967 Messages

23 déc. 2015, 08:45

en fait la variable $valeur['iddemande']. vient de la premiére page ici
foreach($titres as $valeur)
                    {
                      echo "<th class=\"th\">".$valeur."</th>";
                    }
                    echo
Si cela vient de là tu as un gros problème de compréhension.
Car soit $valeur est un tableau et peut-être que $valeur['iddemande'] est défini mais alors echo "<th class=\"th\">".$valeur."</th>"; t'affichera "<th class="th">array</th>"
Soit $valeur est un String( ou int ou float) et ton echo est correct mais tu n'obtiendra rien de bon avec $valeur['iddemande']

Dans tous les cas, lorsque tu veux récupèrer des variables GET, tu dois penser à la possibilité que l'on aile sur la page sans ces paramètres. et donc prévoir une exception dans le cas où $_GET['id'] est indéfini. soit une valeur par défaut soit une redirection, soit un message d'erreur.

$iddemande=(empty($_GET["id"]) ? 'valeur par défaut' : $_GET["id"];
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube