wake-up-neo.com

PHP : Fügen Sie mehrere Kontrollkästchen in eine MySQL-Spalte ein

Ich möchte eine einfache PHP -Funktion schreiben, um Werte von 10 und 20 Kontrollkästchen einzufügen. Nun ist das Problem: Sollte ich alle Werte in eine einzelne Spalte der MySQL-Tabelle einfügen oder sollte ich mit der separaten Tabelle gehen?

Mein Hauptziel ist es, die Werte mehrerer Ankreuzfelder in MySQL einzufügen und sie dann zu aktualisieren. Wenn ich 7 Kontrollkästchen aktiviert habe und nach einiger Zeit von 7 auf 5 aktualisieren möchte, wie werden dann Werte aus der Tabellenspalte entfernt?

Bitte helfen Sie mir mit einem einfachen einfachen PHP Beispiel und welche Art von MySQL-Feldern ich hinzufügen sollte, da ich einen Checkbox-Wert einfügen möchte, der in digital und das Label von Checkboxen in ein anderes Feld eingefügt werden soll.

Hier ist der HTML-Code, den ich habe 

<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>
5
Sohail Sardar

Versuchen Sie es mit diesem ganzen Beispiel.

Tabellenstruktur

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>

dies ist nur ein einfaches Beispiel und eine Abfrage, die ich in diesem Beispiel hinzugefügt habe. Sie können aus diesem grundlegenden Beispiel lernen und ich denke, dass dies für Sie sehr nützlich ist ... wenn es sinnvoll ist, die richtige Antwort für diese Lösung zu geben

Db Table Stored Output

Form Output

12

verwenden Sie die Implode-Funktion, um das zurückgegebene Array in einen String zu konvertieren und es dann wie üblich in die Datenbank einzufügen

if(isset($_POST['submit'])){
   $result = implode(",",$_POST['games']);

}

hoffentlich hilft dir das . Grüße Imran Qasim

1
imran qasim

Zunächst einmal ganz klar, ich bevorzuge es, Namen aus verschiedenen Kontrollkästchen zu verwenden 

BasketBall;Cricket;Tennis

Sie können das durch 

implode(";",$array);

und dann schreiben Sie das in mySQL-Tabelle ...

Um diese Werte zu erhalten, verwenden Sie einfach

$array = explode(";",$urVariable);

Für andere Werte verwenden

numberOne = $array[1]; // returns Cricket

werte ändern Verwenden Sie einfach die Werte und schreiben Sie sie in ";" bilden..

Ich mag das, weil es einfach zu implementieren ist und perfekt funktioniert!

0
Gavin

Bitte probieren Sie das aus

<?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>
0
sujeet gupta

Ich habe den Spielnamen in die Klammern gesetzt und ihre Werte in true geändert:

<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>

Nach der Übergabe führt dies zu einem Array wie folgt:

$_POST["games"] = Array ( [Tennis] => true [Cricket] => true [Table] => true ) 
// all other values false

Sie können dieses Array problemlos speichern und später bearbeiten, wenn Sie es als JSON-String in Ihrer Datenbank speichern. Dafür benötigen Sie eine einzelne Varchar- oder Textspalte.

json_encode($_POST["games"])
// {"Tennis":"true","Cricket":"true","Table":"true"}
0
chrki