Checkbox html et mysql!

Résolu/Fermé
bluholm - 16 oct. 2008 à 18:50
 bluholm - 17 oct. 2008 à 00:18
Bonjour,
bon je debute depuis quelques semaines en SQL , php , html , je me debrouille plutot bien jusque la :p

AFFICHAGE TABLEAU
j'aimerais en fait avoir un tableau ( en html car j'ai rajouter du CSS pour qu'il soit plus beau) avec ma liste d'item mais aussi une colonne chekbox!
toutes les check box seront donc supprimer une fois que l'on clique sur le bouton supprimer !
voila les infos de code necessaires :
code de mon tableau :
<?
 // connection a la base en local
 $connect = mysql_connect("localhost","root","Kde13crop");
 // selection de la base
 mysql_select_db("MyBase", $connect);
 // votre requete de selection
 $sql =  mysql_query("SELECT * FROM eleve");
  // on compte le nombre de résultats
 $result = mysql_num_rows($sql);
echo '  <font face="arial" size="2">Il y a ',$result,' eleve(s) dans la base</font>  ';
 // récupération et affichage des données
 // affichage avec un boucle while
?>
<div id="exemple1">
&nbsp;<table summary="liste de quelques articles publics sur OpenWeb regroupes par auteurs et niveaux">
<caption></caption><thead><tr>
<th style="text-align: center; width: 176px;">&nbsp;Nom Prenom</th>
<th style="text-align: center; width: 59px;">Classe</th>
<th style="text-align: center; width: 161px;">Matieres</th>
<th style="text-align: center; width: 119px;">prochain RDV<br />
<th style="text-align: center; width: 15px;"><br />
</th>
</tr>
</thead>
<tfoot><tr>
<th style="width: 176px;">&nbsp;</th>
<th style="width: 59px;"><br /></th>
<th style="width: 161px;"><br /></th>
<th style="width: 119px;"><br /></th>
<th style="width: 15px;"><br /></th>

</tr>
</tfoot>
	<form method="post" action="suppeleve.php">
<?
 while($affichage = mysql_fetch_array($sql, MYSQL_ASSOC)){
 // fin de boucle while
?>
<tbody>
<tr>
<th style="text-align: center; width: 176px;" rowspan="2"> <? echo $affichage['Nom'] ," ",$affichage['Prenom']?></th>
<td style="text-align: center; width: 59px;"><? echo $affichage['classe']?></td>
<td style="text-align: center; width: 161px;">&nbsp;<? echo $affichage['matiere1'] ," ",$affichage['matiere2']?></td>
<td style="text-align: center; width: 119px;">&nbsp;
<td style="text-align: center; width: 15px;" rowspan="2">&nbsp;<input type="radio" name="delete[]">
</td>
</tr>
<tr>
<td style="width: 119px;" colspan="3">
<br />
</td>
</tr>
</tbody>
<?//fin de la boucle while
}
?>
 </table>
</div>
<?
 // fermeture de la connection
 mysql_close($connect);
?>		
			<br><center><input type="submit" value="SUPPRIMER"></center>
		</form>
 

le code php du fichier supeleve.php
<?php

foreach ($_POST["delete"] as $delete2)
{
mysql_query("DELETE FROM eleve WHERE Id = $delete2");
}
header("Location:home.php");
?> 


ALors j'ai lu beaucoup de choses concernant des sujets similaires mais n'ai jamais reussit a les appliquer ou plutot a les comprendre reelement.... certains passages restent encore vague.

Merci D'avance
Cordialement
A voir également:

6 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 oct. 2008 à 19:21
Bonsoir,

tes boutons radio ne te renvoient pas un array mais la valeur de celui coché

donc mets:

<td style="text-align: center; width: 15px;" rowspan="2">&nbsp;<input type="radio" name="delete" value="<?php echo $affichage['Id']; ?>">


et

tu delete

<?php

$Id=$_POST['delete'];
mysql_query("DELETE FROM eleve WHERE Id = '".$Id."'");

header("Location:home.php");
?>


mais après la suppression si tu veux revenir sur la même page réactualisée, voici une autre solution:

<?php
 //tout sur la meme page
	// connection a la base en local
	$connect = mysql_connect("localhost","root","Kde13crop");
	// selection de la base
	mysql_select_db("MyBase", $connect);
	
	if(isset($_POST['supprimer'])){
		//si demande de suppression par bouton supprimer attention il faut lui mettre un name=
		$Id=$_POST['delete'];
		$suppr=mysql_query("DELETE FROM eleve WHERE Id = '".$Id."'");
		if($suppr){
			echo "Suppression effectuee";
		}else{
			echo "Pb suppression !";
		 }
	}
 
 // votre requete de selection
 $sql =  mysql_query("SELECT * FROM eleve");
  // on compte le nombre de résultats
 $result = mysql_num_rows($sql);
echo '  <font face="arial" size="2">Il y a ',$result,' eleve(s) dans la base</font>  ';
 // récupération et affichage des données
 // affichage avec un boucle while
?>
<div id="exemple1">
&nbsp;<table summary="liste de quelques articles publics sur OpenWeb regroupes par auteurs et niveaux">
<caption></caption><thead><tr>
<th style="text-align: center; width: 176px;">&nbsp;Nom Prenom</th>
<th style="text-align: center; width: 59px;">Classe</th>
<th style="text-align: center; width: 161px;">Matieres</th>
<th style="text-align: center; width: 119px;">prochain RDV<br />
<th style="text-align: center; width: 15px;"><br />
</th>
</tr>
</thead>
<tfoot><tr>
<th style="width: 176px;">&nbsp;</th>
<th style="width: 59px;"><br /></th>
<th style="width: 161px;"><br /></th>
<th style="width: 119px;"><br /></th>
<th style="width: 15px;"><br /></th>

</tr>
</tfoot>
	<form method="post" action="home.php"> <!-- dans action= tu mets le nom de ce script -->
<?
 while($affichage = mysql_fetch_array($sql, MYSQL_ASSOC)){
 // fin de boucle while
?>
<tbody>
<tr>
<th style="text-align: center; width: 176px;" rowspan="2"> <? echo $affichage['Nom'] ," ",$affichage['Prenom']?></th>
<td style="text-align: center; width: 59px;"><? echo $affichage['classe']?></td>
<td style="text-align: center; width: 161px;">&nbsp;<? echo $affichage['matiere1'] ," ",$affichage['matiere2']?></td>
<td style="text-align: center; width: 119px;">&nbsp;
<td style="text-align: center; width: 15px;" rowspan="2">&nbsp;<input type="radio" name="delete" value="<?php echo $affichage['Id']; ?>">
</td>
</tr>
<tr>
<td style="width: 119px;" colspan="3">
<br />
</td>
</tr>
</tbody>
<?//fin de la boucle while
}
?>
 </table>
</div>
<?
 // fermeture de la connection
 mysql_close($connect);
?>		
			<br><center><input type="submit" name="supprimer" value="SUPPRIMER"></center>
		</form>
1
cmoif Messages postés 19 Date d'inscription mercredi 15 octobre 2008 Statut Membre Dernière intervention 24 octobre 2008
16 oct. 2008 à 19:58
salut, j'ai regardé un peu ton code il est pas très propre ;)

de nombreuse balise reste ouverte sans être fermée, et tu met un tfoot avant un tbody enfin bref j'en passe ;)

j'ai modifié un peu ton code pour qu'il fonctionne :) par contre je code pas tout a fait de la même manière,(sans doute une mauvaise habitude ^^)

donc voilà ce que çà donne j'ai testé çà fonctionne ;)

pour le fichier home.php :

<?php
 // connection a la base en local
 $connect = mysql_connect("localhost","root","Kde13crop");
 // selection de la base
 mysql_select_db("MyBase", $connect);
 // votre requete de selection
 $sql =  mysql_query("SELECT * FROM eleve");
  // on compte le nombre de résultats
 $result = mysql_num_rows($sql);
echo "Il y a ".$result."eleve(s) dans la base <br>

 <form method='post' action='supeleve.php'>
	<div id='exemple1'>&nbsp;
		<table summary='liste de quelques articles publics sur OpenWeb regroupes par auteurs et niveaux'>
			<caption></caption>
				<thead>
					<tr>
						<th style='text-align: center; width: 176px;'>Nom Prenom</th>
						<th style='text-align: center; width: 59px;'>Classe</th>
						<th style='text-align: center; width: 161px;'>Matieres</th>
						<th style='text-align: center; width: 119px;'>prochain RDV</th>
						<th style='text-align: center; width: 15px;'>sup</th>
						
					</tr>
				</thead>

				<tbody>";

			while($affichage = mysql_fetch_array($sql))
			{
			echo"
			<tr align='center'>
				<td>".$affichage['nom']."&nbsp;".$affichage['prenom']."</td>
				<td>".$affichage['classe']."</td>
				<td>".$affichage['matiere']."</td>
				<td>".$affichage['rdv']."</td>
				<td><input type='checkbox' name='sup' value='$affichage[id]'></td> 
			</tr>";


			}

			echo "
				</tbody>
				
	</table>
</div>";

 // fermeture de la connection
 mysql_close($connect);
		
echo "		<br><center><input type='submit' value='SUPPRIMER'></center>
		</form>";
?>


et pour supeleve.php
<?php
 // connection a la base en local
 $connect = mysql_connect("localhost","root","Kde13crop");
 // selection de la base
 mysql_select_db("MyBase", $connect);
$Id=$_POST['sup'];
mysql_query("DELETE FROM eleve WHERE Id = '".$Id."'");
 mysql_close($connect);

header("Location:home.php");
?>



edit : j'avais pas vu qu'on t'avais répondu :) t'a de quoi voir du coup lol
1
un grand merci a vous ! j'ai un code qui fonctionne enfin ! mais mieux je comprend pourquoi :p
merci encore pour la reactivité !

Cordialement.
0
alors je continue de programmer d'autre page , et en ressayant cette page et en essayant de supprimer : impossible ! cela ne marche plus !
pas de probleme a l'affichage, il me charge les pages comme il faut mais pas de supprimer....
je ne comprend vraiment pas, je suis pourtant persuader d'avoir reussit a en supprimer un il y a quelques heures.....
AMicalement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cmoif Messages postés 19 Date d'inscription mercredi 15 octobre 2008 Statut Membre Dernière intervention 24 octobre 2008
16 oct. 2008 à 23:48
t'a changer quelques chose dans le code ?
dans t'a bd ?
0
alors apres de nombreux essai avec des echo partout pour cerner l'endroit du probleme il s'avere que c'etait bien ma BD! tu avait une fois de plus raison;)
: je n'avais pas mis en auto incrementation et il y avait des soucis au niveau de L'ID ! maintenant cela devrait aller !
encore merci pour cette piste ;)


fait plaisir de rencontrer une communauté aussi acitve ! Merci cmoif !
0