【发布时间】:2016-07-25 10:25:17
【问题描述】:
要从 1 个表中选择数据,我使用以下代码:
if(isset($UserID)) {
$users = $con->prepare("
SELECT DISTINCT
d.FirstName
,d.LastName
,d.Picture
FROM Details d
WHERE d.UserId = ?
");
$users->bind_param('i', $GetUserId);
$users->execute();
$users->bind_result(
$FirstName,
$LastName,
$Picture
);
} else {
echo "There is no User ID detected, try to refresh browser.";
}
while ($users->fetch()) { ?>
<div class="grid-group">
<span>Personal Details</span>
<div class="grid-column">
<div class="grid-item header">First Name </div>
<div class="grid-item header">Last Name </div>
<div class="grid-item header">Picture </div>
</div>
<div class="grid-column">
<div class="grid-item"><?php echo $FirstName; ?></div>
<div class="grid-item"><?php echo $LastName; ?></div>
<div class="grid-item"><?php echo $Picture; ?></div>
</div>
</div>
<?php } ?>
如何再添加 1 个查询以从另一个表中选择一些数据?比如:
SELECT Foo, Bar, FooBar
FROM Bizz
WHERE UserId = ?
我应该使用mysqli_multi_query吗?但是我如何在它之后使用它和bind_result?我无法实现正确的语法。还是有其他办法?
我需要从 2 个这样的表中打印数据:
while ($users->fetch()) { ?>
<div class="grid-group">
<span>Personal Details</span>
<div class="grid-column">
<div class="grid-item header">First Name </div>
<div class="grid-item header">Last Name </div>
<div class="grid-item header">Picture </div>
</div>
<div class="grid-column">
<div class="grid-item"><?php echo $FirstName; ?></div>
<div class="grid-item"><?php echo $LastName; ?></div>
<div class="grid-item"><?php echo $Picture; ?></div>
</div>
</div>
<div class="grid-group">
<span>Foo Bar</span>
<div class="grid-column">
<div class="grid-item header">Foo </div>
<div class="grid-item header">Bar </div>
<div class="grid-item header">FooBar </div>
</div>
<div class="grid-column">
<div class="grid-item"><?php echo $Foo; ?></div>
<div class="grid-item"><?php echo $Bar; ?></div>
<div class="grid-item"><?php echo $FooBar; ?></div>
</div>
</div>
<?php } ?>
由于某些原因,我不能使用JOINS。你有什么想法吗?
更新
如果我在下面准备 2 个查询,我会得到空白屏幕:
if(isset($UserID)) {
$users = $con->prepare("
SELECT DISTINCT
d.FirstName
,d.LastName
,d.Picture
FROM Details
WHERE d.UserId = ?
");
$users->bind_param('i', $GetUserId);
$users->execute();
$users->bind_result(
$FirstName,
$LastName,
$Picture
);
$users2 = $con->prepare("
SELECT DISTINCT
Foo
, Bar
, FooBar
FROM Bizz
WHERE UserId = ?
");
$users2->bind_param('i', $GetUserId);
$users2->execute();
$users2->bind_result(
$Foo,
$Bar,
$FooBar
);
} else {
echo "There is no User ID detected, try to refresh browser.";
}
while ($users->fetch()) { ?>
...
你有什么想法吗?
【问题讨论】:
-
这两个表之间有链接吗?或者你可以简单地做 2 个单独的查询...?
-
您可以简单地准备并执行一个新查询吗?我不明白你为什么不能?
-
@Random 我想简单地使用单独的查询。
-
然后这样做?是什么阻止了你?只需简单地从您的准备复制并粘贴到绑定结果并更改查询?
-
那么你为什么不简单地进行 2 个单独的查询,将结果存储在 2 个单独的数组中呢?
标签: php mysql sql mysqli multi-query