代码之家  ›  专栏  ›  技术社区  ›  jason m

查询结果问题的回显输出

  •  0
  • jason m  · 技术社区  · 15 年前

    出于某种原因,下面的代码在lprice位置为所有项目输出正确的ticker,但仅为pct和pnl输出第二个数据元素的正确数据。也就是说,第1行只在一个部分中填充,而第2行在所有正确的部分中填充。注意:表中目前只有2个元素。

    <?php
    $host="localhost"; // Host name 
    $username="abc"; // Mysql username 
    $password="password"; // Mysql password 
    $db_name="abc"; // Database name 
    $tbl_name="portfolio"; // Table name
    $conn=mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");
    $sql="select * from ".$tbl_name.";";
    $result = mysql_query($sql) or die(mysql_error()); 
    echo '<table class="tickerContain">';
    echo '<tr>';
    echo '<td>ID</td>';
    echo '<td>TICKER</td>';
    echo '<td>PRICE</td>';
    echo '<td>CommIn</td>';
    echo '<td>CommOut</td>';
    echo '<td>DateIn</td>';
    echo '<td>LPrice</td>';
    echo '<td>%CHG</td>';
    echo '<td>PNL</td>';
    
    $tblOut='';
    while ($row = mysql_fetch_array($result))
    {
      $tick='';
      $tick=$row["ticker"];
      $tblOut.= '<tr>';
      $tblOut.= '<td id="'.$tick.'id">' . $row["id"] . '</td>';
      $tblOut.= '<td id="'.$tick.'ticker">' . $tick . '</td>';
      $tblOut.= '<td id="'.$tick.'price">' . $row["price"] . '</td>';
      $tblOut.= '<td id="'.$tick.'commissionIn">' . $row["commissionIn"] . '</td>';
      $tblOut.= '<td id="'.$tick.'commissionOut">' . $row["commissionOut"] . '</td>';
      $tblOut.= '<td id="'.$tick.'dateIn">' . $row["dateIn"] . '</td>';
      $tblOut.= '<td><textarea class="realTime"  id="'.$tick.'LPrice">'.$tick.'</textarea></td>';
      $tblOut.= '<td><textarea class="realTime"  id="'.$tick.'pctChange">'.$tick.'</textarea></td>';
      $tblOut.= '<td><textarea class="realTime"  id="'.$tick.'pnl">'.$tick.'</textarea></td>';
      $tblOut.= '</tr>';
    }
    echo $tblOut;
    echo '</table>';
    
    1 回复  |  直到 15 年前
        1
  •  2
  •   bimbom22    15 年前

    你的 while 循环正在关闭 <tr> 在每次迭代中都在上面加上标记,但是你不可能用完全不可读的代码看到它。

    我冒昧地为你整理了一下:

    您还分配了一些完全无用的变量。我也修过了。

    <?php
    $host="localhost"; // Host name 
    $username="abc"; // Mysql username 
    $password="password"; // Mysql password 
    $db_name="abc"; // Database name 
    $tbl_name="portfolio"; // Table name
    $conn=mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");
    $sql="select * from ".$tbl_name.";";
    $result = mysql_query($sql) or die(mysql_error());
    
    ?>
    
    <table class="tickerContain">
        <tr>
            <td>ID</td>
            <td>TICKER</td>
            <td>PRICE</td>
            <td>CommIn</td>
            <td>CommOut</td>
            <td>DateIn</td>
            <td>LPrice</td>
            <td>%CHG</td>
            <td>PNL</td>
    
        </tr>
        <?php while ($row = mysql_fetch_array($result)) : ?>
        <tr>
            <td id="<?php echo $row["ticker"]; ?>id">
                <?php echo $row["id"]; ?>
            </td>
            <td id="<?php echo $row["ticker"]; ?>ticker">
                <?php echo $row["ticker"]; ?>
            </td>
            <td id="<?php echo $row["ticker"]; ?>price">
                <?php echo $row["price"]; ?>
            </td>
            <td id="<?php echo $row["ticker"]; ?>commissionIn">
                <?php echo $row["commissionIn"]; ?>
            </td>
            <td id="<?php echo $row["ticker"]; ?>commissionOut">
                <?php echo $row["commissionOut"]; ?>
            </td>
            <td id="<?php echo $row["ticker"]; ?>dateIn">
                <?php echo $row["dateIn"]; ?>
            </td>
            <td>
                <textarea class="realTime" id="<?php echo $row["ticker"]; ?>LPrice">
                    <?php echo $row["ticker"]; ?>
                </textarea>
            </td>
            <td>
                <textarea class="realTime" id="<?php echo $row["ticker"]; ?>pctChange">
                    <?php echo $row["ticker"]; ?>
                </textarea>
            </td>
            <td>
                <textarea class="realTime" id="<?php echo $row["ticker"]; ?>pnl">
                    <?php echo $row["ticker"]; ?>
                </textarea>
            </td>
        </tr>
        <?php endwhile; ?>
    </table>
    

    另外,我建议将数据库代码移动到另一个文件,并将其包含到脚本中。

    看看MVC架构( http://en.wikipedia.org/wiki/Model _“查看_”控制器),它将显著帮助您保持代码的整洁。

    推荐文章