Probléme PHP

Résolu
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 ???
--
Lucas

13 réponses

  1. bonsoir,

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

    "DELETE FROM ratings WHERE id='$_GET['id']'";
    1. Inutile, la syntaxe qu'il utilise est correcte aussi.
  2. 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
    1. 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
      1. 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";
        }
        1. C'est dingue, je viens de donner la soluce, mais ça ne t'empêche pas de poster une ânerie...
          1. 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
            1. Et si tu prenais en compte ce que j'ai dit précédemment ?
          2. 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....
            1. essayes:

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


              puisque ton champ id est de la forme idxxx