将数据从 int 传输到 string
Transferring data from int to string
用户通过向下滚动菜单输入他们的信息并选择一个选项几次。当他们这样做时,它被保存为 INT 而不是 STRING。这是因为有些计算需要对信息进行运行。所以基本上它看起来像这样:
<select name="option1">
<option value="0">Chair</option>
<option value="10">Table</option>
<option value="20">Counter</option>
<option value="30">Toaster</option>
<option value="40">Oven</option>
<option value="50">Microwave</option>
</select>
<select name="option2">
<option value="0">Red</option>
<option value="2">Blue</option>
<option value="4">Green</option>
<option value="6">Yellow</option>
<option value="8">Orange</option>
将这些值相加得出总和。所以 blue(2) table(10) 的值为 12.
当我希望用户能够编辑这些数据时,我的问题就出现了。我想显示他们当前拥有的数据,但它现在保存为 INT。我将如何做到这一点,以便根据数据库中的值以文本格式显示信息。 (即值 38 会输出“Orange Toaster”)?
*我在 PHP 中执行此操作,但我不一定要查找代码,只是寻找有关如何执行此操作的想法。
您可以使用数学函数。
使用可以找到余数的除法,这将是您的选项2并使用减法(整数-余数)=您的选项1
首先,您需要求除以 10 的余数。
if($numberX%10 == 4) { echo "Green"; }
您需要 table 来保存所有选项,例如:
id info
-- ----
0 Red Chair
2 Blue Chair
...
但是我可能在2table秒内保存得更好,为什么你把它们加起来是一个整数?
好的,既然你说不需要加起来,试试两个 tables:
id furniture
-- -------
10 ...
id color
-- -----
2 Blue
对于non-table解决方案,将以上值保存到数组中,例如
$furniture = array(
10 => '...',
...
);
$colors = array(
2 => 'Blue',
...
);
将某些 ID 值设置为 0 不是一个好主意
您可以使用以下 table 结构将选项保存在数据库中。
Table Name: selection_options
id(pk) option_name option_value category
1 chair 0 option1
2 Table 10 option1
3 Toaster 30 option1
.
.
6 red 0 option2
7 Orange 8 option2
.
.
so on
要创建选择框 option1,请执行以下查询:
$option1Array = "SELECT * FROM selection_options WHERE category = 'option1'" ;
这将为您提供类别 option1 中的所有可用选项
对选项 2 执行相同操作,现在您的选择框将更改如下:
<select name="option1">
<?php foreach($option1Array as $option1) {?>
<option value="<?php echo $option1['id']; ?>"><?php echo $option1['option_name']; ?></option>
<?php }?>
</select>
<select name="option2">
<?php foreach($option2Array as $option2) { ?>
<option value="<?php echo $option2['id']; ?>"><?php echo $option2['option_name']; ?></option>
<?php } ?>
</select>
现在您必须将此数据保存在数据库中,如下所示:
Table 姓名:users_selected_options
id user_id option1 option2
1 1 3 7
.
.
id: Primary key of the table
user_id: Foreign key of the user table
option1: Foreign key of the selection_options
option2: Foreign key of the selection_options
不,您想显示用户选择了哪些选项触发执行连接查询,您将获得结果。
SELECT uso . * , so.option_name, so1.option_name, (so.option_value + so1.option_value) AS total
FROM users_selected_options AS uso
JOIN selection_options AS so ON uso.option1 = so.id
JOIN selection_options AS so1 ON uso.option2 = so1.id
WHERE user_id =1
LIMIT 0 , 30
以上查询将为您提供如下记录:
id user_id option1 option2 option_name option_name total
1 1 3 4 Toaster Orange 38
现在您可以轻松地迭代结果并向用户显示适当的输出。
这个解决方案对您来说可能很冗长,但它会在您将来制作
申请动态为.
现在您可以轻松提供接口来添加/编辑值
和选项名称。
2.If 正在更改选项名称和值
您不必担心,因为我们直接通过
查询。
3.Now 你可以保存多个数据
同一个用户。
4.In未来如果你想为
选择然后你可以很容易地做这个改变,你只需要
更新不在整个代码中的查询。
用户通过向下滚动菜单输入他们的信息并选择一个选项几次。当他们这样做时,它被保存为 INT 而不是 STRING。这是因为有些计算需要对信息进行运行。所以基本上它看起来像这样:
<select name="option1">
<option value="0">Chair</option>
<option value="10">Table</option>
<option value="20">Counter</option>
<option value="30">Toaster</option>
<option value="40">Oven</option>
<option value="50">Microwave</option>
</select>
<select name="option2">
<option value="0">Red</option>
<option value="2">Blue</option>
<option value="4">Green</option>
<option value="6">Yellow</option>
<option value="8">Orange</option>
将这些值相加得出总和。所以 blue(2) table(10) 的值为 12.
当我希望用户能够编辑这些数据时,我的问题就出现了。我想显示他们当前拥有的数据,但它现在保存为 INT。我将如何做到这一点,以便根据数据库中的值以文本格式显示信息。 (即值 38 会输出“Orange Toaster”)?
*我在 PHP 中执行此操作,但我不一定要查找代码,只是寻找有关如何执行此操作的想法。
您可以使用数学函数。 使用可以找到余数的除法,这将是您的选项2并使用减法(整数-余数)=您的选项1
首先,您需要求除以 10 的余数。
if($numberX%10 == 4) { echo "Green"; }
您需要 table 来保存所有选项,例如:
id info
-- ----
0 Red Chair
2 Blue Chair
...
但是我可能在2table秒内保存得更好,为什么你把它们加起来是一个整数?
好的,既然你说不需要加起来,试试两个 tables:
id furniture
-- -------
10 ...
id color
-- -----
2 Blue
对于non-table解决方案,将以上值保存到数组中,例如
$furniture = array(
10 => '...',
...
);
$colors = array(
2 => 'Blue',
...
);
将某些 ID 值设置为 0 不是一个好主意
您可以使用以下 table 结构将选项保存在数据库中。
Table Name: selection_options
id(pk) option_name option_value category
1 chair 0 option1
2 Table 10 option1
3 Toaster 30 option1
.
.
6 red 0 option2
7 Orange 8 option2
.
.
so on
要创建选择框 option1,请执行以下查询:
$option1Array = "SELECT * FROM selection_options WHERE category = 'option1'" ;
这将为您提供类别 option1 中的所有可用选项 对选项 2 执行相同操作,现在您的选择框将更改如下:
<select name="option1">
<?php foreach($option1Array as $option1) {?>
<option value="<?php echo $option1['id']; ?>"><?php echo $option1['option_name']; ?></option>
<?php }?>
</select>
<select name="option2">
<?php foreach($option2Array as $option2) { ?>
<option value="<?php echo $option2['id']; ?>"><?php echo $option2['option_name']; ?></option>
<?php } ?>
</select>
现在您必须将此数据保存在数据库中,如下所示: Table 姓名:users_selected_options
id user_id option1 option2
1 1 3 7
.
.
id: Primary key of the table
user_id: Foreign key of the user table
option1: Foreign key of the selection_options
option2: Foreign key of the selection_options
不,您想显示用户选择了哪些选项触发执行连接查询,您将获得结果。
SELECT uso . * , so.option_name, so1.option_name, (so.option_value + so1.option_value) AS total
FROM users_selected_options AS uso
JOIN selection_options AS so ON uso.option1 = so.id
JOIN selection_options AS so1 ON uso.option2 = so1.id
WHERE user_id =1
LIMIT 0 , 30
以上查询将为您提供如下记录:
id user_id option1 option2 option_name option_name total
1 1 3 4 Toaster Orange 38
现在您可以轻松地迭代结果并向用户显示适当的输出。
这个解决方案对您来说可能很冗长,但它会在您将来制作 申请动态为.
现在您可以轻松提供接口来添加/编辑值 和选项名称。
2.If 正在更改选项名称和值 您不必担心,因为我们直接通过 查询。
3.Now 你可以保存多个数据 同一个用户。
4.In未来如果你想为 选择然后你可以很容易地做这个改变,你只需要 更新不在整个代码中的查询。