【问题标题】:Use PHP to get SQL data for various IDs使用PHP获取各种ID的SQL数据
【发布时间】:2019-08-21 22:58:48
【问题描述】:

我目前在我的网站上有一个表,我的 SQL 数据库中有一个表,我需要表的每一行从列中获取某些信息。我目前有一些工作正常的东西,但是,我觉得它不是最好的做事方式。因为我的数据库中有大约 600 多行。

我正在尝试更多地了解这一切,所以如果您有任何想法以更好的方式做到这一点,那就太好了。

<?php
    $queryContent="SELECT * FROM businesses WHERE id= 104";
    $resultContent= $mysqli->query($queryContent);
    $rowContent = $resultContent->fetch_assoc();
?>
<?php if ($rowContent['active'] == "Y") { ?>
    <tr>
        <td><?php echo $rowContent['businessname']; ?></td>
        <td><?php echo $rowContent['telephoneno']; ?></td>
        <td><?php echo $rowContent['emailaddress']; ?></td>
        <td><?php echo $rowContent['rating']; ?></td>
    </tr>
<?php } ?>

【问题讨论】:

  • 为什么你觉得这不是最好的做事方式?
  • 还有....有什么问题???
  • 如果您的问题是所有 600 行都加载在一个页面上,我会考虑设置分页,以便您可以限制每页显示的结果。

标签: php mysql sql


【解决方案1】:

如果您尝试列出所有活动行,请尝试以下操作:

<?php
    // Change query to select only acitve rows
    $queryContent="SELECT * FROM businesses WHERE active = 'Y'";
    $resultContent= $mysqli->query($queryContent);

    //while cycle will repeat while sql have results
    while($rowContent = $resultContent->fetch_assoc()){ 
?>
<tr>
    <td><?php echo $rowContent['businessname']; ?></td>
    <td><?php echo $rowContent['telephoneno']; ?></td>
    <td><?php echo $rowContent['emailaddress']; ?></td>
    <td><?php echo $rowContent['rating']; ?></td>
</tr><?php } ?>

Php documentation 的例子应该也很有用。

如果您有一个要从 sql 中选择的 ID 列表,请查看 SQL WHERE - IN 运算符和语法。

SELECT * FROM businesses WHERE id IN (103, 104, 105)

【讨论】:

    【解决方案2】:

    我可以想到两点可以在您的代码中改进:

    1. 不用select *,可以提select column1,column2,...这算是标准的了

    2. 如果您尝试仅列出一行,则可以访问索引为 0 的 $rowcontent 数组(或)通过在“SELECT”查询末尾使用“LIMIT 1”来限制选择查询的输出行(仅当您不确定查询是否始终只获取一行时,第二个选项才有效)

    【讨论】:

      猜你喜欢
      • 2015-01-11
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多