gpt4 book ai didi

php - 如何创建从 mysql 数据库中选择的新数组

转载 作者:行者123 更新时间:2023-11-30 00:48:47 26 4
gpt4 key购买 nike

我正在尝试使用 PHP 将数据从一个表移动到 mysql 数据库中的另一个表。原始表具有一对多关系的数据。其中有一列包含project_id(value_object_id - 这是多列),另一列(value_field_id)包含一个键,用于定义最后一列(value_charvalue)中存储的数据类型。我已经成功地能够使用以下代码提取所有数据,但无法弄清楚如何循环遍历每条记录以确定它是否是新的project_id,是否在value_field_id列中包含14,19或20,以及如何将新记录的数据放入数组中。每条新记录都需要包含原始表中 3 条记录的信息。感谢您提供的任何帮助或指导。

<?php
$link = mysqli_connect("localhost", "username", "password", "test");

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT value_object_id, value_field_id, value_charvalue FROM custom_fields_values ORDER BY value_object_id";

$result = mysqli_query($link, $query);

// Add array for newly selected data????
// $new_array = array();

/* numeric array */
while($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
// Add test to determine if value_field_id is = 14, 19 or 20
// $new_array[project_id] = value_object_id
// If value_field_id = 19, $new_array[name] = value_charvalue
// If value_field_id = 14, $new_array[email] = value_charvalue
// If value_field_id = 20, $new_array[phone] = value_charvalue

$project_id = $row[0];
$next_row = $row[1];
$third_row = $row[2];
printf('%s, %s, %s \n', $project_id, $next_row, $third_row);
}

/* free result set */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);

?>

最佳答案

<?php

$projects = [];

while(...) {
...

$fieldname = ...;
$fieldvalue = ...;

if (!isset($projects[$project_id]))
$projects[$project_id] = [];
$projects[$project_id][$fieldname] = $fieldvalue;
}

print_r($projects);

如果您使用的是旧版本的 PHP,请将 [] 替换为 array()

关于php - 如何创建从 mysql 数据库中选择的新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21150899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com