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 ? :shock:

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 ? :shock:

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