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 :

Update / Insert sur MySQL


Sujet :

PHP & Base de données

Vue hybride

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 66
    Par défaut Update / Insert sur MySQL
    Bonjour,

    Je vous présente un petit bout de code qui me pose quelques problèmes...
    En fait je récupère depuis un formulaire des infos bourrages et compteurs en deux parties (AM et PM).
    Je rentre ensuite ces valeurs dans une base MYSQL et j'affiche les valeurs dans un tableau. Mais j'ai des soucis visiblement au niveau de mon test pour aiguiller entre mon UPDATE et mon INSERT.
    Car il ne me fait que l'update et ne passe visiblement jamais dans la seconde partie de mon test. Auriez-vous une idée ?


    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <?php
    $jour=date("Y-m-d");
    if(isset($_POST['counteram']))      $counteram=$_POST['counteram'];
    else      $counteram="0";
    if(isset($_POST['jamam']))      $jamam=$_POST['jamam'];
    else      $jamam="0";
    if(isset($_POST['counterpm']))      $counterpm=$_POST['counterpm'];
    else      $counterpm="0";
    if(isset($_POST['jampm']))      $jampm=$_POST['jampm'];
    else      $jampm="0";
     
    $db = mysql_connect('127.0.0.1', 'root','PASSWORD')  or die('Erreur de connexion '.mysql_error());
     
    mysql_select_db('info_printer',$db)  or die('Erreur de selection '.mysql_error()); 
    $query = "SELECT * FROM `count`";
    $result = mysql_query($query, $db) or die($query . " - " . mysql_error());
     
     
    $tab = mysql_fetch_array($result);
     
    if ($tab['day']='$jour') {
    $sql1 = "update `count` set `countpm`=1500 where `day`='$jour'";
    mysql_query($sql1) or die('Erreur SQL !'.$sql1.'<br>'.mysql_error());
     
    }
    else{
    $sql2 = "INSERT INTO `count` VALUES ('null','$jour','$counteram','$counterpm','$jamam','$jampm')"; 
     
    echo "ok";
    mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error()); 
     
    }
     
    echo"<table border=\"1\">";
     
       echo "<tr>";
       echo "<td width=200 bgcolor=#87AFC7><center><b>Jour </b></center></td>\n";
       echo "<td width=200 bgcolor=#87AFC7><center><b>Compteur matin </b></center></td>\n";
       echo "<td width=200 bgcolor=#87AFC7><center><b>Compteur apres-midi</b></center></td>\n";
       echo "<td width=200 bgcolor=#87AFC7><center><b>Bourrages matin</b></center></td>\n";
       echo "<td width=200 bgcolor=#87AFC7><center><b>Bourrages apres-midi</b></center></td>\n";
       echo "<td width=200 bgcolor=#87AFC7><center><b>total</b></center></td>\n";
       echo "</tr>";
     
    echo "<tbody>";
     
     
      echo"<TR>";
      $total=$tab['countpm']-$tab['countam'];
      echo "<TD>";echo $tab['day'];echo"</TD>\n";
      echo "<TD>";echo $tab['countam'];echo"</TD>\n";
      echo "<TD>";echo $tab['countpm'];echo"</TD>\n";
      echo "<TD>";echo $tab['jamam'];echo"</TD>\n";
      echo "<TD>";echo $tab['jampm'];echo"</TD>\n";
      echo "<TD>";echo $total;echo"</TD>\n";
    }
     
    echo"</TR>";
    echo"</tbody></table>";
     
     
    mysql_close();
     
     
     
    ?>

  2. #2
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($tab['day']='$jour')

    Deux choses:

    -Ta variable jour n'est pas ici interprétée puisqu'elle est entre ' '.. Elle ne sont interprétées que lorsqu'elles sont entre " ". Sauf qu'ici tu n'a besoin ni de l'un ni de l'autre.

    -Pour faire un test d'égalité il faut utiliser == sinon ca revient à faire une affectation... Et donc le test est en général toujours vrai (Enfin ca serait un peu long à expliquer.)

    Donc le code correct est

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($tab['day']==$jour)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 66
    Par défaut
    Merci Asmodean pour ta réponse, je rentre maintenant dans ma condition.
    En fait, nouveau soucis mais au niveau de ma base visiblement:

    Erreur SQL !INSERT INTO `count` VALUES ('null','2007-07-02','1212','0','5','0')
    Out of range value adjusted for column 'id' at row 1
    Il y a-t-il la nécessité de faire une conversion quelque part ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 66
    Par défaut
    Oups, il semblerait que ce soit les ' autour de NULL, désolé

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 66
    Par défaut
    Ce que je ne comprends pas, c'est que maintenant je passe toujours sur ma condition "else", j'ajoute donc a chaque exécution mon insert dans ma base.

  6. #6
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Essaie d'afficher $tab['day'] et $jour avant le if pour voir ce qu'ils valent

Discussions similaires

  1. Insert sur MySQL database avec null et bit
    Par jean christophe dans le forum Débuter
    Réponses: 1
    Dernier message: 27/05/2010, 17h56
  2. String to Date pour insertion sur MySQL
    Par kaymos dans le forum Langage
    Réponses: 10
    Dernier message: 11/02/2010, 16h06
  3. journalisation des updates, inserts sur une table
    Par philou28 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/04/2007, 16h07
  4. UPDATE/INSERT sur des colonnes
    Par baltagi dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/02/2007, 17h54
  5. Evenement sur UPDATE, INSERT, DELETE
    Par papouAlain dans le forum Langage SQL
    Réponses: 6
    Dernier message: 23/12/2004, 14h58

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