Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
Bonjour,
Voici mon erreur :
( ! ) Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ')' à la ligne 1 in C:\wamp64\www\monsite\voirprofil.php on line 51
Voici mon code :
<?php
session_start();
require_once('./donnes/basededonnes.php');
$utilisateurnomcomplet = (int) trim($_GET['id']);
if(empty($utilisateurnomcomplet)){
header('Location: membres.php');
exit;
}
$req = $BDD->prepare("SELECT u.*, q.nomquartier
FROM utilisateur u
INNER JOIN quartier q ON q.numquartier = u.quartier WHERE id = ?");
$req->execute(array($utilisateurnomcomplet));
$voirutilisateur = $req->fetch();
if(!isset($voirutilisateur['id'])){
header('Location: membres.php');
exit;
}
function age($date){
$age = date('Y') - date('Y', strtotime($date));
if(date('md') < date('md', strtotime($date))){
return $age - 1;
}
return $age;
}
if(!empty($_POST)){
extract($_POST);
$valide = (boolean) true;
if(isset($_POST['userajouter'])){
$req = $BDD->prepare("SELECT id FROM relation WHERE (id_receveur = ? AND id_demandeur = ?) OR (id_receveur = ? AND id_demandeur = ?)");
$req->execute(array($voirutilisateur['id'], $_SESSION['id'], $_SESSION['id'], $voirutilisateur['id']));
$verifrelation = $req->fetch();
if(isset($verifrelation['id'])){
$valide = false;
}
if($valide){
$req = $BDD->prepare("INSERT INTO relation (id_demandeur, id_receveur, statut) VALUES (?, ?, ?,)");
$req->execute(array($_SESSION['id'], $voirutilisateur['id'], 1));
echo 1;exit;
}
echo 1;exit;
header('Location: voirprofil.php?id=' . $voirutilisateur['id']);
}elseif(isset($_POST['usersupprimer'])){
echo 2;exit;
}elseif(isset($_POST['userbloquer'])){
echo 3;exit;
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<link rel="stylesheet" href="./donnes/styles.css">
<title>Profil de <?= $voirutilisateur['nomcomplet'] ?></title>
</head>
<body>
<?php
require_once('navbar.php')
?>
<div class="container">
<div class="row">
<div class="col-sm-12">
<div class="affichemembre">
<div>
Nom : <?= $voirutilisateur['nomcomplet'] ?>
</div>
<div>
Age : <?= age($voirutilisateur['datedenaissance']) ?> ans
</div>
<div>
Quartier : <?= $voirutilisateur['nomquartier'] ?>
</div>
</div>
<div>
<form method="POST">
<input type="submit" name="userajouter" value="Ajouter">
<input type="submit" name="usersupprimer" value="Supprimer">
<input type="submit" name="userbloquer" value="Bloquer">
</form>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</body>
</html>
Bonsoir @grosbonnet2,
J'aurai préféré une touche de politesse dans ton message, mais bon on va se contenter de ton titre (J'ai des problèmes).
Ton code d'erreur est très précis. Je ne vois pas trop la difficulté du debug 🤔
( ! ) Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ')' à la ligne 1 in C:\wamp64\www\monsite\voirprofil.php on line 51.
Si on décompose ton erreur, il y a près d'une parenthèses fermante une erreur de syntaxe. Souvent c'est soit une virgule en trop, soit un point virgule manquant. Wamp te dit à la ligne 1 (ce n'est pas ton cas) mais ensuite à la fin de l'erreur il t'indique "on line 51" (plus logique).
Tu nous a mis tout ton code 😓
J'ai donc parcouru tout ton code pour essayer de voir la ligne 51 🤣
Donc pour moi l'erreur se trouve ici :
$req = $BDD->prepare("INSERT INTO relation (id_demandeur, id_receveur, statut) VALUES (?, ?, ?,)");
Voici la correction :
$req = $BDD->prepare("INSERT INTO relation (id_demandeur, id_receveur, statut) VALUES (?, ?, ?)");
(une virgule en trop et c'est bien à côté d'une parenthèse fermante 🥲)
La prochaine fois, prend le temps de lire l'erreur. En revanche, en point positif, j'aime bien le fait que tu mettes des echo 1;exit; pour debugger. C'est une bonne pratique 🙂
Bon dimanche ✌️
Florent.