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 :

supprimer une ligne d'une base de données via un checkbox [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 40
    Par défaut supprimer une ligne d'une base de données via un checkbox
    Bonjour,
    mon idée consiste à télécharger une table d'une base de données et générer un checkbox pour chaque ligne qui me permettra en premier lieu de supprimer la ligne cochée:
    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
    <form  name="form" method="post">
    			<?php
    				$link = mysql_connect("localhost","root");
    				mysql_select_db("GestionClients",$link)or die(mysql_error());
    				$query = "select * from Client";
    				$result = mysql_query($query, $link)or die($query . " - " . mysql_error());
    				$nbreResultats = mysql_num_rows($result);
    				echo "nombre d'enregistrement: ". $nbreResultats;
    				echo "</br>";
     
    				echo '<table bgcolor="#FFFFFF">
    		             <tr>
    			               <td bgcolor="#669999"><b><u>id</u></b></td>
    					       <td bgcolor="#669999"><b><u>nom</u></b></td>
    					       <td bgcolor="#669999"><b><u>prenom</u></b></td>
    					       <td bgcolor="#669999"><b><u>adresse</u></b></td>
    				      </tr>
    				</table>';
     
    				while ($tab= mysql_fetch_array($result)) {
    					echo $tab[id]." ".$tab[nom]." ".$tab[prenom]." ".$tab[adresse];
    					echo '<input type="checkbox" name=$tab[id]>';echo $tab[id];
    					echo "</br>";
    				}
    			?>
    ceci me permettra de permettre à mon bouton de supprimer les cases choisies:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    					if(isset($_POST['submit'])){echo'je ss a foreach';
    						foreach($_POST[tab] as $tab[id]){
    							$link = mysql_connect("localhost","root");	
    							mysql_select_db("GestionClients",$link)or die((mysql_error()));
    							$query = "delete from client where id ='{$_POST[$tab[id]]}'";echo'$query';
    							mysql_query($query)or die('Error, delete query faileed');	
    						}
    					}
    			    ?>
    				</form>
    					<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
    					<input type="submit" value="supprimer">
    				</form>
    voila mon idée qui ne marche pas malheureusement sachant que la liste s'affiche et que mes tests montrent que le navigateur n'entre même pas à la boucle foreach

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    il faut que ton bouton "submit" est l'attribut name="submit" si tu veux valider $_POST['submit']
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Inscrit en
    Août 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 40
    Par défaut
    je viens de rectifier mais ca n'entre meme pas encore a la boucle foreanch

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Par défaut
    if(isset($_POST['submit'])) je pense pas que ce soit ca.
    Mets plutot le nom du champ ke lon renseigne.

    Pour passer le id des infos, tu peux aussi utiliser un get : tu crées un input, et dans le form tu mets action="monadress.php?id='.$id.'"
    et tu recuperes ca

  5. #5
    Membre averti
    Inscrit en
    Août 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 40
    Par défaut
    bon voila j'ai essayé de me simplifier la tâche et de modifier un client au lieu de supprimer plusieurs afin d'échaper à cette maudite boucle foreach
    alors j'ai fait cela pour générer ma table:
    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
    <form method="post" action="ModifierClient.php">
    			<?php
    				$link = mysql_connect("localhost","root");
    				mysql_select_db("GestionClients",$link)or die(mysql_error());
    				$query = "select * from Client";
    				$result = mysql_query($query, $link)or die($query . " - " . mysql_error());
    				$nbreResultats = mysql_num_rows($result);
    				echo "nombre d'enregistrement: ". $nbreResultats;
    				echo "</br>";
     
    				while ($tab= mysql_fetch_array($result)) {
    					echo $tab[id]." ".$tab[nom]." ".$tab[prenom]." ".$tab[adresse];
    					echo '<input type="checkbox" name="erease" value=$tab[id]';
    					echo $tab[id];
    					echo "</br>";
    				}
    				echo '<a href="ModifierClient.php"><input type="submit" value="modifier" name="submit"></a>';
    			?>
    			</form>
    une fois je suis à la page modifier je fais ce petit test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <body>
    		    <?php echo 'hello';
    		    	if($_POST){
    		    		$asupprimer=htmlentities($_POST['erase']);
    		    		echo $asupprimer;
    		    	}
    		    	else echo 'rien';
    		    ?>
    		</body>
    ce qu'on m'affiche c'est hello qui fait signe qu'on est au début et "rien" qui fait signe que la page n'a rien reçu

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Par défaut
    if($_POST){
    ....

    Il manque le quelque chose je crois.
    $_POST['tiensyaunchampla']

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Les variables PHP ne sont pas interpretés dans les guillemets simples.
    Les valeurs HTML sont encadrés par des guillements doubles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="checkbox" name="erease" value=$tab[id]';
    ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="checkbox" name="erease" value="' . $tab[id] . '"  />';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/01/2015, 18h30
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. supprimer des donnees dans une base de données via des checkbox dans un tableau
    Par nourchéne dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 03/04/2013, 18h01
  4. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  5. [phpMyAdmin] question sur une ligne à ajouter à ma base de données
    Par jsdar dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 14/04/2007, 11h13

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