PHP MySQLi准备语句获取行,但不显示数据
我正在尝试使用另一个数据库值的ID获取一些数据。这是我的密码:PHP MySQLi准备语句获取行,但不显示数据,php,mysql,mysqli,Php,Mysql,Mysqli,我正在尝试使用另一个数据库值的ID获取一些数据。这是我的密码: $query = "SELECT id,uid,product,jpgID,saledatetime,quantity FROM sales WHERE printed = ? AND DATE_FORMAT(saledatetime, '%Y/%m/%d') = ?"; if ($stmt = $mysqli->prepare($
$query = "SELECT id,uid,product,jpgID,saledatetime,quantity
FROM sales
WHERE printed = ?
AND DATE_FORMAT(saledatetime, '%Y/%m/%d') = ?";
if ($stmt = $mysqli->prepare($query)) {
$printed = 0;
$stmt->bind_param("is",$printed,$session_date);
$stmt->execute();
$stmt->store_result();
//Get result
$stmt->bind_result($result_id,$result_uid,$result_product,$result_jpgID,$result_saledatetime,$result_quantity);
//Number of rows returned
$count_rows = $stmt->num_rows;
if ($stmt_fetch = $mysqli->prepare("SELECT jpg,udate,imageset FROM images WHERE id = ?")) {
//Fetch image information
while ($stmt->fetch()) {
$stmt_fetch->bind_param('i',$result_jpgID);
$stmt_fetch->execute();
$stmt_fetch->store_result();
$stmt_fetch->bind_result($jpg,$udate,$imageset);
echo $stmt_fetch->num_rows."<br />";
//Create array's with information
$print[$result_product][$result_jpgID]["quantity"] = $result_quantity;
$print[$result_product][$result_jpgID]["location"] = $jpg;
}
}
$stmt->close();
print_r($print);
}
设法修复它,这是我的修复代码
if(login_check($mysqli) == true) {
//logged in
$session_date = $_SESSION['session_date'];
$query = "SELECT id,uid,product,jpgID,saledatetime,quantity
FROM sales
WHERE printed = ?
AND DATE_FORMAT(saledatetime, '%Y/%m/%d') = ?";
if ($stmt = $mysqli->prepare($query)) {
$printed = 0;
$stmt->bind_param("is",$printed,$session_date);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($result_id,$result_uid,$result_product,$result_jpgID,$result_saledatetime,$result_quantity);
$count_rows = $stmt->num_rows;
while ($stmt->fetch()) {
//Create array's with information
$print[$result_product][$result_jpgID]["quantity"] = $result_quantity;
}
$stmt->close();
foreach ($print as $key1 => $value1) {
foreach ($print[$key1] as $key => $value) {
if ($stmt = $mysqli->prepare("SELECT jpg,udate,imageset FROM images WHERE id = ?")) {
$stmt->bind_param('i',$key);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($jpg,$udate,$imageset);
}
while ($stmt->fetch()) {
$print[$key1][$key]['location'] = $jpg;
}
}
}
print_r($print);
}
} else {
header("Location: index.php");
}
您完全确定您的第二个查询,即查找jpg、udate、imageset的查询,在手动运行时是否与提供的ID一起工作?例如,在phpmyadmin或控制台中?另外,对我甚至不知道的原始查询进行连接,然后在单个结果集上循环,而不是组合两个结果集,不是更容易吗way@Tularis,嗯,如果我手动定义ID,它不会运行这是我知道的唯一一种方法,我将如何组合这些查询?还添加了第一个查询。
if(login_check($mysqli) == true) {
//logged in
$session_date = $_SESSION['session_date'];
$query = "SELECT id,uid,product,jpgID,saledatetime,quantity
FROM sales
WHERE printed = ?
AND DATE_FORMAT(saledatetime, '%Y/%m/%d') = ?";
if ($stmt = $mysqli->prepare($query)) {
$printed = 0;
$stmt->bind_param("is",$printed,$session_date);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($result_id,$result_uid,$result_product,$result_jpgID,$result_saledatetime,$result_quantity);
$count_rows = $stmt->num_rows;
while ($stmt->fetch()) {
//Create array's with information
$print[$result_product][$result_jpgID]["quantity"] = $result_quantity;
}
$stmt->close();
foreach ($print as $key1 => $value1) {
foreach ($print[$key1] as $key => $value) {
if ($stmt = $mysqli->prepare("SELECT jpg,udate,imageset FROM images WHERE id = ?")) {
$stmt->bind_param('i',$key);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($jpg,$udate,$imageset);
}
while ($stmt->fetch()) {
$print[$key1][$key]['location'] = $jpg;
}
}
}
print_r($print);
}
} else {
header("Location: index.php");
}