【问题标题】:Change only one value of an array returned by sql仅更改 sql 返回的数组的一个值
【发布时间】:2016-06-24 08:46:09
【问题描述】:

我有一个付款时间表表,我从数据库中提取数据。查询结果获取四条记录,因为我的表中有四个付款计划。下面的代码工作正常。我需要的唯一改变就在这里

  <td align="left" style="padding-left:5px;">
    <?php  echo $rr['plan_duration']?>
  </td>

我正在努力为 echo 语句添加 IF 条件我想先查看数组的内容,然后再决定要回显的内容。如果$rr['plan_duration'] 的值为1490,则回显149 否则回显$rr['plan_duration'] 的实际值就语法而言,我面临将html 与php 混合的问题。请帮我实现这个条件。谢谢。

这是完整的工作代码:

<?php
$result = mysql_query("SELECT * from memship_plan where status='1' order by plan_amount DESC");
while($rr=mysql_fetch_array($result))
{
?>                                    
<tr height="30px">
  <td align="left" style="padding-left:5px;" class="red_text">
    <?php  echo $rr['plan_name']?>
  </td>
  <td align="left" style="padding-left:5px;">
    <?php  echo $rr['plan_contacts']?>
  </td>
  <td align="left" style="padding-left:5px;">
    Unlimited
  </td>
  <td align="left" style="padding-left:5px;">
    <?php  echo $rr['video']?>
  </td>
  <td align="left" style="padding-left:5px;">
    <?php  echo $rr['plan_duration']?>
  </td>
  <td align="left" style="padding-left:5px;">
    Rs. 
    <?php echo $rr['plan_amount']?>
  </td>
  <td align="left" style="padding-left:5px;">
    <a href="pay.php?plan=<?php echo $rr['plan_name']?>">Pay Now
    </a>
  </td>
</tr>

PS:我理解mysql的局限性和缺点,我打算把它转换成mysqli

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您可以在每个 td 元素中插入整个 PHP 块。创建一个将 1490 转换为 149 的函数,在这个例子中我们称之为convert()

    <td align="left" style="padding-left:5px;">
        <?php
            if($rr['plan_duration'] == 1490)
            {
                echo convert($rr['plan_duration'])  
            }
            else
            {
                echo $rr['plan_duration'];
            }
        ?>
    </td>
    

    也可以使用?条件来减少代码量:

    <td align="left" style="padding-left:5px;">
         <?php echo ($rr['plan_duration'] == 1490) ? convert($rr['plan_duration']) : $rr['plan_duration'];
    </td>
    

    注意:除了使用mysqli 而不是mysql,我强烈建议你也使用Prepared Statements

    【讨论】:

    • 谢谢。我喜欢 ? 条件以减少代码行并易于理解
    【解决方案2】:

    while 循环中,您可以使用 if statement

    <td align="left" style="padding-left:5px;">
        <?php  if  ($rr['plan_duration'] == 1490) {
            echo 149 ;
        } else {
            echo $rr['plan_duration'];
        } ?>
    </td>
    

    【讨论】:

    • 谢谢。感谢您的努力!
    【解决方案3】:

    我稍微改写了您的代码,使其更易于阅读。我添加了一个速记 if 语句。看看:

    <?php
    $result = mysql_query("SELECT * from memship_plan where status='1' order by plan_amount DESC");
    
    $results = array();
    while($record = mysql_fetch_array($result)) {
        $results[] = $record;
    }
    ?>
    
    <?php foreach ($results as $rr): ?>
    <tr height="30px">
        <td align="left" style="padding-left:5px;" class="red_text"><?= $rr['plan_name']; ?></td>
        <td align="left" style="padding-left:5px;"><?=  $rr['plan_contacts']; ?></td>
        <td align="left" style="padding-left:5px;">Unlimited</td>
        <td align="left" style="padding-left:5px;"><?= $rr['video']; ?></td>
        <td align="left" style="padding-left:5px;"><?= ($rr['plan_duration'] == '1490') ? '149' : $rr['plan_duration']; ?></td>
        <td align="left" style="padding-left:5px;">Rs. <?= $rr['plan_amount']; ?></td>
        <td align="left" style="padding-left:5px;"><a href="pay.php?plan=<?php echo $rr['plan_name']?>">Pay Now</a></td>
    </tr>
    <?php endforeach; ?>
    

    【讨论】:

      【解决方案4】:
      <?php
      $result = mysql_query("SELECT * from memship_plan where status='1' order by plan_amount DESC");
      while($rr=mysql_fetch_array($result)) {
      ?>
      <td align="left" style="padding-left:5px;">
          <?php  if($rr['plan_duration']=='1490') {
              echo "149";
          } else {
              echo $rr['plan_duration'];
          }
          ?>
      </td>
      <?php } ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-08
        • 2021-06-15
        • 1970-01-01
        相关资源
        最近更新 更多