php - 阵列似乎在 7 项后停止

标签 php mysql arrays

我在绘制的表格中出现了这种奇怪的行为。当我向数据库中添加超过 7 个条目以供绘制表格时,它似乎崩溃了并且没有绘制任何东西。 7 或更少,它工作得很好。

我不知道它为什么会这样做???

$strSQL = "
SELECT u.username playername
     , IFNULL(a.avatar,'default.jpg') playeravatar
  FROM add_tournament_repeat_guests p
  JOIN nfojm_users u
     ON p.guestID = u.id
  LEFT 
  JOIN nfojm_comprofiler a
     ON u.id = a.user_id
 WHERE p.parent_id = $tournID
";

$query = mysqli_query($con, $strSQL);

while ($row = mysqli_fetch_array($query)) {  

    if (!in_array($row["playername"], $playernames)) {
        $i=0;
        $indexes[$row["playername"]] = 0;
        $playernames[] = $row["playername"];     
    } else {    
        $indexes[$row["playername"]]++;   
        $i = $indexes[$row["playername"]];
    }  
    if (!in_array($row["playeravatar"], $playeravatars)) {
        $i=0;
        $indexes[$row["playeravatar"]] = 0;
        $playeravatars[] = $row["playeravatar"];     
    } else {    
        $indexes[$row["playeravatar"]]++;   
        $i = $indexes[$row["playeravatar"]];
    }  


  }
    print('<table class="block" style="border:2px solid #999999; width:175px; background-color: aliceblue; margin-top:-7px"><thead><tr><th style="color:white; background-color:#444444; height:35px;"> <h2>Leaderboard</h2> </th></tr></thead><tbody>');

   foreach (array_combine($playeravatars, $playernames) as $playeravatar => $playername) {

   print("<tr><td style='padding-left:8px;' class='block'><h4><img src='http://www.arcadeicons.com/images/comprofiler/" . $playeravatar . "' height='35' width='35' style='border-radius:50%'> " . $playername . "</h4></td></tr>");

 } 

最佳答案

$playeravatars$playernames 有不同的长度,这就是为什么 array_combine() 返回 FALSE 而不是合并数组如您所愿 ( php.net/array_combine )

2 个不同名字且没有头像的用户将在 $playernames 中生成 2 行,但在 $playeravatars 中仅生成 1 行——这就是长度不匹配的原因

您可以编写更简单的代码:

echo '<table class="block" style="border:2px solid #999999; width:175px; background-color: aliceblue; margin-top:-7px"><thead><tr><th style="color:white; background-color:#444444; height:35px;"> <h2>Leaderboard</h2> </th></tr></thead><tbody>');
while ($row = mysqli_fetch_array($query)) {  
    echo "<tr><td style='padding-left:8px;' class='block'><h4><img src='http://www.arcadeicons.com/images/comprofiler/" . $row['playeravatar'] . "' height='35' width='35' style='border-radius:50%'> " . $row['playername'] . "</h4></td></tr>";
}

关于php - 阵列似乎在 7 项后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43462777/

相关文章:

php - 用PHP从出生日期计算年龄

迭代时 JavaScript 对象显示为 'undefined'

php - 从数据库记录范围中提取高值和低值的算法

python - 使用 SQLAlchemy 时如何关闭 MySQL 查询缓存?

mysql - 在mysql中为分层表创建聚簇索引

MySQL 选择 DISTINCT 列 1、列 2From 表 order by 列 2 DESC

python - 是否有包含用于 python 的许多单词数组的库?

javascript - 计数对象内的数组并替换

javascript - 如何使用 javascript 发布包含文件类型参数的表单

php - Osticket:如何使用 "OR"约束过滤票证