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 :

[SQL] Problème requêtes SQL


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut [SQL] Problème requêtes SQL
    j'essaye de réaliser une requête update sur deux tables: en faite j ai deux tables: une bien et une type qui contiennent chacun le champ bientype:
    j'aimerai pouvoir supprimer dans la table bien tout les champs qui contiennent le bientype proposés et dans la table bientype le champ bientype et typedescription, je suis peut etre pas clair, je vous montre les deux tables:

    table bien: bienid biennom bientype biendescription bienprix bienimage bienvideo bienville biendatecrea

    table type: bientype typedescription


    Code:

    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
    <?
    $typedescription=$_POST['typedescription'];
    $bientype=$_POST['bientype'];
    include("misc.inc");
    $connection = mysql_connect($host,$user,$password) or die ("connexion au serveur impossible");
    $db = mysql_select_db($database,$connection) or die ("sélection de la base de donnée impossible");
    $sql = "UPDATE type SET bientype='".$bientype."',typedescription='".$typedescription."' WHERE  bientype='".$_POST['bientype']."'";
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    $sql2 = "UPDATE bien SET bientype='".$bientype."' WHERE bientype='".$_POST['bientype']."'";
    $req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
    ?>
    <div align="center"><br>
    <br><br><br><br><br><br>
    <strong><font face="Arial, Helvetica, sans-serif">Modification de <em><? echo $bientype; ?></em>
    effectuée.</font></strong><br /><a href="index.html">retour menu </a><br /><a href="mise.php">modifier une autre catégorie </a>
     
    </body>
    </html>
    mais le résultat n'est pas celui escompté car le champ typedescription se met bien a jour quand je touche pas a bientype mais dès que je modifie le champ bientype, la requête me met pas de message d erreur mais elle ne fait pas le changement sur bientype.
    voyez vous de quoi cela pourrait venir ?
    merci d'avance

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Je comprends pas bien parce que au début tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bientype=$_POST['bientype'];
    Ensuite dans ta requête update:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql2 = "UPDATE bien SET bientype='".$bientype."' WHERE bientype='".$_POST['bientype']."'";
    En gros tu modifies par la même valeur ?

  3. #3
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    en faite,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bientype=$_POST['bientype'];
    correspond à la valeur qui est modifié dans le formulaire et qui envoye sur cette page.
    c est alors que par la suite j'aimerai changer l'ancienne valeur par la nouvelle qui doit etre contenue dans $bientype.
    mais ca ne fonctionne.
    je pense qu en faite t as compris mon erreur, je dois surement remettre la même valeur dans ma requête.
    mais j ai essayé plusieurs essaies sans succès!! je m emmele complètement entre l'ancienne valeur et la nouvelle.
    en gros je dois dire de remplacer l'ancienne valeur par la valeur $_POST['bientype'].
    si je fais ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql2 = "UPDATE bien SET bientype='".$_POST['bientype']."'";
    il va écraser tout les autres bientype autres que celui d avant??
    c est quand même balaise comment je m embrouille

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    A un moment précédent (à l'affichage du formulaire par exemple), tu récupères l'ancien nom que tu mets dans un champs hidden.

    Ensuite dans la requête, tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql2 = "UPDATE bien SET bientype='".$_POST['bientype']."' WHERE bientype='".$_POST['le_champ_hidden']."'";
    (Soit dit en passant, il faudrait sécuriser tes updates (addslashes(), mysql_real_escape())...)

  5. #5
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    merci beaucoup !!
    c est résolu !!
    ca marche super bien!!!
    un grand merci !!!!!!!!!!!!!!!!!!!!!!!!!
    je suis super content ma gestion immobilière avance, merci anduriel
    ca fais bien deux jours que je trifouillai sans grand succès!!
    j'avais une dernière question qui me travaille aussi j'ai fais une pagination du catalogue en utilisant un tutoriel.
    quand je choisie ma catégorie sur ma première page mes enregistrements s'affichent mais sur la deuxième j ai pas la suite, j ai essayé de passer en get la valeur echo $ choix; mais ca me fais une page blanche dans les pages suivantes.
    en faite je pense avoir cerner le problème, c est que la base doit pas savoir ou elle en est dans les enregistrements, il doit falloir que je lui envoye dans la deuxieme page la requete qui lui dit par exemple de commencer a partir du troisième enregistrements?
    je me trompe ??
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>catalogue des biens</title>
    </head>
    
    <body>
    <? include("misc.inc");
    
    
    $choix=$_GET['interet'];// valeur recupere du formulaire
    $connection = mysql_connect($host,$user,$password) or die ("connexion au serveur impossible");
    $db = mysql_select_db($database,$connection) or die ("sélection de la base de donnée impossible");
    $query = "select * from bien WHERE bientype='".$choix."'";
    $result = mysql_query($query) or die ("exécution de la sélection impossible");
    $Nmax = 2; // nombre par page
    $Ncur = 0; // n° de la fiche courante
    $Ndeb=@$_GET["num"];
    
    //afficher les résultats dans un tableau
    echo "<table cellspacing='10' border='0' cellpadding='0' width='100%'>";
    echo "<tr><td colspan='5' align='right'>
    <i>cliquez sur une image pour l'afficher en grand</i><br><hr></td></tr>\n";
    while (($ligne = mysql_fetch_array($result,MYSQL_ASSOC) ) &&($Ncur<$Nmax))
    {    if($Ncur>=$Ndeb) {
    $f_prix =  number_format($ligne['bienprix'],2);
    
    // affiche une ligne pour chaque bien
    echo "<tr>\n";
    echo "<td>{$ligne['bienid']}</td>\n";
    $nombien = stripslashes($ligne['biennom']);
    echo "<td><font size='+1'><b>$nombien</b></font></td>\n";
    echo "<td>{$ligne['biendescription']}</td>\n";
    echo "<td><a href='image/{$ligne['bienimage']}' border='0'>
    <img src='image/{$ligne['bienimage']}' border='0' width='100' height='80'></a></td>\n";
    echo "<td><a href='video/{$ligne['bienvideo']}' border='0'>
    vidéo</a></td>\n";
    
    echo "<td>{$ligne['bienville']}</td>\n";
    echo "<td>{$ligne['biendatecrea']}</td>\n";
    echo "<td align='center'>$f_prix €</td>\n</tr>\n";
    echo "<tr><td colspan='5'><hr></td></tr>\n";
    }
    
    $Ncur++;}
    echo "</table>\n";
    echo "<div align='center'><a href='catalogue.php'><b>Pour en voir d'autres</b></a></div>";
    ?>
    <table cellpadding=3><tr>
    <? // Navigation
    // Des fiches avant ?
    if($Ndeb > 0) { ?>
       <td valign=top>
          <A href="?num=<? echo $Ndeb-$Nmax; ?>&interet=<? echo $choix; ?>">
             Retour</A>
       </td>
    <? } ?>
       <td>   
    <? // N° des pages
    $Npag = ceil(mysql_numrows($result)/$Nmax);
    for($i = 1;$i<=$Npag;$i++) {
       // Page courante ?
       if($Ndeb == ($i-1)*$Nmax) { ?>
          Page <? echo $i; ?>
       <? } else { ?>
          <A href="?num=<? echo ($i-1)*$Nmax; ?>&interet=<? echo $choix; ?>"
          >&nbsp;<? echo $i; ?>&nbsp;</A>
       <? }
    } ?>
       </td>   
    <? // Des fiches après ?
    if($ligne) { ?>
       <td valign=top>
          <A href="?num=<? echo $Ncur;?>&interet=<? echo $choix; ?>">Suite</A>
       </td>
    <? } ?>
    </tr></table>
    
    </BODY></HTML>
    <? mysql_close(); ?>

  6. #6
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    il doit falloir que je lui envoye dans la deuxieme page la requete qui lui dit par exemple de commencer a partir du troisième enregistrements?
    Oui c'est exactement çà... d'ailleurs c'est assez énervant à faire étant donné que le listage dans la base commence a 0 et non à 1... (enfin pour moi )

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

Discussions similaires

  1. [AC-2003] Requête sql sur requête sql en vba
    Par Smoovy35 dans le forum Access
    Réponses: 3
    Dernier message: 17/01/2011, 20h25
  2. [SQL] Problème requêtes SQL / php
    Par laulau37 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 02/07/2007, 15h48
  3. [SQL] Problème requête sql,rajouter une valeur,checbox
    Par snakejl dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 23/06/2006, 11h18
  4. problème requête sql
    Par perfectdams dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/06/2005, 18h09
  5. Réponses: 8
    Dernier message: 23/10/2003, 16h22

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