【发布时间】:2015-11-22 19:26:40
【问题描述】:
我正在尝试从 MySQL 查询构建一个句子。我相信我的连接部分正在工作,因为我已经替换了一个静态数组。可能有人会引导我朝着正确的方向了解我的 while 循环会生成所需的数组吗?如何从我的 mysql 语句创建关联数组?
$query = "SELECT name, dob FROM children WHERE personal_id = ?";
$statement = $db->prepare($query);
$statement->bind_param('i', $_SESSION['mysqlID']);
$statement->bind_result($name, $dob);
$statement->execute();
// Store the results
$statement->store_result();
// Get the number of rows
$num_of_rows = $statement->num_rows;
**//I believe my problem lies in this array ?**
$m_children = [];
while ($statement->fetch()) {
$m_children[] = $name;
$m_children[] .= $dob;
}
$num_children = intval($num_of_rows);
$children = [];
foreach ($m_children as $k => $v) {
$dob = strtotime($dob[$k]);
$children[] = "$v, born on {$dob}";
}
$tmp = array_pop($children);
if ($num_children > 1) {
$children_type = 'children';
$children = join(', ', $children) . ' and ' . $tmp;
} else {
$children_type = 'child';
$children = $tmp;
}
$children = "<p>I have the following ". $children_type .": ". $children .".</p>";
【问题讨论】:
-
如何从我的 mysql 语句创建关联数组?
-
所需输出的示例?
-
谢谢。数据库正在返回姓名和出生日期。我需要阅读这个句子。 “名”生于“日”,“名”生于“日”,“名”生于“日”。如果一个结果只是以句号结尾。
-
这段代码到处都是。。
$statement2和 foreach 中的$dob数组甚至来自哪里?
标签: php arrays prepared-statement concatenation