Page 1 sur 5
requete de suppression
Posté : 29 oct. 2008, 16:04
par Emy
bonjour tout le monde,
je fais une requete de suppression avec
if(isset($_GET['id'])) $id = $_GET['id'];
else $id = '';
//
$sql = "DELETE FROM recrutement WHERE id='$_GET[id]'";
la requete ne marche pas
Posté : 29 oct. 2008, 16:14
par sadeq
Correction:
if (isset($_GET['id'])) {
$id = $_GET['id'];
$sql = "DELETE FROM recrutement WHERE id='$id' ";
mysql_query($sql) or die (mysql_error());
}
La requête ne s'exécute que si l'id est envoyé par GET.
Posté : 29 oct. 2008, 17:10
par Invité
resultat: echec
<?php
//inclure les parametres de conf
include ("configure_file.php");
//date
$date = date("d/m/Y");
// connection à la DB
$link = mysql_connect ($host,$user,$pass);
// selection de la DB
mysql_select_db($db) or die ('Erreur: '.mysql_error());
if (isset($_GET['id'])) {
$id = $_GET['id'];
$sql = "DELETE FROM recrutement WHERE id='$id' ";
$result = mysql_query($sql, $link) or die ('Erreur: '.mysql_error());
}
//ressort results
if ($result){
echo 'candidat supprimer'. $id;
}
else
{
echo 'echec';
mysql_close ();
}
?>
Posté : 29 oct. 2008, 17:18
par ornitho13
ton id dans ta table est de quel nature? est ce un varchar ou un integer ou autre?
si c'est un integer, tu peux enlever les cotes ( ' ) qui entoure $id dans ta requete
Posté : 29 oct. 2008, 17:18
par charabia
echo $id; donne t-il un résultat ? Tu as une erreur ?
Ta ligne
echo 'candidat supprimer'. $id;
ne marchera pas étant donné que $id n'est déclaré que dans ton premier IF. Une fois sortie de ce IF, normalement $id n'est plsu reconnu.
Sinon essaie avec
if (isset($_GET['id'])) {
$id = inval($_GET['id']);
$sql = "DELETE FROM recrutement WHERE id=".$id;
$result = mysql_query($sql, $link) or die ('Erreur: '.mysql_error());
}
Posté : 29 oct. 2008, 17:21
par Invité
ton id dans ta table est de quel nature? est ce un varchar ou un integer ou autre?
si c'est un integer, tu peux enlever les cotes ( ' ) qui entoure $id dans ta requete
`id` int(10) NOT NULL auto_increment,
@charabia: ca me donne le meme resultat.
Posté : 29 oct. 2008, 17:23
par charabia
echo $id;
te donne ?
As-tu une erreur ?
Posté : 29 oct. 2008, 17:24
par albat
Toujours les mêmes problèmes...
Alors :
1. Vérifier le type des valeurs des variables
2. Extraire les variables des chaines
Si
recrutement.id est un numérique, alors pas d'apostrophes !
$id = (isset($_GET['id']) ? $_GET['id'] : 0);
$sql = "DELETE FROM recrutement WHERE id=".$_GET['id'];
Tu avais aussi une faute de frappe dans ta requête : $_GET[id] au lieu de $_GET['id']
Posté : 29 oct. 2008, 17:35
par Invité
Toujours les mêmes problèmes...
Alors :
1. Vérifier le type des valeurs des variables
2. Extraire les variables des chaines
Si
recrutement.id est un numérique, alors pas d'apostrophes !
$id = (isset($_GET['id']) ? $_GET['id'] : 0);
$sql = "DELETE FROM recrutement WHERE id=".$_GET['id'];
Tu avais aussi une faute de frappe dans ta requête : $_GET[id] au lieu de $_GET['id']
Code : Tout sélectionner
Erreur: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Posté : 29 oct. 2008, 17:40
par charabia
Teste ta requête directement sous PhpMyAdmin pour voir si ça marche.
Posté : 29 oct. 2008, 18:09
par Invité
Teste ta requête directement sous PhpMyAdmin pour voir si ça marche.
je suis deja en localhost
Posté : 29 oct. 2008, 18:21
par albat
Et alors ?
Le but est de vérifier si la syntaxe de ta requête est correcte.
Posté : 29 oct. 2008, 18:44
par Invité
Et alors ?
Le but est de vérifier si la syntaxe de ta requête est correcte.
comment faire sur PHPmyAdmin
Posté : 29 oct. 2008, 19:07
par charabia
Bé tu vas dans phpmyadmin -> sql et tu colles ta requête. Si tu as une erreur c'est vite vu
Posté : 29 oct. 2008, 19:22
par Invité
Bé tu vas dans phpmyadmin -> sql et tu colles ta requête. Si tu as une erreur c'est vite vu
Erreur
requête SQL:
$sql = "DELETE FROM recrutement WHERE id=".$_GET[ 'id']
MySQL a répondu:Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$sql = "DELETE FROM recrutement WHERE id=".$_GET['id']' at line 1