mysql运行3个查询得到空白页

Posted

技术标签:

【中文标题】mysql运行3个查询得到空白页【英文标题】:mysql running 3 queries gets blank page 【发布时间】:2018-09-30 07:27:40 【问题描述】:

我正在使用 phpmysql 运行以下查询,但如果我只查询 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个查询得到空白页的主要内容,如果未能解决你的问题,请参考以下文章

word空白页删不掉是怎么回事

android webview显示空白页

尝试插入后的空白页

当我在本地机器上运行或调试 MVC 应用程序时出现空白页

Joomla安装卡在白色的空白页上

Apache 正在运行,但 phpmyadmin 显示空白页