繁体   English   中英

While循环多次显示一条记录php和mysql问题

[英]While loop displays one record multiple times php and mysql issue

我正在尝试从数据库中获取数据。 但是while循环正在执行并多次显示数据。 请看截图

在此处输入图片说明

<?php
$conn = mysqli_connect("localhost", "root", "","midata");
$sql = "SELECT * FROM campaign_profile ORDER BY id DESC"; 
?>
<div class="modal-body">
<form>
    <?php 
    $result = mysqli_query($conn,$sql);
    while($row = mysqli_fetch_array($result)) 
    { 
        $name= $row['campaign_name'];
        $issues= $row['issue_name'];
        $ename= $row['unused_elements'];
        $uquantity= $row['unused_number'];
        $descript= $row['experience']; ?>

        <div class="form-group">
            <label for="recipient-name" class="control-label">Campaign Name:</label>
            <input type="text" class="form-control c-square" id="recipient-name" value="<?php echo  $row['campaign_name'];?>">  
        </div>
        <div class="form-group">
            <label for="recipient-name" class="control-label">Issues:</label>
            <input type="text" class="form-control c-square" id="recipient-name" value="<?php echo $row['issue_name'];?>"> 
        </div>
        <div class="row col-md-12">
            <div class="form-group col-md-6">
                <label for="recipient-name" class="control-label">Element Name:</label>
                <input type="text" class="form-control c-square" id="recipient-name" class="col-md-6" value="<?php echo $row['unused_elements'];?>">
            </div>
            <div class="form-group col-md-6">
                <label for="recipient-name" class="control-label">Unused Quantity:</label>
                <input type="text" class="form-control c-square" id="recipient-name" class="col-md-6" value="<?php echo $row['unused_number'];?>"> 
            </div>
        </div>
        <div class="form-group">
            <label for="message-text" class="control-label">Description:</label>
            <textarea class="form-control  c-square" id="message-text" value="<?php echo $row['experience'];?>"></textarea>
        </div>

    <?php } ?>
</form>
</div>

我不明白为什么会这样。 让我知道需要做什么

可能是您的表中的行比预期的多。

以此限制您的查询。

$sql = "SELECT * FROM campaign_profile ORDER BY id DESC limit 1";

或尝试使用ID或主键获取数据。

或使用以下给出的代码更改代码。

<?php
$conn = mysqli_connect("localhost", "root", "","midata");
$sql = "SELECT * FROM campaign_profile ORDER BY id DESC"; 
?>
<div class="modal-body">
<form>
    <?php 

        $name= "";
        $issues= "";
        $ename= "";
        $uquantity= "";
        $descript= ""; 

    $result = mysqli_query($conn,$sql);
    while($row = mysqli_fetch_array($result)) 
    { 
        $name= $row['campaign_name'];
        $issues= $row['issue_name'];
        $ename= $row['unused_elements'];
        $uquantity= $row['unused_number'];
        $descript= $row['experience']; 


 } ?>
   <div class="form-group">
            <label for="recipient-name" class="control-label">Campaign Name:</label>
            <input type="text" class="form-control c-square" id="recipient-name" value="<?php echo  $row['campaign_name'];?>">  
        </div>
        <div class="form-group">
            <label for="recipient-name" class="control-label">Issues:</label>
            <input type="text" class="form-control c-square" id="recipient-name" value="<?php echo $row['issue_name'];?>"> 
        </div>
        <div class="row col-md-12">
            <div class="form-group col-md-6">
                <label for="recipient-name" class="control-label">Element Name:</label>
                <input type="text" class="form-control c-square" id="recipient-name" class="col-md-6" value="<?php echo $row['unused_elements'];?>">
            </div>
            <div class="form-group col-md-6">
                <label for="recipient-name" class="control-label">Unused Quantity:</label>
                <input type="text" class="form-control c-square" id="recipient-name" class="col-md-6" value="<?php echo $row['unused_number'];?>"> 
            </div>
        </div>
        <div class="form-group">
            <label for="message-text" class="control-label">Description:</label>
            <textarea class="form-control  c-square" id="message-text" value="<?php echo $row['experience'];?>"></textarea>
        </div>
</form>
</div>

尝试通过终端或phpmyadmin工具直接运行mysql select查询来分析查询结果。 请使用php代码检查查询结果,如果两者相同,则您的表包含重复数据。

如果要show single record意味着不需要while loop ,则如下所示

通过添加limit 1limit 1 record

SELECT * FROM campaign_profile ORDER BY id DESC limit 1

PHP的:

 $result = mysqli_query($conn,$sql);
 $row = mysqli_fetch_array($result);

 $name= $row['campaign_name'];
 $issues= $row['issue_name'];
 $ename= $row['unused_elements'];
 $uquantity= $row['unused_number'];
 $descript= $row['experience']; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM