Probléme PHP

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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. P@t@ch0n Messages postés 603 Statut Membre 85
     
    => mysql_error()
    1
  2. benj
     
    bonsoir,

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

    "DELETE FROM ratings WHERE id='$_GET['id']'";
    0
    1. pyschopathe Messages postés 2053 Statut Membre 137
       
      Inutile, la syntaxe qu'il utilise est correcte aussi.
      0
  3. P@t@ch0n Messages postés 603 Statut Membre 85
     
    Si :
    $_GET['id'] = "' or id REGEXP '^[0-9]+$'"; 
    ?
    0
  4. pyschopathe Messages postés 2053 Statut Membre 137
     
    Est-ce que tu es bien connecté à ta base de données ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    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
  7. P@t@ch0n Messages postés 603 Statut Membre 85
     
    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
  8. messi89 Messages postés 28 Statut Membre 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";
    }
    0
  9. P@t@ch0n Messages postés 603 Statut Membre 85
     
    C'est dingue, je viens de donner la soluce, mais ça ne t'empêche pas de poster une ânerie...
    0
  10. Utilisateur anonyme
     
    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
    1. P@t@ch0n Messages postés 603 Statut Membre 85
       
      Et si tu prenais en compte ce que j'ai dit précédemment ?
      0
  11. Utilisateur anonyme
     
    Vous n'avez aucune idée ?
    0
    1. pyschopathe Messages postés 2053 Statut Membre 137
       
      Il faut écrire
      echo mysql_error()
      0
  12. Utilisateur anonyme
     
    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
  13. Alain_42 Messages postés 5413 Statut Membre 904
     
    essayes:

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


    puisque ton champ id est de la forme idxxx
    0
  14. Utilisateur anonyme
     
    SA Y EST ! SA MARCHE !

    Merci beaucoup !
    0