MYSLQ UPDATE,update toute une colonne.

Fermé
Wons - Modifié par jee pee le 5/04/2014 à 11:07
 Wons - 23 avril 2014 à 10:57
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 40587 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 décembre 2024 9 462
Modifié par jee pee le 5/04/2014 à 11:10
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
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