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 :

Problème UPDATE / WHERE


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Par défaut Problème UPDATE / WHERE
    Bonsoir à tous!

    J'ai un tio soucis, et je voudrais avoir votre avis.

    J'ai une base de données simple dans laquelle il y a des dates., le but étant d'afficher un tableau qui ressemble à ceci:

    Nom : test.jpg
Affichages : 85
Taille : 263,1 Ko

    Et dans ce tableau, je veux être en mesure de changer les dates d'un ou plusieurs champs date.

    Sauf qu'avec le code ci-dessous, seule la dernière ligne de mon tableau se met à jour. Si je change un champ autre que la dernière ligne, rien ne se passe.

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    <form method="POST" action="Licences.php">
    <script src="//cdn.jsdelivr.net/webshim/1.14.5/polyfiller.js"></script>
     
    <?php	
    echo'<table class="tg" border="0" cellspacing="3" >';
     
    $db = mysqli_connect($localhost,$login,$pwd,$dbName)  or die('Erreur de connexion '.mysql_error()); 
    $res = $db -> query ('SELECT COUNT(*) AS total FROM licences') OR die(mysql_error());
    $row = mysqli_fetch_array($res);
     
    ?>
    <style type="text/css">
    #cellules
    td {
    padding: 5px;
    .tg {box-shadow: 1px 1px 12px #555;}									
    }
    </style>
     
    <?php
     
    echo"<tr>";
    echo"<th height=50 align=center bgcolor=#beceff>ID</th>";
    echo"<th  align=center bgcolor=#beceff>TYPE</th>";
    echo"<th  align=center bgcolor=#beceff>ATO / Organisation</th>";
    echo"<th  align=center bgcolor=#beceff>Date of Issue</th>";
    echo"<th  align=center bgcolor=#beceff>Expire Date</th>";
    echo"</tr>";
     
     
    $offset = ((isset($_REQUEST['offset']) && $_REQUEST['offset'] > 0) ? $_REQUEST['offset'] : 0);
     
     
    $sql_str  = 'SELECT SQL_CALC_FOUND_ROWS * FROM licences ORDER BY ID LIMIT '.$offset.', '.$limit3.'  ';
    $result   = $db -> query($sql_str);	while ($data = mysqli_fetch_array($result)) {
     
    echo"<tr id=cellules >";
    echo"<td height=30 bgcolor=#D7E1FF><input name='id' value=".($data['ID'])."></td>";
    echo"<td bgcolor=#D7E1FF>".$data['type']."</td>";
    echo"<td bgcolor=#D7E1FF>".$data['ato']."</td>";
     
     
     
    echo"<td width=150 align=center bgcolor=#D7E1FF><input name='datedebut' type='date' value=".($data['datedebut'])."></td>";
    if ($data['datefin']==="0000-00-00")
    {
    echo"<td bgcolor=#D7E1FF>'Valid for Life'</td>";
    }
    else
    {
    echo"<td width=150 align=center bgcolor=#D7E1FF><input name='datefin' type='date' value=".($data['datefin'])."></td>";
    }
    echo"</tr>";
    }
    echo "</table>";
     
     
     
    }
    }
    ?>
    <input class="css_button" type="submit" value="Mettre à jour les licenses..." name="envoyer">
     
    <?php
    // On commence par répérer les champs 
     
    if(isset($_POST['datedebut']))      $datedebut=$_POST['datedebut'];
    else      $datedebut="";
    if(isset($_POST['datefin']))      $datefin=$_POST['datefin'];
    else      $datefin="";
    if(isset($_POST['id']))      $id=$_POST['id'];
    else      $id="";
     
     
    // On vérifie si les champs sont vides 
    if(empty($datedebut) OR empty($datefin))  
    { 
     
    	echo "</br></br>";
     
    } 
    // Aucun champ n'est vide, on peut enregistrer dans la table 
    else      
    { 
     
    	$db = mysqli_connect($localhost,$login,$pwd,$dbName)  or die('Erreur de connexion '.mysql_error());       
     
    	$sql = "UPDATE licences SET datedebut='$datedebut',datefin='$datefin' WHERE id='$id'"; 
     
    	$res= $db -> query($sql) or die('Erreur SQL DE MERDE !'.$sql.'<br>'.mysql_error()); 
     
    	mysqli_close($db); 
     
    ?>						
     
     
     
     
    <?php
    }
     
    ?>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Pose-toi la question : "comment identifier une ligne, pour savoir laquelle (lesquelles) modifier ?"

    Actuellement, tes input, d'une ligne à l'autre, ont les mêmes name="...".
    Normal donc que tu ne récupères que la dernière ligne, les données des autres étant "écrasés" au fur et à mesure...

    -> il faut créer des tableaux (array) de name :
    ex. : au lieu de <input... name='datedebut'.../>, on écrit <input... name='datedebut[]'.../>.
    Mais la ligne n'est pas encore clairement identifiée : à quel ID correspond ce datedebut ?
    -> on en spécifie l'index avec l'ID :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<input... name='datedebut[".$data['ID']."]'.../>";
    D'autre part l'input ID ne sert à rien (les ID ne doivent pas être modifiés !

    Il reste :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    echo "<td height='30' bgcolor='#D7E1FF'>.$data['ID']."</td>";
     
    // ....
     
    echo "<td width='150' align='center' bgcolor='#D7E1FF'><input name='datedebut[".$data["ID"]."]' type='date' value=".($data['datedebut'])."/></td>";
     
    // ....
     
    echo "<td width='150' align='center' bgcolor='#D7E1FF'><input name='datefin[".$data["ID"]."]' type='date' value=".($data['datefin'])."/></td>";
    A la récupération :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $datedebut_array = $_POST['datedebut']; // array
    $datefin_array = $_POST['datefin']; // array
    // traitement
    foreach( $datedebut_array as $ID => $datedebut ) // on a ici l'ID et $datedebut correspondant à cet ID
    {
       $datefin = $datefin_array[$ID]; // $datefin correspondant à cet ID
       // UPDATE
       // .....
     
    }

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Par défaut Merci pour la réponse
    Je sais que le champ ID ne sert à rien, j'ai fais ça bourrinement en pensant que c'est comme ça que j'allais pouvoir identifier les lignes.

    Je crois que je comprends mieux: Comment mon tableau a été créé avec une boucle, les $... s'arrêtent à la fin de la boucle, donc il faut que je refasse une sorte de boucle pour l'update.

    Ok, je vais bosser là dessus, je te remercie!

    Je posterai le code final quand ça marchera!

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Par défaut Mise à jour du code
    Salut!

    Alors, j'ai un peu avancé, j'ai modifié l'affichage du tableau de la manière suivante:

    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
    <?php
     
    echo"<tr>";
    echo"<th height=50 align=center bgcolor=#beceff>ID</th>";
    echo"<th  align=center bgcolor=#beceff>TYPE</th>";
    echo"<th  align=center bgcolor=#beceff>ATO / Organisation</th>";
    echo"<th  align=center bgcolor=#beceff>Date of Issue</th>";
    echo"<th  align=center bgcolor=#beceff>Expire Date</th>";
    echo"</tr>";
     
     
    $offset = ((isset($_REQUEST['offset']) && $_REQUEST['offset'] > 0) ? $_REQUEST['offset'] : 0);
     
     
    $sql_str  = 'SELECT SQL_CALC_FOUND_ROWS * FROM licences ORDER BY ID LIMIT '.$offset.', '.$limit3.'  ';
    $result   = $db -> query($sql_str);	while ($data = mysqli_fetch_array($result)) {
     
    echo "<tr id=cellules >";
    echo "<td height='30' bgcolor='#D7E1FF'>".$data['ID']."</td>";
    echo "<td bgcolor=#D7E1FF>".$data['type']."</td>";
    echo "<td bgcolor=#D7E1FF>".$data['ato']."</td>";
    echo "<td width=150 align=center bgcolor=#D7E1FF><input name='datedebut[".$data['ID']."]' type='date' value=".($data['datedebut'])."></td>";
     
     
     
    if ($data['datefin']==="0000-00-00")
    {
    echo"<td bgcolor=#D7E1FF>'Valid for Life'</td>";
    }
    else
    {
    echo "<td width=150 align=center bgcolor=#D7E1FF><input name='datefin[".$data['ID']."]' type='date' value=".($data['datefin'])."></td>";
     
    }
    echo"</tr>";
    }
    echo "</table>";
     
     
     
    }
    }
    ?>

    Cela fonctionne, et j'ai viré le input inutile pour ID.

    Ensuite, j'ai modifié de la manière qui suit pour la mise à jour de la BDD:

    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
    <?php
    // On commence par répérer les champs 
     
    if(isset($_POST['datedebut']))      $datedebut=$_POST['datedebut'];
    else      $datedebut="";
    if(isset($_POST['datefin']))      $datefin=$_POST['datefin'];
    else      $datefin="";
    if(isset($_POST['id']))      $id=$_POST['id'];
    else      $id="";
     
     
    // On vérifie si les champs sont vides 
    if(empty($datedebut) OR empty($datefin))  
    { 
     
    echo "</br></br>";
     
    } 
    // Aucun champ n'est vide, on peut enregistrer dans la table 
    else      
    { 
     
    $db = mysqli_connect($localhost,$login,$pwd,$dbName)  or die('Erreur de connexion '.mysql_error());       
     
    $datedebut_array = $_POST["datedebut"]; // array
    $datefin_array = $_POST["datefin"]; // array
    // traitement
    foreach( $datedebut_array as $ID => $datedebut ) // on a ici l'ID et $datedebut correspondant à cet ID
    {
    $datefin = $datefin_array[$ID]; // $datefin correspondant à cet ID
    $sql = "UPDATE licences SET datedebut='$datedebut',datefin='$datefin' WHERE id='$ID'"; 
     
     
    }
     
     
    $res= $db -> query($sql) or die('Erreur SQL DE MERDE !'.$sql.'<br>'.mysql_error()); 
     
    mysqli_close($db); 
     
    ?>
    Le problème est toujours le même, seule la dernière ligne veut bien se mettre à jour.
    Quand je change une date dans une des lignes précédentes, rien ne se passe...

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    - débarasse ton code du superflus comme tes "recuperations des champs" dont tu ne fais rien ensuite.
    - enlève toutes les fonctions mysql qui restent dans ton code
    - pour executer une requête en boucle et pour protéger des injections SQL quand on utilise des données externes, on utilise une requête préparée.
    - pour debuguer ton code, un simple echo des valeurs peut te donner une idée de ce qui se passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    if (isset($_POST['datedebut'], $_POST['datefin']) { 
           $db = mysqli_connect($localhost,$login,$pwd,$dbName);       
           $stmt = $db->prepare("UPDATE licences SET datedebut= ?, datefin = ? WHERE id= ?");
           $stmt->bind_param("ssi", $datedebut, $datefin, $id);
     
           foreach ($_POST['datedebut'] as $ID => $datedebut) {
                 $datefin = $_POST['datefin'][$ID];
                 $stmt->execute();
     
                 echo 'debug : ' . $ID . ' - ' . $datedebut . ' - ' $datefin . '<br/>';
           }
    }
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Par défaut Gné?
    J'obtiens un magnifique

    PHP Parse error: syntax error, unexpected '{' in /var/www/chette/Licences.php on line 1492
    Qui correspond à l'accolade du "if" ligne 2 de ton code Sabotage...

    Ce que je ne comprends pas, car c'est bien la bonne syntaxe pour un if is set...

    Pourtant dans le code, je n'ai modifié que $id --> $ID

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (isset($_POST['datedebut'], $_POST['datefin']){ 
           $db = mysqli_connect($localhost,$login,$pwd,$dbName) or die('Erreur de connexion '.mysql_error());       
           $stmt = $mysqli->prepare("UPDATE licences SET datedebut= ?, datefin = ? WHERE id= ?");
         $stmt->bind_param("ssi", $datedebut, $datefin, $ID);
     
          foreach ($_POST['datedebut'] as $ID => $datedebut) {
                $datefin = $_POST['datefin'][$ID];
                $stmt->execute();
     
                 echo 'debug : ' . $ID . ' - ' . $datedebut . ' - ' $datefin . '<br/>';
           }
    }

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il manque une parenthèse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['datedebut'], $_POST['datefin'])) {
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    il me semble qu'il faut mettre le bindparam dans le foreach :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
           foreach ($_POST['datedebut'] as $ID => $datedebut) {
                $datefin = $_POST['datefin'][$ID];
                $stmt->bind_param("ssi", $datedebut, $datefin, $ID);
                $stmt->execute();
     
                 echo 'debug : ' . $ID . ' - ' . $datedebut . ' - ' $datefin . '<br/>';
           }

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    D'apres la doc, non
    http://php.net/manual/fr/mysqli.quic...statements.php

    Ca doit fonctionner comme le bind param en PDO, c'est le nom de la variable qui se lie.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Invité
    Invité(e)
    Par défaut
    Je trouve leurs exemples particulièrement mal foutus, et difficile à comprendre...

    Mais tu as raison.
    Je ne savais pas. Comme quoi, on en apprend tous les jours

    Idem en PDO, donc.
    (je vais devoir revoir quelques unes de mes requêtes PDO...)

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Par défaut Le boulet
    Merci pour vos réponses, j'avance tout doucement, mais là, ces histoires de array et de prepare et tout, c'est un peu nouveau.

    J'ai bien lu cette partie du manuel, mais je n'arrive pas à comprendre:



    J'ai ces deux erreurs:
    PHP Fatal error: Call to a member function prepare() on a non-object on line 1494

    PHP Notice: Undefined variable: mysqli on line 1494
    Qui correspondent toutes les deux à la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           $stmt = $mysqli->prepare("UPDATE licences SET datedebut= ?, datefin = ? WHERE id= ?");

    Je vois que dans l'exemple 1 qui est donné dans le manuel, est comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!($stmt = $mysqli->prepare("UPDATE licences SET datedebut= ?, datefin = ? WHERE id= ?"))) {
        echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
    }

    Mais même de cette manière j'ai les deux mêmes erreurs.


    Mon code en l'état:

    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
    if (isset($_POST['datedebut'], $_POST['datefin'])){ 
           $db = mysqli_connect($localhost,$login,$pwd,$dbName) or die('Erreur de connexion '.mysql_error());       
     
    	   if (!($stmt = $mysqli->prepare("UPDATE licences SET datedebut= ?, datefin = ? WHERE id= ?"))) {
        echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
    }
    	  $stmt->bind_param("ssi", $datedebut, $datefin, $ID);
     
          foreach ($_POST['datedebut'] as $ID => $datedebut) {
                $datefin = $_POST['datefin'][$ID];
                $stmt->execute();
     
                 //echo 'debug : ' . $ID . ' - ' . $datedebut . ' - ' $datefin . '<br/>';
           }
    }

  12. #12
    Invité
    Invité(e)
    Par défaut
    bonjour,

    il faut comprendre ce qu'on fait :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
           $db = mysqli_connect($localhost,$login,$pwd,$dbName) or die('Erreur de connexion '.mysql_error());
    Ta connexion s'appelle $db, pas $mysqli.
    donc :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    	   if (!($stmt = $db->prepare(...)

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Par défaut Code Final
    Merci à tous pour votre aide!

    Voici mon code final, dans lequel j'ai été obligé de faire un "form bidon" pour rafraichir ma page. En effet, quand je submite la première fois, je suis obligé de rafraichir la page pour que l'entrée se fasse en BDD. J'ai donc mis un ptit bout de script un peu dégueu, mais qui a le mérite de marcher à 500 ms

    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
    <?php
     
     
    //On commence par répérer les champs 
     
    if (isset($_POST['datedebut'], $_POST['datefin'])){ 
           $db = mysqli_connect($localhost,$login,$pwd,$dbName) or die('Erreur de connexion '.mysql_error());       
     
    	   if (!($stmt = $db->prepare("UPDATE licences SET datedebut= ?, datefin = ? WHERE id= ?"))) {
        echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
    }
    	  $stmt->bind_param("ssi", $datedebut, $datefin, $ID);
     
          foreach ($_POST['datedebut'] as $ID => $datedebut) {
                $datefin = $_POST['datefin'][$ID];
                $stmt->execute();
            }
     
     
    ?>
    <input class="css_button" type="submit" value="Mettre à jour les licenses..." name="envoyer">
     
    <form name="formbidon" action="Licences.php">
    <input type="hidden" name="retour" value="retour" />
    </form>
    <script language="javascript">
    	setTimeout(function() {
    		document.formbidon.submit(); 
    	}, 500);
    </script>
    <?php
    }
    ?>

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    A mon avis tu as mis l'UPDATE après ton affichage.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Par défaut
    Ben si j'ai bien compris le code va se lire de haut en bas, si je mets mon update avant l'affichage, ça risque de foirer non

    Ah et j'ai une petite erreur, pas très grave puisque le script tourne:

    PHP Notice: Undefined offset: 8 on line 1507
    La ligne 1507 est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $datefin = $_POST['datefin'][$ID];

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si tu veux des données à jour c'est logique de faire la mise à jour avant l'affichage non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $datefin = isset($_POST['datefin'][$ID]) ? $_POST['datefin'][$ID] : NULL;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Par défaut
    Merci pour le bout de code!


    Oui, c'est pas faux...Je pensais que c'était dur d'aller chercher des données dans un tableau qui n'est pas encore créé.

    Mais j'ai fais fausse rute.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Problème requête UPDATE (WHERE)
    Par cedric.g dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/06/2012, 16h16
  2. Problème UPDATE et LIKE
    Par Golork dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/08/2005, 16h01
  3. [Update]Problème update Eclipse
    Par tomate dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 05/04/2005, 11h14
  4. Problème UPDATE
    Par Eltaz dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/07/2004, 11h37
  5. Problème clause WHERE
    Par Invité dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/06/2004, 15h07

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