Je veux écrire une simple fonction PHP pour insérer des valeurs de 10 et 20 cases à cocher. Le problème est le suivant: dois-je insérer toutes les valeurs dans une seule colonne de la table MySQL ou dois-je utiliser la table séparée?
Mon objectif principal est d'insérer les valeurs de plusieurs cases à cocher dans MySQL, puis de les mettre à jour. Si j'ai coché 7 cases à cocher, et après un certain temps, je souhaite mettre à jour de 7 à 5, comment il va supprimer les valeurs de la colonne de la table?
Aidez-moi avec un exemple simple PHP et le type de champs MySQL que je devrais ajouter, car je veux insérer une valeur de case à cocher qui devrait être en format numérique et l’étiquette des cases à cocher dans un autre champ.
Voici le HTML que j'ai
<form method="post" action="">
Games You Like: <br/>
<input type="checkbox" name="games[]" value="1"><label>Football</label><br>
<input type="checkbox" name="games[]" value="2"><label>Basket Ball</label><br>
<input type="checkbox" name="games[]" value="3"><label>Pool</label><br>
<input type="checkbox" name="games[]" value="4"><label>Rugby</label><br>
<input type="checkbox" name="games[]" value="5"><label>Tennis</label><br>
<input type="checkbox" name="games[]" value="6"><label>Cricket</label><br>
<input type="checkbox" name="games[]" value="7"><label>Table Tennis</label><br>
<input type="checkbox" name="games[]" value="8"><label>Hockey</label><br>
<input type="submit" name="submit" value="submit">
</form>
Essayez tout cet exemple,
Structure de la table
CREATE TABLE IF NOT EXISTS `games` (
`id` int(12) NOT NULL AUTO_INCREMENT,
`game_name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
<?php
include_once("yourconfig.php"); //include your db config file
extract($_POST);
$check_exist_qry="select * from games";
$run_qry=mysql_query($check_exist_qry);
$total_found=mysql_num_rows($run_qry);
if($total_found >0)
{
$my_value=mysql_fetch_assoc($run_qry);
$my_stored_game=explode(',',$my_value['game_name']);
}
if(isset($submit))
{
$all_game_value = implode(",",$_POST['games']);
if($total_found >0)
{
//update
$upd_qry="UPDATE games SET game_name='".$all_game_value."'";
mysql_query($upd_qry);
}
else
{
//insert
$ins_qry="INSERT INTO games(game_name) VALUES('".$all_game_value."')";
mysql_query($ins_qry);
}
}
?>
<form method="post" action="">
Games You Like: <br/>
<input type="checkbox" name="games[]" value="1" <?php if(in_array(1,$my_stored_game)){echo "checked";}?>><label>Football</label><br>
<input type="checkbox" name="games[]" value="2" <?php if(in_array(2,$my_stored_game)){echo "checked";}?>><label>Basket Ball</label><br>
<input type="checkbox" name="games[]" value="3" <?php if(in_array(3,$my_stored_game)){echo "checked";}?>><label>Pool</label><br>
<input type="checkbox" name="games[]" value="4" <?php if(in_array(4,$my_stored_game)){echo "checked";}?>><label>Rugby</label><br>
<input type="checkbox" name="games[]" value="5" <?php if(in_array(5,$my_stored_game)){echo "checked";}?>><label>Tennis</label><br>
<input type="checkbox" name="games[]" value="6" <?php if(in_array(6,$my_stored_game)){echo "checked";}?>><label>Cricket</label><br>
<input type="checkbox" name="games[]" value="7" <?php if(in_array(7,$my_stored_game)){echo "checked";}?>><label>Table Tennis</label><br>
<input type="checkbox" name="games[]" value="8" <?php if(in_array(8,$my_stored_game)){echo "checked";}?>><label>Hockey</label><br>
<input type="submit" name="submit" value="submit">
</form>
ceci est juste un exemple de base et une requête que j'ai ajoutée dans cet exemple, vous pouvez apprendre de cet exemple de base et je pense que cela est très utile pour vous ... si utile que de donner une réponse correcte pour cette solution
utilise la fonction implode pour convertir le tableau retourné en chaîne puis l'insérer dans la base de données comme d'habitude
if(isset($_POST['submit'])){
$result = implode(",",$_POST['games']);
}
j'espère que cela vous aidera ... Amitiés, Imran Qasim
Tout d'abord très directement au point, je préfère faire des noms comme celui-ci à partir de différentes cases à cocher
BasketBall;Cricket;Tennis
Vous pouvez le faire en
implode(";",$array);
et ensuite écrire cela dans la table MySQL ...
Pour obtenir ces valeurs, utilisez simplement
$array = explode(";",$urVariable);
Pour différentes valeurs, utilisez
numberOne = $array[1]; // returns Cricket
pour changer n'importe quelle valeur, utilisez simplement les valeurs et réécrivez ";" forme..
J'aime cela car il est simple à mettre en œuvre et à faire le travail parfaitement!
S'il vous plaît essayez ceci
<?php
if(isset($_POST['submit']))
{
//in here you get games array
$mygames = $_POST['games'];
}
?>
<form method="post" action="">
Games You Like: <br/>
<input type="checkbox" name="games[]" value="1"><label>Football</label><br>
<input type="checkbox" name="games[]" value="2"><label>Basket Ball</label><br>
<input type="checkbox" name="games[]" value="3"><label>Pool</label><br>
<input type="checkbox" name="games[]" value="4"><label>Rugby</label><br>
<input type="checkbox" name="games[]" value="5"><label>Tennis</label><br>
<input type="checkbox" name="games[]" value="6"><label>Cricket</label><br>
<input type="checkbox" name="games[]" value="7"><label>Table Tennis</label><br>
<input type="checkbox" name="games[]" value="8"><label>Hockey</label><br>
<input type="submit" name="submit" value="submit">
</form>
J'ai mis le nom du jeu entre parenthèses et modifié leurs valeurs en true:
<form method="post" action="">
Games You Like: <br/>
<input type="checkbox" name="games[Football]" value="true"><label>Football</label><br>
<input type="checkbox" name="games[Basket]" value="true"><label>Basket Ball</label><br>
<input type="checkbox" name="games[Pool]" value="true"><label>Pool</label><br>
<input type="checkbox" name="games[Rugby]" value="true"><label>Rugby</label><br>
<input type="checkbox" name="games[Tennis]" value="true"><label>Tennis</label><br>
<input type="checkbox" name="games[Cricket]" value="true"><label>Cricket</label><br>
<input type="checkbox" name="games[Table]" value="true"><label>Table Tennis</label><br>
<input type="checkbox" name="games[Hockey]" value="true"><label>Hockey</label><br>
<input type="submit" name="submit" value="submit">
</form>
Après soumission, cela donnera un tableau comme celui-ci:
$_POST["games"] = Array ( [Tennis] => true [Cricket] => true [Table] => true )
// all other values false
Vous pouvez facilement stocker et manipuler ultérieurement ce tableau si vous le stockez sous forme de chaîne JSON dans votre base de données. Pour cela, vous avez besoin d'une seule colonne varchar ou text.
json_encode($_POST["games"])
// {"Tennis":"true","Cricket":"true","Table":"true"}