Probléme PHP

Résolu/Fermé
Utilisateur anonyme - 24 avril 2009 à 20:28
 Utilisateur anonyme - 26 avril 2009 à 16:46
Bonjour,

J'ai ce script :

<?php
     if(isset($_GET['id']))
       {
  include('../_config-rating.php');
  $sql = 'DELETE FROM ratings WHERE id='.$_GET['id'];
  $req = mysql_query($sql);
  mysql_close();
  if($req == true) {
    echo '<br /><br /><center>Suppression r&eacute;ussie !</center>';
  }
  else
  {
    echo '<br /><br /><center>Erreur lors de la suppression !</center>';
  }
}
else
{
echo "erreur";
}
?>



Malheureusement, avec L'ID, il affiche "Erreur lors de la suppression !"

Pourquoi sa ne marche pas ???
A voir également:

13 réponses

P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
24 avril 2009 à 22:36
=> mysql_error()
1
bonsoir,

un problème dans ta requête remplace la par :

"DELETE FROM ratings WHERE id='$_GET['id']'";
0
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
24 avril 2009 à 22:27
Inutile, la syntaxe qu'il utilise est correcte aussi.
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
24 avril 2009 à 21:52
Si :
$_GET['id'] = "' or id REGEXP '^[0-9]+$'"; 
?
0
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
24 avril 2009 à 22:28
Est-ce que tu es bien connecté à ta base de données ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
25 avril 2009 à 10:35
J'ai un peu modifier mon code, j'ai mis :

<?php
if(preg_match("#^[0-9]+$#", $_GET['id']))
{
  mysql_connect("localhost", "*******", "******");
  mysql_select_db("******");
  $sql = 'DELETE FROM ratings WHERE id='.$_GET['id'];
  $req = mysql_query($sql);
  mysql_close();
  if($req == true) {
    echo '<br /><br /><center>Suppression r&eacute;ussie !</center>';
  }
  else
  {
    echo '<br /><br /><center>Erreur lors de la suppression !</center>';
   mysql_error();
  }
}
else
{
echo "erreur";
}
?>


Il me dit suppression réussis mais quand je vérifie, sa n'a pas marché.
Esque vous savez comment l'on fait pour remettre à zero un Id seulement de ma table ?

Voici la table :
CREATE TABLE `ratings` (
  `id` varchar(11) NOT NULL,
  `total_votes` int(11) NOT NULL default 0,
  `total_value` int(11) NOT NULL default 0,
  `used_ips` longtext,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
25 avril 2009 à 13:55
ctype_digit() pour vérifier un entier.

$req retournera false uniquement si la requête rencontre une erreur.
mysql_affected_rows() pour connaître le nombre de lignes affectées par ta requête
0
messi89 Messages postés 27 Date d'inscription samedi 8 décembre 2007 Statut Membre Dernière intervention 1 décembre 2009 1
25 avril 2009 à 14:17
essaye avec

if(mysql_num_rows($req))
{
echo '<br /><br /><center>Suppression réussie !</center>';
}
else
{
echo '<br /><br /><center>Erreur lors de la suppression !</center>';
mysql_error();
}
}
else
{
echo "erreur";
}
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
25 avril 2009 à 14:36
C'est dingue, je viens de donner la soluce, mais ça ne t'empêche pas de poster une ânerie...
0
Utilisateur anonyme
25 avril 2009 à 14:37
J'ai esayé ceci :
<?php
if(preg_match("#^[0-9]+$#", $_GET['id']))
{
  mysql_connect("localhost", "****", "*****");
  mysql_select_db("*****");
  $sql = 'DELETE FROM ratings WHERE id='.$_GET['id'];
  $req = mysql_query($sql);
  mysql_close();
  if(mysql_num_rows($req))
    {
      echo '<br /><br /><center>Suppression réussie !</center>';
    }
  else
  {
    echo '<br /><br /><center>Erreur lors de la suppression !</center>';
    mysql_error();
  }
}
else
{
  echo "erreur";
}
?>



Mais sa affiche : "Erreur lors de la suppression !"
et mysql_error(); n'affiche rien
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
26 avril 2009 à 15:25
Et si tu prenais en compte ce que j'ai dit précédemment ?
0
Utilisateur anonyme
26 avril 2009 à 12:16
Vous n'avez aucune idée ?
0
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
26 avril 2009 à 13:30
Il faut écrire
echo mysql_error()
0
Utilisateur anonyme
26 avril 2009 à 16:26
Voila ce que j'ai essayé de faire :
<?php
if(preg_match("#^[0-9]+$#", $_GET['id']))
{
  mysql_connect("localhost", "", "");
  mysql_select_db("");
  $videoid = $_GET['id'];
  $voteid = id;
  $final = $voteid.$videoid;
  $sql = 'DELETE FROM ratings WHERE id='$final;
  $req = mysql_query($sql);
  mysql_close();
  if($req == true) 
  {
    echo '<br /><br /><center>Suppression r&eacute;ussie !</center>';
  }
  else
  {
    echo '<br /><br /><center>Erreur lors de la suppression</center>';
   echo mysql_error();
  }
}
else
{
echo "erreur";
}
?>


J'ai remarqué que dans ma table, il y a : id avec en association : id13 et pas directement le numero. Il faut donc que je rajoute le id devant.
Malheureusement, sa ne marche pas....
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
26 avril 2009 à 16:37
essayes:

$sql = "DELETE FROM ratings WHERE id='id".$_GET['id']."'";


puisque ton champ id est de la forme idxxx
0
Utilisateur anonyme
26 avril 2009 à 16:46
SA Y EST ! SA MARCHE !

Merci beaucoup !
0