- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了使我的 PHP 自动生成 JSON,我将变量名保存在数据库中(例如 > $test_value_1
)。
在我的 php 文件中我有这个变量的值(例如 > $test_value_1 = "TEST VALUE 1"
)
在此之后我做了一个查询来回应这个变量,但是,而不是返回变量的值(TEST VALUE 1),总是只返回数据库中保存的文本(“$teste_value_1”)
为了更好地理解,请查看我的数据库、变量、查询、响应以及我需要的内容:
表:属性
id_attribute | attribue_string | attribute_value
1 | test_string_1 | $test_value_1
2 | test_string_2 | $test_value_2
变量:
$test_value_1 = "Test Value 1";
$test_value_2 = "Teste Value 2";
查询:
$query_array = mysqli_query($connect,"
SELECT GROUP_CONCAT(CONCAT('{id:', a.attribute_string, ',value_name:', a.attribute_value, '}') SEPARATOR ', ') AS concat
FROM rel_categories_attributes AS rca
INNER JOIN categories AS c ON c.id_category = rca.categories_id_category
INNER JOIN attributes AS a ON a.id_attribute = rca.attributes_id_attribute
WHERE id_category = '{$id_category}'
");
WHILE ($reg_cat = mysqli_fetch_array($query_array)){
echo $teste_query = $reg_cat["concat"] . ",";
响应: {id:test_string_1,value_name:$test_value_1}, {id:teste_string_2,value_name:$test_value_2}
,(错误)
我需要什么: {id:test_string_1,value_name:TEST VALUE 1}, {id:teste_string_2,value_name:TESTE VALUE 2}
,
最佳答案
虽然这看起来是一个糟糕的设计,但您可以使用 variable variables 来实现它.但是您需要在 PHP 中而不是在 MySQL 中进行输出格式化。
$query_array = mysqli_query($connect,"
SELECT a.attribute_string, a.attribute_value
FROM rel_categories_attributes AS rca
INNER JOIN categories AS c ON c.id_category = rca.categories_id_category
INNER JOIN attributes AS a ON a.id_attribute = rca.attributes_id_attribute
WHERE id_category = '{$id_category}'
");
$result = array();
while ($row = mysqli_fetch_assoc($query_array) {
$result[] = array('id' => $row['attribute_string'], 'value_name' => ${$row['attribute_value']});
}
echo json_encode($result);
然而,可变变量几乎总是可以通过使用关联数组来改进。不要使用像 $test_value_1
和 $test_value_2
这样的变量,而是创建一个数组,其键是 "test_value_1"
和 "test_value_2"
,然后使用 $array[$row['attribute_value']]
。
但更好的办法是将所有详细信息放在数据库本身中,而不是将它们硬编码在脚本中。然后,您可以加入该表以将属性值转换为适当的字符串。
关于php - 如何从 MySQL 结果中回显 PHP 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49181875/
我是一名优秀的程序员,十分优秀!