php - 在第 2 行中查找特定值并显示第 3 行中的值

标签 php mysql mysqli

我刚刚开始学习 mysql,所以这可能非常简单。

我有一个包含以下示例数据的 3 行表

user_id    metakey       meta_value
  1        image_type    avatar
  1        location      london
  1        image_url     1.jpg
  2        image_type    facebook
  2        location      somewhere
  2        image_url      

如果我想要来自另一个 metakeymeta_value 数据,如何获取 meta_value 的值而无需每次都重新查询表?

所以 1->location 会显示 london 2->image_type 会显示 facebook 等等。

经过一些摆弄,我最终来到了这里:

$query_usermeta = "SELECT * FROM usermeta WHERE user_id = '$user_id'" or die("Error in the consult.." . mysqli_error($link));
//execute the query.
$result_usermeta = mysqli_query($link, $query_usermeta);
/* associative array */
$userdatameta = $result_usermeta->fetch_array(MYSQLI_ASSOC);

然后使用 echo $userdatameta['meta_value'] 但我如何指定要显示的 meta_value?

我知道我可以在 mysql 查询中执行此操作,例如 WHERE metakey = 'location' 但是我必须多次查询才能获取所有值,不是吗?

最佳答案

与其对每一行运行查询,不如将数组构建为键值对,仅通过用户 ID 进行查询

SELECT * FROM usermeta WHERE user_id = '$user_id'

循环你的结果

$metaData=array();

while($row = $result_usermeta->fetch_array())
{
$metaData[$row['metakey']] = $row['meta_value'];
}

现在在 $metaData 中,您将值作为键值对作为

array(
    'image_type'=>'avatar',
    'location' =>'london',
    'image_url'=>'1.jpg'
)

现在使用您的值作为位置 echo $metaData['location'] 用于图像 url echo $metaData['image_url']

关于php - 在第 2 行中查找特定值并显示第 3 行中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25841352/

相关文章:

php - iOS 推送通知 PHP 中的换行符

php - 获取每个记录组的最后一条记录

MYSQL 语法错误,意外的 IDENT_QUOTED,期望 $end

mysql - mysql中的案例根据条件执行另一个查询

php - 如何在 PHP 中显示取决于用户输入的长查询的 MySQL 错误?

php - 无法计算 MySQL/PHP 列中的值

php - 使用 postgres 约束进行表单验证

android - 在android中创建一个具有外键作为表列的sqlite数据库表。我面临以下错误。我该如何解决这个问题

php - mysql 数据到 javascript 对象

php - 从 MySQL 数据库中提取哈希用户名