mysql运行3个查询得到空白页
Posted
技术标签:
【中文标题】mysql运行3个查询得到空白页【英文标题】:mysql running 3 queries gets blank page 【发布时间】:2018-09-30 07:27:40 【问题描述】:我正在使用 php 和 mysql 运行以下查询,但如果我只查询 1 个查询它可以工作,但如果我执行 3 个查询它就不起作用
知道为什么吗?
似乎是 while $ )) 引起了问题,但尝试了很多方法,但它什么也没显示
$boletas = mysqli_query($datacenter, "
SELECT * FROM ventas
WHERE documento = 'boleta'
ORDER BY id DESC LIMIT 1");
$facturas = mysqli_query($datacenter, "
SELECT * FROM ventas WHERE documento = 'factura'
ORDER BY id DESC LIMIT 1");
$notas = mysqli_query($datacenter, "
SELECT * FROM ventas
WHERE documento = 'nota'
ORDER BY id DESC LIMIT 1");
while($mostrar = mysqli_fetch_assoc($revisar))
while($boleta = mysqli_fetch_assoc($boletas))
while($factura = mysqli_fetch_assoc($facturas)) ?>
<select class="selects" >
<option value="3" data-price="
<?php
echo str_pad($boleta['folio'] + 1, 15, "0", STR_PAD_LEFT);
?>">
boleta</option>
<option value="4" data-price="
<?php
echo str_pad($factura['folio'] + 1, 15, "0", STR_PAD_LEFT);
?>">factura</option>
<option value="5" data-price="
<?php
echo str_pad($nota['folio'] + 1, 15, "0", STR_PAD_LEFT);
?>">nota de venta</option>
</select>
<input type="text" class="inputs"
value="<?php
echo str_pad($boleta['folio'] + 1, 15, "0", STR_PAD_LEFT);
?>">
<?php
?>
它只是使用所有 3 个查询显示一个空白页面,但如果我使用 1 个查询,我会得到正确的结果 对此感到疯狂
【问题讨论】:
你检查过你的服务器错误日志看它是否抛出错误?$boletas[] $boleta;
中缺少某些内容
在提问时更改基本代码无济于事,我还要说您所做的更改将使您的代码不太可能工作。
【参考方案1】:
问题是mysql_fetch_assoc
使用上次mysqli_query
调用的结果。如果您想修复您的代码,您必须使用mysql_fetch_assoc
遍历第一个mysqli_query
的结果,将其存储在一个数组中,遍历该数组,然后执行内部mysqli_query
,然后重复。
<?php
$boletas_query = mysqli_query($datacenter, "
SELECT * FROM ventas
WHERE documento = 'boleta'
ORDER BY id DESC LIMIT 1");
$boletas = array();
while ($boleta = mysqli_fetch_assoc($boletas))
$boletas[] $boleta;
$facturas_query = mysqli_query($datacenter, "
SELECT * FROM ventas WHERE documento = 'factura'
ORDER BY id DESC LIMIT 1");
$facturas = array();
while ($factura = mysqli_fetch_assoc($facturas))
$facturas[] = $factura;
$notas_query = mysqli_query($datacenter, "
SELECT * FROM ventas
WHERE documento = 'nota'
ORDER BY id DESC LIMIT 1");
$notas = array();
while ($nota = mysqli_fetch_assoc($notas))
$notas[] = $nota;
foreach ($boletas as $boleta)
?>
<?php
foreach ($facturas as $factura)
?>
<?php
foreach ($notas as $nota)
?>
<select class="selects" >
<option value="3" data-price="
<?php
echo str_pad($boleta['folio'] + 1, 15, "0", STR_PAD_LEFT);
?>">
boleta</option>
<option value="4" data-price="
<?php
echo str_pad($factura['folio'] + 1, 15, "0", STR_PAD_LEFT);
?>">factura</option>
<option value="5" data-price="
<?php
echo str_pad($nota['folio'] + 1, 15, "0", STR_PAD_LEFT);
?>">nota de venta</option>
</select>
<input type="text" class="inputs"
value="<?php
echo str_pad($boleta['folio'] + 1, 15, "0", STR_PAD_LEFT);
?>">
<?php
?>
但是我不建议这样做,因为您可以通过单个查询来实现您想要的,而且它在数据库上的效率要高得多。
此外,请在此处提问时缩进并格式化您的代码。我必须通过文本编辑器运行它来格式化它以便能够阅读它。
【讨论】:
我添加了一个解决方案。 我得到相同的空白页:(以上是关于mysql运行3个查询得到空白页的主要内容,如果未能解决你的问题,请参考以下文章