IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Bogue -> INSERT


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Par défaut Bogue -> INSERT
    Bonjour,

    Suite à une erreur importante dans les données et une recherche de bugs, j'ai découvert un truc bizard qui autrefois fonctionnait très bien et depuis il n'y a eu aucune modification dans cette partie là du code...

    Lors d'un INSERT d'un produit, celui-ci est bien inséré dans la base... puis, en ajoutant un second, le précédent est écrasé, c'est un peu comme un UPDATE saut qu'il n'y en a pas!

    Voici la partie du code consernée:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE `t_engines_tmp` (
      `c_index` int(11) NOT NULL default '0',
      `c_date_estimate` varchar(10) default NULL,
      `c_id_estimate` varchar(13) default NULL,
      `c_exchange` char(3) default NULL,
      `c_price_initial` varchar(15) NOT NULL default '0',
      `c_core_initial` varchar(15) NOT NULL default '0'
    ) TYPE=MyISAM;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     # Stop l'insertion par la touche F5 : Actualiser
     if ($_SESSION["sess_stop_F5"]!=$_GET["id"]) {
       $_SESSION["sess_stop_F5"] = $_GET["id"];
       # Insert un enregistrement dans la table : `t_engines_tmp`.
       # Principe : Comparaison binôme d'index de tables.
       if (isset($_GET["add"])) {
         $id_add = $_GET["id"];
         $id_query = mysql_query("SELECT * FROM ". $t_engines ." WHERE c_index='$id_add'");
         if(@mysql_num_rows($id_query)>0){
           $row=mysql_fetch_assoc($id_query);
           $id_result=$row["c_index"];
         }
         if ($id_result==$id_add) {
           $id_estimate = $_SESSION["id_estimate"];
           mysql_query("INSERT INTO ". $t_engines_tmp ." VALUES ('$id_add','$sess_date_estimate','$id_estimate','$_exchange','$_price','$_core')");
           unset($id_add,$id_result);
         }
       }
     }
    D'avance merci pour vos remarques,
    Salut .

  2. #2
    NoT
    NoT est déconnecté
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 237
    Par défaut
    Salut,

    Rien comprit à ton code..
    Affiche tes requetes à l'execution, tu verras peut-etre mieux ce qui se passe.

  3. #3
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Qu'est ce qui te fait dire qu'il est écrasé ? Pourquoi y aurait-il tout simplement pas plusieurs lignes pour le meme id ?
    A ce propos c'est louche qu'il n'y ait pas de clef primaire sur ta table non ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Par défaut
    Qu'est ce qui te fait dire qu'il est écrasé ?
    résultat observé sur le phpMyAdmin

    c'est louche qu'il n'y ait pas de clef primaire sur ta table non ?
    Pas necessaire pour des commandes de 3 ou 4 produits... et pas de liste de commandes non plus.

  5. #5
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Citation Envoyé par ctrl+z
    Pas necessaire pour des commandes de 3 ou 4 produits... et pas de liste de commandes non plus.
    Pourquoi c'est pas nécessaire ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Par défaut
    Si ma mémoire est bonne, une clé primaire sert à accélérer la recherche sur les données mais pour de courte liste, cela semble donc inutile. De plus il n'y a pas de doublons possible, et pas d'auto-incrémentation.

Discussions similaires

  1. [DOM] [Xerces] Insertion d'une entité
    Par Traroth dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 19/05/2008, 09h28
  2. Bulk insert et caractère accentué
    Par slc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/04/2003, 12h52
  3. probleme d'insertion d'un Float
    Par neness dans le forum Débuter
    Réponses: 3
    Dernier message: 07/01/2003, 12h32
  4. [Postgresql] pb lors d'insertion de données
    Par bob20000 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/11/2002, 15h33
  5. Réponses: 4
    Dernier message: 28/09/2002, 00h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo