Mise à jour plusieurs ligne sql impossible

fabrice88
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 289
Inscription: 15 Oct 2007

Mise à jour plusieurs ligne sql impossible

Message le Jeu Déc 22, 2011 14:14

Bonjour,
j’essaie de mettre à jour plusieurs lignes (des tarifs) dans ma base de données.
Le problème que je rencontre est que... sa ne fonctionne pas et je n'arrive pas à trouver le pourquoi.

voici mon code avec mon formulaire :
Code: Tout sélectionner
<form name="prix" method="post" action="">
<?php
$sql="SELECT * FROM IWtarifsloca ORDER BY id ASC";
$result=mysql_query($sql);

// On compte le nombre de lignes dans la table
$count=mysql_num_rows($result);

// On fait une boucle pour lister tout ce que contient la table :
while($rows=mysql_fetch_array($result) )
{
?>
    <?php $Id[]=$rows['id']; ?>
     <input name="chambre[]" type="text" id="chambre" class="chambre" value="<?php echo $rows['chambre']; ?>" size="20">
     <textarea name="description[]" class="chambre" id="description" maxlength="255"><?php echo $rows['description']; ?></textarea>
     <input name="tarifs[]" type="text" id="tarifs" class="miniinput" value="<?php echo $rows['tarifs']; ?>" size="10" />
    <?php } ?>
  <input type="submit" name="Submit" value="Modifier">
   
<?php
// Check if button name "Submit" is active, do this
if(isset($_POST['Submit'])){
        for($i=0;$i<$count;$i++){
                $chambre = $_POST['chambre[$i]'];
                $description = $_POST['description[$i]'];
                $tarifs = $_POST['tarifs[$i]'];
                $sql1="UPDATE IWtarifsloca SET chambre='$chambre', description='$description', tarifs='$tarifs' WHERE id='$Id[$i]'";
                $result1=mysql_query($sql1);
        }
}

if($result1)
{
        echo "ok";     
        $confirm="OK";
?>
    <script type="text/javascript">
     document.location.href="tarifs.php";
    </script>
   
<?php } mysql_close(); ?>


Si vous avez une idée d'ou est mon ou mes erreurs....


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19595
Inscription: 8 Aoû 2004

Re: Mise à jour plusieurs ligne sql impossible

Message le Jeu Déc 22, 2011 17:34

c'est simple : tu fais afficher ta requête à l'écran et tu testes dans phpmyadmin. Comme cela l'erreur sera affichée plus explicitement


bgdc
WRInaute impliqué
WRInaute impliqué
 
Messages: 723
Inscription: 23 Mai 2005

Re: Mise à jour plusieurs ligne sql impossible

Message le Jeu Déc 22, 2011 23:03

Par expérience, je dirais le manque de addslashes sur tes variables avant de les mettre à jour ...

lambi521
WRInaute impliqué
WRInaute impliqué
 
Messages: 782
Inscription: 15 Juin 2010

Re: Mise à jour plusieurs ligne sql impossible

Message le Ven Déc 23, 2011 9:45

Problème de concaténation à mon avis, essaie un truc comme ça :

Code: Tout sélectionner

$sql 
= mysql_query ("UPDATE IWtarifsloca SET chambre = '".$chambre."', description = '".$description."', tarifs = '".$tarifs."' WHERE id = '".$Id[$i]."'"); 



Par ailleurs tu devrais préparer tes données à l'envoi dans ta BDD avec stripslashes($data) par exemple car justement, si une variable contient un apostrophe ' ou un guillemet ", cela coupe la concaténation de ta fonction update ce qui fait que ça ne veut plus rien dire pour la BDD donc pas d'update.

Sinon aucune raison que ça ne fonctionne pas, bye


nalrem
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 401
Inscription: 6 Avr 2003

Re: Mise à jour plusieurs ligne sql impossible

Message le Ven Déc 23, 2011 10:45

Hello

Code: Tout sélectionner
$chambre = $_POST['chambre[$i]'];
$description = $_POST['description[$i]'];
$tarifs = $_POST['tarifs[$i]'];


Des quotes en trop et un manque de $ ;)

Par ailleurs, je t'invite à te renseigner sur la façon de sécuriser des requêtes mysql. Là tu prends beaucoup de risques.

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: Mise à jour plusieurs ligne sql impossible

Message le Sam Déc 24, 2011 15:57

En plus, ta boucle d'update est à l'intérieur de ta boucle d'affichage, elle devrait être après...

Jacques.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité