MYSLQ UPDATE,update toute une colonne.

Wons -  
 Wons -
Bonjour,

Je suis en cours de développement, d'un extranet pour mon projet de stage.
Et lors d'une requete SQL ou je suis sensé après un formulaire ( voir ci-dessous), mettre à jour une ligne d'une table. Tout marche sauf pour la colonne "Materiel" qui update toute la colonne du coup c'est moins cool.

Voici mon code

<div id="modif">
<form  method="post">
<fieldset  class="style" ><p>
<label for ="nom">Nom</label> <input type="text" readonly="readonly" name="nom"id="nom" value="<?php echo $nom; ?>"><br />
<label for="ville">Ville</label><input type="text" readonly="readonly" name="ville" id="ville" value="<?php echo $ville; ?>"><br />
<label for="matos">Materiel</label><select name="materiel">
<?php $req = $bdd -> query('SELECT nom_cat FROM categorie
       WHERE nom_cat != "'.$nom_cat.'"') ;
  $req_bis = $bdd ->query('SELECT COUNT(id_cat) AS nb FROM categorie');
      $bis = $req_bis ->fetch();
      $max = $bis['nb'];
      echo '<option selected="selected" value"'.$nom_cat.'">'.$nom_cat.'</option>';
      while($donnees = $req->fetch())
      { echo '<option value="'.$donnees['nom_cat'].'">'.$donnees['nom_cat'].'</option>';
      }
      
      
?></select>
<label for="tel"> Telephone</label><input type="text" name="tell" id="tel" value="<?php echo $tel; ?>"><br />
<label for="id_tv">Id teamviewer</label><input type="text" name="id_tv" id="id_tv" value="<?php echo $tv ; ?>"><br />
<label for="mdp">Mot de passe</label><input type="text" name="mdp" id="mdp" value="<?php echo $mdp; ?>"><br />
<label for="conf">Confirmation</label><input type="text" name="conf" id="conf" value="<?php echo $mdp; ?>"><br />
<input id="submit" type="submit" value="Modifier">
</p>
</fieldset>
</form>


<?php
if(!empty($_POST['nom'])) 
{
 if(!empty($_POST['id_tv']))
 {
  if (isset($_POST['mdp']))
  {          
    $passe =mysql_real_escape_string(htmlspecialchars($_POST['mdp']));
    $passe2 = mysql_real_escape_string(htmlspecialchars($_POST['conf']));

   if($passe==$passe2)
   {  
     $id_mat = chgnom( mysql_real_escape_string(htmlspecialchars($nom_cat)));
     $nom_m = mysql_real_escape_string(htmlspecialchars($_POST['materiel']));
     $nv_tv = mysql_real_escape_string(htmlspecialchars($_POST['id_tv']));
     $nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
     $req=$bdd->exec('UPDATE pc,categorie
         SET pc.id_tv ="'.$nv_tv.'", pc.mdp_tv="'.$passe.'", categorie.nom_cat="'.$nom_m.'"
         WHERE
         pc.id_client ="'.$id.'"
         AND 
         pc.id_cat = "'.$id_mat.'"
         '); 
         header('Location:teamviewer.php');
   }
   else
    {
     ?><script>alert('Mots de passe differents');</script><?php
    } 
  }
   
   elseif($_POST['mdp']=NULL)
   {
   ?><script>alert('Il faut un mot de passe');</script><?php
   }
 }
}

?>
</div>





Merci de vos reponses.
A voir également:

1 réponse

jee pee Messages postés 41553 Date d'inscription   Statut Modérateur Dernière intervention   9 725
 
Bonjour,

mettre à jour une ligne d'une table

non dans ton update tu mets à jour 2 tables : PC et categorie

'UPDATE pc,categorie
SET pc.id_tv ="'.$nv_tv.'", pc.mdp_tv="'.$passe.'", 
categorie.nom_cat="'.$nom_m.'"
WHERE
pc.id_client ="'.$id.'"
AND 
pc.id_cat = "'.$id_mat.'"




        Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
Wons
 
Mon souci n'est pas la, je veux que cela m'update deux tables, cependant dans ma table "PC" la colonne "matériel" se remplit intégralement de la valeur mise dans le formulaire.
0