【问题标题】:PHP: Two mysql_fetch_array in tablePHP:表中有两个 mysql_fetch_array
【发布时间】:2013-03-04 22:07:36
【问题描述】:

我正在使用来自两个查询的数据创建一个表,并尝试将它们连接到一个表中。 尝试使用类似的东西:

$counter = 1; 

    echo '<table border="0"  cellpadding="0" cellspacing="3"><tr>
                <td width="10%">Miejsce</td>
                <td width="25%">Nick</td>
                <td width="20%">SteamID</td>
                <td width="20%">Punkty</td>
                </tr>';

                    while($row = mysql_fetch_array($skill_b) AND $row2 = mysql_fetch_array($sid_b))
                    {
                      echo '<tr class="select">';
                      echo '<td>'.$counter.'</td>';
                      echo '<td><center>'.$row['lastName'].'</center></td>';
                      echo '<td><center>'.$row2['uniqueId'].'</center></td>'; 
                      echo '<td><center>'.$row['skill'].'</center></td>';
                      echo '</tr>
                    $counter++; 
                    } 

    echo '</table>';

$counter = 1; 
    echo '<table border="0"  cellpadding="0" cellspacing="3"><tr>
                <td width="10%">Miejsce</td>
                <td width="25%">Nick</td>
                <td width="20%">SteamID</td>
                <td width="20%">Punkty</td>
                </tr>';
                                          echo '<tr class="select">';
                                          echo '<td>'.$counter.'</td>';
                    while($row = mysql_fetch_array($skill_b))
                    {
                      echo '<td>'.$row['lastName'].'</td>';
                    } 
                    while($row2 = mysql_fetch_array($sid_b))
                    {
                      echo '<td>'.$row2['uniqueId'].'</td>'; 
                    } 
                    while($row3 = mysql_fetch_array($skill_b))
                    {
                      echo '<td>'.$row3['skill'].'</td>';
                    } 
                    $counter++; 
    echo '</table>';

第二个几乎可以工作,虽然它使整个表崩溃,所以我看不到所有结果。

如果其中有可以更改的内容,查询看起来像这样:

   $query_skill = sprintf(
  "SELECT skill, lastName
  From hlstats_Players
  ORDER BY skill DESC
  LIMIT 10");

$skill_b = mysql_query($query_skill);
$skill = mysql_result( $skill_b, -1 );

$query_sid = sprintf(
  "SELECT uniqueId
  From hlstats_PlayerUniqueIds
  WHERE playerId='$pid_b'"
  );

$sid_b = mysql_query($query_sid);
$sid = mysql_result( $sid_b, 0 );

【问题讨论】:

    标签: php mysql while-loop html-table


    【解决方案1】:

    您的第一次尝试几乎是正确的。唯一的问题是运算符优先级。

    试试这个:

    while(($row = mysql_fetch_array($skill_b)) && ($row2 = mysql_fetch_array($sid_b)))
    

    也就是说,您可能应该使用JOIN 重组您的查询,但是如果没有看到您当前的查询,我无法提供任何其他帮助。 请参阅下面的编辑。

    另外,请注意 &lt;center&gt; 已被弃用以支持 CSS。在这种情况下:

    <td style="text-align:center">
    

    编辑:试试这个查询:

    SELECT a.skill, a.lastName, b.uniqueId
    FROM hlstats_Players a
    JOIN jlstats_PlayerUniqueIds b ON a.id = b.playerId
    LIMIT 10
    

    【讨论】:

      【解决方案2】:

      试试这个对我来说很好用

      <?php
      mysql_connect('localhost','root','');
      mysql_select_db('your_db');
      $counter = 1; 
          echo '<table border="0" style="text-align:center;" cellpadding="0" cellspacing="3"><tr>
                      <td width="10%">Miejsce</td>
                      <td width="25%">Nick</td>
                      <td width="20%">SteamID</td>
                      <td width="20%">Punkty</td>
                      </tr>';
      
      $skill_b = mysql_query('select * from table_name limit 10');
      $sid_b = mysql_query('select * from table_name limit 10');
      
                          while($row = mysql_fetch_array($skill_b) AND $row2 = mysql_fetch_array($sid_b))
                          {
                            echo '<tr class="select">';
                            echo '<td>'.$counter.'</td>';
                            echo '<td><center>'.$row['colu_name'].'</center></td>';
                            echo '<td><center>'.$row2['colu_name'].'</center></td>'; 
                            echo '<td><center>'.$row['colu_name'].'</center></td>';
                            echo '</tr>';
                          $counter++; 
                          } 
      
          echo '</table>';
          ?>
      

      如有错误请评论,如有错误请指出

      谢谢

      【讨论】:

      • 只需在第 12 行和第 13 行添加查询即可
      猜你喜欢
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2012-02-29
      相关资源
      最近更新 更多