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 :

[Conception] Supprimer une ligne d'un tableau à partir d'un CHECKBOX


Sujet :

PHP & Base de données

  1. #41
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    alor myomyo etsnakej dans la page de traitement(ca peut etre celle du formulaire) qui est indiquer dans la balise form vous faite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(isset($_POST['nom du bouton d'envoi'])
    {
          $id=$_POST['sel'];  
          for ($i = 0; $i < count($id); $i++)
                {
              $req="DELETE ... where id = '$id[$i]'"
             mysql_query ($req) or die('Requete invalide : ' . mysql_error() );
     }
    }
    Voila .....adapter ce code a vos besoins

    edit:Je pense que ca soit la meilleure facon de proceder vu ke ca fait beaucou de requete...a envoyer a la base...

  2. #42
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Points : 51
    Points
    51
    Par défaut
    Aïe comme dirait l'autre petit mais costaud!

    Juste avant que je me lance, quelques questions! :
    - à quoi correspond 'sel' ?
    - à quoi correspond $sup
    - faire un count($sup) dans le for ne va pas consommer bcp de ressources? j'ai lu dans un forum de developpez qu'il vallait mieux faire les calculs avant, puis les stocker dans une variable, pour faire qqch du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $a = count($sup);
    for ($i = 0; $i < $a; $i++)
    En effet, ca evite de refaire le calcul a chaque fois!
    Merci de ton aide!

  3. #43
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Citation Envoyé par myomyo
    Aïe comme dirait l'autre petit mais costaud!

    Juste avant que je me lance, quelques questions! :
    - à quoi correspond 'sel' ?
    - à quoi correspond $sup
    - faire un count($sup) dans le for ne va pas consommer bcp de ressources? j'ai lu dans un forum de developpez qu'il vallait mieux faire les calculs avant, puis les stocker dans une variable, pour faire qqch du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $a = count($sup);
    for ($i = 0; $i < $a; $i++)
    En effet, ca evite de refaire le calcul a chaque fois!
    Merci de ton aide!
    - sel correspont au name te ton chekbox: name= '$sel[]'
    - $sup erreur de ma part corriger sorry
    - pour le count oui ca doit etre faux ce que tu dit ..je m'étais jamais posé la question !! j'ai fais ca un peu vite

  4. #44
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Citation Envoyé par boo64
    edit:Je pense que ca soit la meilleure facon de proceder vu ke ca fait beaucou de requete...a envoyer a la base...
    heu... oué...
    et si on enlevais le for et qu'on faisait qu'une seule requete ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (count($_POST['choix']) > 0) {
       $req = "DELETE ... WHERE ID IN (".implode(',', $_POST['choix']).")";
    }

  5. #45
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Citation Envoyé par Fladnag
    heu... oué...
    et si on enlevais le for et qu'on faisait qu'une seule requete ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (count($_POST['choix']) > 0) {
       $req = "DELETE ... WHERE ID IN (".implode(',', $_POST['choix']).")";
    }
    Je debute en php pour mon stage....c'est pour ca connaissait pas implode.....vu que j'ai pas eu a faire ce genre de code....mais ca a l'air beaucoup mieu

    edit: ok c bon j'ai vu a quoi servait implode... donc oui c'est carrément mieu!!!

  6. #46
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Points : 51
    Points
    51
    Par défaut
    Bon als j'ai adapté ton code a mon truc mais dans ma page avec les checkbox, il ne veut pas de mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><font color='yellow'><input type='checkbox' name='$sel[]' value=''></font></td>
    Parse error: parse error, unexpected ']', expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\documents and settings\eivp\mes documents\site sans nom 1\vincent2.php on line 43
    Je ne sais po pê à cause du value vide LOL je vais relire le début du topic pour oir ce que vous aviez dit pcke je crois avoir lu des trucs avec ca...

    Je viens de voir value="$id" dsl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><font color='yellow'><input type='checkbox' name='$sel[]' value='$id'></font></td>
    Mais ce ne marche pas non plus ca vient du ]

    Et implode, connais pas lol

  7. #47
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 56
    Points
    56
    Par défaut
    moi sa marche bien et je lé mis la dedans:
    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
    {
    	echo "<tr onclick=\ onmouseover=\"this.className='over'\" onmouseout=\"this.className='out'\" class=\"out\">
    	<td><font color='yellow'>$id->id</font></td>
    	<td><font color='yellow'>$ligne->grade</font></td>
    	<td><font color='yellow'>$ligne->nom</font></td>
    	<td><font color='yellow'>$ligne->prenom</font></td>
    	<td><font color='yellow'>$ligne->telephone</font></td>
    	<td><font color='yellow'>$ligne->motif</font></td>
    	<td><font color='yellow'>$ligne->From_day</font></td>
    	<td><font color='yellow'>$ligne->From_month</font></td>
    	<td><font color='yellow'>$ligne->From_year</font></td>
    	<td><font color='yellow'>$ligne->heuredebut</font></td>
    	<td><font color='yellow'>$ligne->minutesdebut</font></td>
    	<td><font color='yellow'>$ligne->heurefin</font></td>
    	<td><font color='yellow'>$ligne->minutesfin</font></td>
    	<td><font color='yellow'>$effacer->effacer</font></td>
    	<td><font color='yellow'><INPUT TYPE='checkbox' VALUE='val' NAME='name[]'/></font></td>
    	</tr>";
    }
    Mais pour l'effacement et l'affichage de l'id je cherche

  8. #48
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Myomyo => n'écoute pas le méchant palois, dans le name de ton checkbox mets sel[] et pas $sel[]

    Snake => dans ton value ça serait pas mieux de mettre l'id ?

  9. #49
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Citation Envoyé par JWhite
    Myomyo => n'écoute pas le méchant palois, dans le name de ton checkbox mets sel[] et pas $sel[]

    Snake => dans ton value ça serait pas mieux de mettre l'id ?
    oups pardon Myomyo ..... avait pas vus que j'avais mis le $

    edit: grrr JWhite j'ai jamais fait cette erreur....je viens de verif ou sinon cela m'a echappé...

    edit2: Snake ==> +1 JWhite met dans ton value: value="$id"

  10. #50
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    je viens de verif ou sinon m'as echappé...




  11. #51
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Points : 51
    Points
    51
    Par défaut
    Rôô méchant palois! lol pas grave comme ca la prochaine fois je regarderai bien a deux fois ....

    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
    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
    <?php 
    mysql_connect("localhost", "root", "");
    mysql_select_db("connec");
    ?>
    <html>
    <head>
    <META HTTP-EQUIV="Refresh" CONTENT="10";>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
    <!--
    body {
    	background-color: #0000FF;
    }
    -->
    </style><body>
    <form name="form1" method="post" action="vincent4.php">
    <table class="frm" align="center">
    <tr>
    <th bgcolor='#99CCFF' width="3%">Supprimer</th>
    <th bgcolor='#99CCFF' width="3%">ID</th>
    <th bgcolor='#99CCFF' width="3%">Jour_Deb</th>
    <th bgcolor='#99CCFF' width="15%">Jour_Fin</th>
    <th bgcolor='#99CCFF' width="15%">Mois</th>
    <th bgcolor='#99CCFF' width="5%">Année</th>
    <th bgcolor='#99CCFF' width="30%">Promotion</th>
    <th bgcolor='#99CCFF' width="2%">Jour</th>
    <th bgcolor='#99CCFF' width="2%">Heure_deb</th>
    <th bgcolor='#99CCFF' width="4%">Min_deb</th>
    <th bgcolor='#99CCFF' width="3%">Heure_fin</th>
    <th bgcolor='#99CCFF' width="2%">Min_fin</th>
    <th bgcolor='#99CCFF' width="3%">Groupe</th>
    <th bgcolor='#99CCFF' width="3%">Matière</th>
    <th bgcolor='#99CCFF' width="6%">Prof</th>
    <th bgcolor='#99CCFF' width="3%">Salle</th>
    <th bgcolor='#99CCFF' width="3%">COurs_num</th>
    <th bgcolor='#99CCFF' width="6%">Cours_total</th>
    </tr>
    
    
    <?php
    $resultat = mysql_query("SELECT * FROM final ORDER BY jour_deb");
    while($ligne= mysql_fetch_object($resultat))
    {
    	echo "
    	<td><font color='yellow'><input type='checkbox' name='sel[]' value='$id'></font></td>
    	<td><font color='yellow'>$ligne->ID</font></td> // Ca affiche 
    	<td><font color='yellow'>$ligne->jour_deb</font></td>
    	<td><font color='yellow'>$ligne->jour_fin</font></td>
    	<td><font color='yellow'>$ligne->mois</font></td>
    	<td><font color='yellow'>$ligne->annee</font></td>
    	<td><font color='yellow'>$ligne->class</font></td>
    	<td><font color='yellow'>$ligne->jour</font></td>
    	<td><font color='yellow'>$ligne->heure_deb</font></td>
    	<td><font color='yellow'>$ligne->min_deb</font></td>
    	<td><font color='yellow'>$ligne->heure_fin</font></td>
    	<td><font color='yellow'>$ligne->min_fin</font></td>
    	<td><font color='yellow'>$ligne->groupe</font></td>
    	<td><font color='yellow'>$ligne->matiere</font></td>
    	<td><font color='yellow'>$ligne->prof</font></td>
    	<td><font color='yellow'>$ligne->salle</font></td>
    	<td><font color='yellow'>$ligne->cours_num</font></td>
    	<td><font color='yellow'>$ligne->cours_total</font></td>
    
    	</tr>";
    
    }
    ?>
    
    </table>
    <label>
      <div align="center">
        <input type="submit" name="Submit" value="Valider les suppressions" />
      </div>
      </label>
    </form>
    </head>
    </body>
    </html>
    Si vous voyez un prob dites le moi .. mais pour l'instant il affiche le probleme est que l'autre page ne supprime pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    if(isset($_POST['Submit']))
    	{
          	$id=$_POST['sel'];  
          	for ($i = 0; $i < count($id); $i++)
     			{
             	 	$req = "DELETE * FROM final WHERE id = '$id[$i]'"
            		 mysql_query ($req) or die('Requete invalide : ' . mysql_error() );
     			}
    	}
    ?>
    Quand je clique pour valider les suppressions, donc pour aller sur vincent4.php qui contient le code ci dessus, il me trouve une erreur a la ligne 3 {. Comprend pas tout la. MANQUE UNE PARENTHESE, DSL! mais maintenant c'est la ligne 8 avec la requete SQL.

    Sinon snakej, pour afficher ne met pas $effacer mais $ligne ???

  12. #52
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    myomyo dans ton code faut mettre
    $ligne->ID //au lieu de $id....dans le chek box.. puisque dans value tu met la valeur que tu veus récuperer par lasuite dans le traitement et toi c'est l'id..

  13. #53
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Points : 51
    Points
    51
    Par défaut
    Comme ceci ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><font color='yellow'><input type='checkbox' name='sel[]' value='$ligne->ID'></font></td>
    ??

    Sinon pour la page de destination,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    if(isset($_POST['Submit']))
    	{
          	$id=$_POST['sel'];  
          	for ($i = 0; $i < count($id); $i++)
     			{
             	 	$req = "DELETE * FROM final WHERE id = '$id[$i]'";
            		 mysql_query ($req) or die(mysql_error());
     			}
    	}
    ?>

  14. #54
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Citation Envoyé par myomyo
    Comme ceci ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><font color='yellow'><input type='checkbox' name='sel[]' value='$ligne->ID'></font></td>
    ??

    Sinon pour la page de destination,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    if(isset($_POST['Submit']))
        {
              $id=$_POST['sel'];  
              for ($i = 0; $i < count($id); $i++)
                 {
                      $req = "DELETE * FROM final WHERE id = '$id[$i]'";
                     mysql_query ($req) or die(mysql_error());
                 }
        }
    ?>
    Attention dans ton delete le champ id c'est pas plutot ID dapres ce que tu as mis dans le form et ensuite utilise plutot la methode de fladnag ...!!

  15. #55
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Points : 51
    Points
    51
    Par défaut
    Oui c'est ID, je viens de m'en apercevoir, car il me renvoie un message d'erreur :
    Something is wrong in your syntax près de '* FROM final WHERE ID = ''' à la ligne 1
    Je l'ai changé mais il ne veut quand même pas :s

  16. #56
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Fais un echo $req;
    juste après l'avoir affecté.

  17. #57
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    fait un echo $req; pour voir ta requete


    edit: grr doublé par un manceaux....bon tant que vs nous laissez gagner ...

  18. #58
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut


    Encore à la bourre petit palois...

    Profite jusque samedi parce que après... tu seras à la bourre AND avec une défaite
    je vais chercher ma place dans 15 minutes...

  19. #59
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Points : 51
    Points
    51
    Par défaut
    avec le echo il me dit
    DELETE * FROM final WHERE ID = '1'

  20. #60
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Citation Envoyé par JWhite


    Encore à la bourre petit palois...

    Profite jusque samedi parce que après... tu seras à la bourre AND avec une défaite
    je vais chercher ma place dans 15 minutes...
    hihi et oui obligé d'aller cherché les places.....c ca d' avoir une salle tout petite
    et pour ce samedi....je m'attend pas forcement a une victoire paloise.....par contre on vs attend a pau

    ps:dsl pour le pourissage du topic ....

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. C++ Supprimer une ligne d'un tableau
    Par gcvoiron dans le forum C++
    Réponses: 17
    Dernier message: 07/11/2007, 16h01
  2. Supprimer une ligne d'un tableau, et MAJ de la BDD
    Par big x dans le forum Struts 1
    Réponses: 1
    Dernier message: 22/10/2007, 09h14
  3. Supprimer une ligne dans un tableau
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/06/2007, 15h14
  4. Réponses: 1
    Dernier message: 24/04/2007, 17h20
  5. supprimer une ligne dans un tableau
    Par sandball22 dans le forum C++Builder
    Réponses: 9
    Dernier message: 16/05/2006, 21h53

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