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 :

encore probleme update


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 319
    Par défaut encore probleme update
    Bonjour,

    ja i deux fichiers php qui me permettent de mettre a jour ma base selon une selection depuis un menu déroulant je sélectionnes mes labels et j affiche mes références artiste album et format selon label choisi mis j ai un problème avec mon update je modifie une valeur et il me modifie toute la table avec la dernière ligne affiché ........

    Voila le fichier php

    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
    103
    104
    105
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Catalogue</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body link="#000000" vlink="#FFFFFF" alink="#FFFFFF">
    <div id="body">
     
    <?php
     
    include ('config.php');
    include ('connexion.php');
     
    //nom_label
    $nom_label = $_POST["nom_label"] ;
     
    //reference
    $reference = $_POST["reference"];
     
     
     
    $sql1 = "SELECT contenu.reference, contenu.artiste, contenu.album, contenu.format, label.nom_label FROM contenu, label WHERE label.id_label = contenu.id_label AND label.nom_label = '".$_POST
     
    ['nom_label']."' ";
     
    $req1= mysql_query($sql1) or die( mysql_error() ) ;
     
    $total = mysql_num_rows($req1);
     
     
    if($total!=0)
     
    {
    echo '<form method ="post" action="modif2.php">';
    echo '<table>'."\n";
    echo '<tr>';
    echo '<td ><b><u>Label</u></b></td>';
    echo '<td ><b><u>reference</u></b></td>';
    echo '<td><b><u>artiste</u></b></td>';
    echo '<td><b><u>album</u></b></td>';
    echo '<td><b><u>format</u></b></td>';
    echo '</tr>'."\n";
     
    while($row = mysql_fetch_array($req1))
     
    {
    echo '<tr>';
    echo '<td><input type="text" name="nom_label" value="'.$row["nom_label"].'"/></td>';
    echo '<td><input type="text" name="reference" value="'.$row["reference"].'"/></td>';
    echo '<td><input type="text" name="artiste" value="'.$row["artiste"].'"/></td>';
    echo '<td><input type="text" name="album" value="'.$row["album"].'"/></td>';
    echo '<td><input type="text" name="format" value="'.$row["format"].'"/></td>';
    echo '</tr>'."\n";
    }
     
    echo '</table>'."\n";
    echo '<input type="submit" name="btOk" value="Modifier!"/>';
    echo '</form>';
    if (isset($_POST['btOk']))
    {
     
     
     
    $sql3= "UPDATE
    label, contenu
    SET
    nom_label='".$_POST['nom_label']."', reference='".$_POST['reference']."',
    artiste='".$_POST['artiste']."',album='".$_POST['album']."',
    format='".$_POST['format']."'";
     
     
     
     
    $req3= mysql_query($sql3) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
     
     
     
    if($req3)
     
     
    {
    echo ("L'insertion a été correctement effectuée") ;
    }
     
    else
     
    {
    echo("L'insertion à échouée") ;
    }
     
    }
     
    }
     
    ?>
     
    </body></html>
     
    <?php
    mysql_close();
    ?>
    Merci de votre aide

  2. #2
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Attention ton update ne comporte pas de clause WHERE cela veut dire qu'il mettra à jour toutes les occurences c'est ce que tu souhaite?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql3= "UPDATE
    label, contenu
    SET
    nom_label='".$_POST['nom_label']."', reference='".$_POST['reference']."',
    artiste='".$_POST['artiste']."',album='".$_POST['album']."',
    format='".$_POST['format']."' WHERE reference='".$_POST['reference']."'";
    Bon c'est un exemple où reference serait ta clé primaire

    Bref voila

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 319
    Par défaut
    Merci obito

    mais en gros si je met reference='".$_POST['reference']."' il me modifie par la dernier ligne selectionne toutes mes entrees de ma tbale contenu si je mets nom_label='".$_POST['nom_label']."' il me supprime tous les labels de ma table label sauf celui selectionnés et si je mets reference='".$_POST['reference']." and nom_label='".$_POST['nom_label']."' c est ok mais il ne fait pas l update ... je suis perdu

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Citation Envoyé par stefanelle Voir le message
    Merci obito

    mais en gros si je met reference='".$_POST['reference']."' il me modifie par la dernier ligne selectionne toutes mes entrees de ma tbale contenu si je mets nom_label='".$_POST['nom_label']."' il me supprime tous les labels de ma table label sauf celui selectionnés et si je mets reference='".$_POST['reference']." and nom_label='".$_POST['nom_label']."' c est ok mais il ne fait pas l update ... je suis perdu
    Je crois que t'as pas bien lu Obito

    Comme il l'a dit, il te manquait la clause WHERE qui va indiquer où les changements doivent être effectuer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql = "UPDATE maTable SET var1 = '".$val1."', var2 = '".$val2."', var3 = '".$val3."' WHERE id = '".$id."'";
    Si avec la clause WHERE ça ne marche toujours pas, vérifie la valeur de ta clause (dans cas : $_POST['reference'] d'apres le code d'Obito).
    Si la valeur est bonne, essaye 1 ou 2 UPDATE simple(s) (sans travailler sur 2 tables en même temps comme tu le fais)

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 319
    Par défaut
    en fait ça
    reference='".$_POST['reference']."' il me modifie par la dernier ligne selectionne toutes mes entrees de ma tbale contenu si je mets nom_label='".$_POST['nom_label']."' il me supprime tous les labels de ma table label sauf celui selectionnés et si je mets reference='".$_POST['reference']." and nom_label='".$_POST['nom_label']."'
    c'etait bien ma clause where

    je mettais
    "UPDATE
    label, contenu
    SET
    nom_label='".$_POST['nom_label']."', reference='".$_POST['reference']."',
    artiste='".$_POST['artiste']."',album='".$_POST['album']."',
    format='".$_POST['format']."'
    et ensuite les where différent plus haut mais ce ne fonctionne pas ... mais je crois que j vais pas fair eun update sur les deux tables trop compliqué je vais faire que sur une et je verrais avec l autre ...

  6. #6
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Citation Envoyé par stefanelle Voir le message

    je mettais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    "UPDATE
    label, contenu
    SET
    nom_label='".$_POST['nom_label']."', reference='".$_POST['reference']."',
    artiste='".$_POST['artiste']."',album='".$_POST['album']."',
    format='".$_POST['format']."'
    et ensuite les where différent plus haut mais ce ne fonctionne pas ... mais je crois que j vais pas fair eun update sur les deux tables trop compliqué je vais faire que sur une et je verrais avec l autre ...
    Heu... Je vois pas de WHERE la

    Sinon oui essaie séparément plutôt et dit nous si ca marche bien

Discussions similaires

  1. probleme update avec where sur requete imbriqué
    Par JulienCEA dans le forum Requêtes
    Réponses: 11
    Dernier message: 04/06/2008, 11h44
  2. Réponses: 13
    Dernier message: 20/03/2006, 16h26
  3. [MFC] Probleme update d'un BITMAP dans une boite.
    Par Platypus dans le forum MFC
    Réponses: 5
    Dernier message: 21/11/2005, 12h31
  4. Probleme Update avec chamd decimal
    Par ouellet5 dans le forum Access
    Réponses: 1
    Dernier message: 14/10/2005, 10h57
  5. Probleme UPDATE resultat trop long
    Par Tonio_1394 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/10/2004, 11h50

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