Получение названия и значений сохраненных флажков из базы данных

У меня есть форма с флажками, у каждого есть значение. Когда зарегистрированный пользователь выбирает любой чекбокс значение увеличивается (суммирование), а затем зарегистрированный пользователь сохраняет свои

установка флажка, если его устраивает результат суммирования в базу данных, все это работает нормально ... я хочу, чтобы зарегистрированный пользователь мог просматривать свою историю выбора, извлекая и отображая флажки, которые он выбрал на странице с их значениями ... Как я могу это сделать?

Я просто могу сохранить выбранные флажки как вариант 1, вариант 2, например ..

Я хочу просмотреть выбранные флажки, которые сохранены в базе данных, как они отображаются на странице, когда пользователь впервые их выбирает: например, если зарегистрированный пользователь выбирает эти 3 параметра

  • Свинец ГЛУБОКИЙ КИЛЬ (1825)
  • ПОЛНОСТЬЮ ЗАБИТЫЙ ГЛАВНЫЙ МАРК (558)
  • ТАЙКОВЫЕ БОКОВЫЕ ПАЛУБЫ (2889)

Они будут сохранены, например, как (выбор1, выбор2, выбор3).

Но если он хочет просмотреть выбранные флажки, они появятся в точности так, как он их выбрал первым:

  • Свинец ГЛУБОКИЙ КИЛЬ (1825)
  • ПОЛНОСТЬЮ ЗАБИТЫЙ ГЛАВНЫЙ МАРК (558)
  • ТАЙКОВЫЕ БОКОВЫЕ ПАЛУБЫ (2889)

Это моя таблица пользователей:

$query = "CREATE TABLE User( 
user_id      varchar(20), 
password     varchar(40),
user_type    varchar(20),
firstname    varchar(30),
lastname     varchar(30),
street   varchar(50),
city         varchar(50),
county   varchar(50),
post_code    varchar(10),
country      varchar(50),
gender   varchar(6),
dob      varchar(15),
tel_no   varchar(50),
vals         varchar(50),
email        varchar(50))"; 

и код для вставки выбранных опций в базу данных

<?php

include("databaseconnection.php");

$str = '';

foreach($_POST as $key => $val)

if (strpos($key,'choice') !== false)
 $str .= $key.',';


$query = "INSERT INTO User (vals) VALUES('$str')";
$result=mysql_query($query,$conn);
if ($result)
{
     (mysql_error();
}
else
{  
echo " done";      
}

?>

А это моя форма:

function checkTotal () { document.listForm.total.value = ''; var sum = 0; для (i = 0; i

<form name = "listForm" method = "post" action = "insert_options.php" >
<TABLE cellPadding=3 width=600 border=0>
        <TBODY>

        <TR>
          <TH align=left width = "87%" bgColor=#b0b3b4><SPAN 
            class=whiteText>Item</SPAN></TH>
          <TH align=right width = "13%" bgColor=#b0b3b4><SPAN 
            class=whiteText>Select</SPAN></TH></TR>
        <TR>
          <TD  bgcolor = "#9da8af"colSpan=2><SPAN class=normalText><B>General</B></SPAN></TD></TR>
        <TR>
          <TD  bgcolor = "#c4c8ca"><SPAN class=normalText >TEAK SIDE DECKS (2889)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "2889" type = "checkbox" onchange = "checkTotal()" /></TD></TR>
        <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>LEAD DEEP KEEL (1825)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "1825" type = "checkbox" onchange = "checkTotal()"></TD></TR>

        <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>FULLY BATTENED MAINSAIL (558)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "558"  type = "checkbox"  onchange = "checkTotal()"></TD></TR>

        <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>HIGH TECH SAILS FOR CONVENTIONAL RIG (1979)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "1979" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>IN MAST REEFING WITH HIGH TECH SAILS (2539)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "2539" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>SPlNNAKER GEAR (POLE LINES DECK FITTINGS) (820)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "820" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>SPINNAKER POLE VERTICAL STOWAGE SYSTEM (214)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "214" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>GAS ROD KICKER (208)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "208" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>SIDE RAIL OPENINGS (BOTH SIDES) (392)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "392" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>SPRING CLEATS MIDSHIPS -ALUMIMIUM (148)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "148" type = "checkbox" onchange = "checkTotal()"></TD></TR>


          <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>ELECTRIC ANCHOR WINDLASS (1189)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "1189" type = "checkbox" onchange = "checkTotal()"> </TD></TR>




          <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>ANCHOR CHAIN GALVANISED (50m) (202)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "202" type = "checkbox" onchange = "checkTotal()"> </TD></TR>



          <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>ANCHOR CHAIN GALVANISED (50m) (1141)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "1141" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TR>
          <TD  bgcolor = "#9da8af"colSpan=2><SPAN class=normalText><B>NAVIGATION & ELECTRONICS</B></SPAN></TD></TR>
        <TR>
          <TD  bgcolor = "#c4c8ca"><SPAN class=normalText >WIND VANE (STAINLESS STEEL)(41)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "41" type = "checkbox" onchange = "checkTotal()" /></TD></TR>
        <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>RAYMARINE ST6O LOG & DEPTH (SEPARATE UNITS)(226)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "226" type = "checkbox" onchange = "checkTotal()"></TD></TR>

      <TR>
          <TD  bgcolor = "#9da8af"colSpan=2><SPAN class=normalText><B>ENGINES & ELECTRICS</B></SPAN></TD></TR>
        <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>SHORE SUPPLY (220V) WITH 3 OUTLETS (EXCLUDJNG SHORE CABLE) (327)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "327"  type = "checkbox"  onchange = "checkTotal()"></TD></TR>

        <TR>
          <TD bgColor=#c4c8ca><SPAN class=normalText>3rd BATTERY(14OA/H)(196)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "196" type = "checkbox" onchange = "checkTotal()"></TD></TR>

         <TD bgColor=#c4c8ca><SPAN class=normalText>24 AMP BATTERY CHARGER (475)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "475" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TD bgColor=#c4c8ca><SPAN class=normalText>2 BLADED FOLDING PROPELLER (UPGRADE)(299)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "299" type = "checkbox" onchange = "checkTotal()"></TD></TR>


         <TR>
          <TD  bgcolor = "#9da8af"colSpan=2><SPAN class=normalText><B>BELOW DECKS/DOMESTIC</B></SPAN></TD></TR>

          <TD bgColor=#c4c8ca><SPAN class=normalText>WARM WATER (FROM ENGINE & 220V)(749)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "749" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TD bgColor=#c4c8ca><SPAN class=normalText>SHOWER IN AFT HEADS WITH PUMPOUT(446)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "446" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TD bgColor=#c4c8ca><SPAN class=normalText>DECK SUCTION DISPOSAL FOR HOLDINGTANK(166)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "166" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TD bgColor=#c4c8ca><SPAN class=normalText>REFRIGERATED COOLBOX (12V)(666)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "666" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TD bgColor=#c4c8ca><SPAN class=normalText>LFS SAFETY PACKAGE (COCKPIT HARNESS POINTS STAINLESS STEEL JACKSTAYS)(208)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "208" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TD bgColor=#c4c8ca><SPAN class=normalText>UPHOLSTERY UPGRADE IN SALOON (SUEDETYPE)(701)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "701" type = "checkbox" onchange = "checkTotal()"></TD></TR>

          <TR>
          <TD  bgcolor = "#9da8af"colSpan=2><SPAN class=normalText><B>NAVIGATION ELECTRONICS & ELECTRICS</B></SPAN></TD></TR>

          <TD bgColor=#c4c8ca><SPAN class=normalText>VHF RADIO AERIAL CABLED TO NAVIGATION AREA(178)</SPAN></TD>
          <TD align=right bgColor=#c4c8ca><input  name = "choice" value = "178" type = "checkbox" onchange = "checkTotal()"></TD></TR>
</table>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
3 293
2

Ответы 2

Для сохранения настроек в базе данных необходимо использовать UPDATE, а не INSERT. Сначала вы должны знать user_id. Затем вам нужно будет ввести такой запрос:

$query = "update User set val = '" . mysql_real_escape_string($str)
       . "' where user_id = $user_id";

Вы можете использовать функцию PHP взорваться, чтобы получить массив значений из вашей строки.

$values = explode(',', $val);

В html-форме вместо

<input type = "checkbox" name = "choice" value = "123">

Делать:

<input type = "checkbox" name = "choice[]" value = "123">

Это сделает выбор доступным для вас в виде массива.

Затем измените свой php-код для вставки вариантов в базу данных на это:

<?php

$str='';
foreach ($_POST['checked'] as $val)
{
    $str.=$val.',';
}

$str=substr($str,0,-1);//Remove the final comma from the end

$sql = "UPDATE users SET vals='$str' WHERE user_id='$user_id'";
mysql_query($sql) or die(mysql_error());

?>

Затем, отображая варианты выбора обратно пользователю, сделайте что-то вроде этого:

Php:

<?php

$checked=array();
$sql = "SELECT vals FROM users WHERE user_id='$user_id'";
$result=mysql_query($sql) or die(mysql_error());

$row=mysql_fetch_assoc($row);
$vals=explode(',',$row['vals']);


foreach ($vals as $val)
{
    if ($val !='' && is_numeric($val))
        $checked[$val]='checked';
}

function set_checked($value)
{
    global $checked;
    if (isset($checked[$value]))
        return 'checked';
    else
        return '';
}

?>

В HTML:

<input type = "checkbox" name = "choice[]" value = "123" <? echo set_checked('123');?>>

PS. убедитесь, что вы заменили $ user_id на идентификатор пользователя или другой способ идентифицировать его в запросах.

Другие вопросы по теме