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 :

Pour une ligne ca marche, mais si plusieurs ligne ca foire


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 19
    Points : 8
    Points
    8
    Par défaut Pour une ligne ca marche, mais si plusieurs ligne ca foire
    Bonjour, je viens vous demander de l'aide car je tourne en rond ...

    Je veux afficher des checbox au bout de chaque ligne.
    chaque ligen de koi???
    je stock un text dans ma base de donne, et a chaque [ENTER], je veux qui ai une checbox.

    Alors ca ca marche

    Le probleme, c'est que je veux qu'apres on puisse les decoche et recoche a notre envie. Mais la probleme, il ne me stocke pas bien dans ma base la bonne valeur ... et de deux si je coche une case il fais comme si je les avait toute coché. et si je les decoche toute la il me les reaffiche toute non coché donc ok.

    Quelqu'un voit il le probleme?
    quelqu'un peut il venir en mon secour?
    ca fait 4 jours que je suis dessus presque toute la journee et je me confie a vous la :$

    Voici mon 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
    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
    if(!empty($resolution)) 
    { 
        $resolution=trim($resolution); 
        $probleme=split("\n",$resolution); 
        $max=count($probleme); 
        $cpt=0; 
        ?> 
            <input type="hidden" name="max" value="<?=$max?>"> 
        <? 
        $tab = explode(',',$ligne); 
      while($cpt<$max) 
    { 
    foreach($tab as $clef => $valeur) { 
     
     
        if($valeur==1) 
        { 
        $checked = 'checked'; 
        $lignee=1; 
     
        echo "$probleme[$cpt]"; 
        echo '<input type="checkbox" name="liste['.$clef.']" value="1" '.$checked.' />'; 
        echo "<br>"; 
     
     
        } 
    else [color=red:f7c21d745b]{[/color:f7c21d745b] 
                $checked = ''; 
                $lignee=0; 
     
     
        echo "$probleme[$cpt]"; 
        echo '<input type="checkbox" name="liste['.$clef.']" value="1" '.$checked.' />'; 
     
        echo "<br>"; 
    [color=red:f7c21d745b]}[/color:f7c21d745b] 
     
    $listeCoche.=$lignee.','; 
        echo "<input type=\"hidden\" name=\"line\" value=\"$listeCoche\">"; 
     
     
    } 
     
    $cpt=$cpt+1; 
     
    }
    je recupere comme ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     if($_POST['liste'])
     {
     foreach($_POST['liste'] as $valeur) 
        {
        $ligne.= $valeur.",";
           }
     
      $req="UPDATE intervention SET ligne='$valeur' WHERE idinter='$idinter'";
       	$sql = mysql_query($req) or die('Erreur SQL'); 
     }

    Meric d'avance

  2. #2
    Membre averti Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Points : 392
    Points
    392
    Par défaut
    fais un truc plus simple pour comprendre ton erreur.
    passe pas par la db, fais juste deux lignes avec deux check box
    tu trouveras plus vite ton erreur.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    j'ai essaye justement ca, et ca marche sans probleme ... C'est quand je veux faire avec ma base de donne que ca coince ...

  4. #4
    Membre régulier Avatar de BGDC
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 102
    Points : 121
    Points
    121
    Par défaut
    Slt,

    Fait un echo de ta requete, histoire de voir la tete qu'elle a.....

    Edit: tu peux aussi aller voir le paragraphe 5 ici : http://julp.developpez.com/php/formulaires/
    ca devrait pas mal t'aider......

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    UPDATE intervention SET notetech='', noteprix='matos n°126', duree='2:30', technicien='Amaury', backup='0', format='0', max='3', line='0,0,0,' WHERE idinter='39'

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Dans ta boucle, tu devrais avoir au moins deux éléments :
    • l'identifiant du tuple à modifier
    • la (les) nouvelle(s) valeur(s)

    Avec ton code actuel, il me semble que tu modifies le même tuple à chaque UPDATE et qu'il prend donc finalement la valeur de la dernière case de ton formulaire. Me trompé-je ?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    merci, mais il n'explique pas comment faire dans mon cas, moi j'affiche des checkbox en fonction d'un textarea, ou quand on rentre un texte dedans, je regarde tout les [enter] et j'y place une checkbox

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Kirkis, je vois ce que tu veux dire et je pense que le probleme est la, mais je vois pas comment le resoudre :$

    peux tu m'aider un peu?

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    En fait, il faut que tu t'arranges pour avoir un champ hidden que tu puisses associer à ta checkbox.
    Tu peux t'arranger avec des tableaux associatifs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ?>
    input type="hidden" name="element[<?php echo $i; ?>][id]"
    input type="checkbox" name="element[<?php echo $i; ?>][value]"
    <?php
    Tu boucles pour créer un formulaire avec ces champs, comme je suis sûr que tu le fais déjà.
    À la récupération, tu boucles aussi avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach($_POST['element'] as $element){
       $element['id'] = intval($element['id']);
       $element['value'] = mysql_real_escape_string($element['value']);
       // traitement: UPDATE
    }

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/04/2015, 09h12
  2. Besoin d'aide pour une étude de marché
    Par Zaurore dans le forum Sujets
    Réponses: 2
    Dernier message: 03/12/2014, 23h14
  3. Réponses: 1
    Dernier message: 14/03/2014, 20h21
  4. Réponses: 1
    Dernier message: 07/05/2008, 18h38
  5. Réponses: 8
    Dernier message: 26/03/2008, 16h58

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