-1

你能告诉如何在 php 和 mysql 脚本中将此字符串更改为数字数据吗?

我需要根据用户输入在 car_model_temp 表中插入数据。

这是用户输入

Brand: Honda

carcolor: Black

transmission: Automatic

fuel: Petrol

Audio: Mp3

我的查询将根据用户输入检查 car_model 表中的数据。

car_model 表

Brand  carcolor   transmission   fuel      audio

Honda    Black      Automatic     Petrol    Mp3

Ford      Blue       Manual        Diesel    Dvd

Honda    Green      Automatic     Petrol    Dvd

检查用户输入后,如何将数据插入 car_model_temp。我想显示这样的结果:

car_model_temp

Brand   carcolor   transmission   fuel      audio

1          1             1           1         1

0         0             0           0         0

1         0             1           1         0

谢谢。

4

3 回答 3

1

进行此类转换的一种方法是使用数组。例如:

$color_ary = array("black", "white", "blue", ...);

黑色将是 0 元素,白色将是 1,蓝色 = 2,等等。

因此,您可以查找数组值,然后获取要存储在数据库中的数值的数组键。

$color_val = array_search("Blue", $color_ary);

这将返回数值 2。

于 2013-06-13T05:35:17.187 回答
1

解决方案 1

您可以像这样在 php 中使用 switch case:

function to_number($input)
{
  switch($input)
  {
    case "Honda":
    case "Black":
    case "Automatic":
      return 0;
    case "Ford":
    case "Diesel":
    case "Dvd":
      return 1;
    default:
      return;
  }
}

然后将字符串作为参数传递给该函数。控制结构 - 开关盒

$num = to_number("string");

解决方案 2

您还可以像这样在 php 中使用关联数组:

$to_number = array(
             "Honda" => 0,
             "Black" => 0,
             "Automatic" => 0,
             "Ford" => 1,
             "Diesel" => 1,
             "Dvd" => 1,
);

然后可以像这样访问字符串的相应数字:

$num = $to_number[$string];
于 2013-06-13T05:40:52.110 回答
1

在您的选择查询中使用与此类似的内容

IF(`Brand  `='Honda', 1, 0) AS `Brand  `,
IF(`carcolor`='Black', 1, 0) AS `carcolor`,

请检查此链接以获取更多详细信息 LINK

于 2013-06-13T05:41:55.697 回答