如何在一个循环中获取包含正确结果值的 MySQL 列名称


how to get the mysql columns names including the right result values in one loop

我问这篇文章:如何在 php/mysql 中获取列名和结果集?

$selecttable = mysql_query("SELECT * FROM $tablename WHERE (preis_bis <= '$price_upper' AND preis_bis > '$price_lower') LIMIT 1");
for ($i = 0; $i < mysql_num_fields($selecttable); $i++) {
  $field_info = mysql_fetch_field($selecttable, $i);
  // not WORKING
  while($rowvalue = mysql_fetch_row($selecttable)) {
    echo "<tr><td>Price: ".$rowvalue[$i]."</td></tr>";
  }
  echo "<tr><td style='border:1px solid #c0c0c0;padding:10px;'><!-- {$field_info->name} -->";
  // get Logo and provider name
  $select_getlogo = mysql_query("SELECT * FROM rrv_anbieter WHERE aid = '$field_info->name' LIMIT 1");
  while($row_logo = mysql_fetch_object($select_getlogo)){
    echo $row_logo->name.'<br><img src="images/'.$row_logo->logo.'" style="max-width: 200px;">';
  }      
  #while($rowvalues2 = mysql_fetch_row($selecttable)) {        
  #  foreach($rowvalues2 as $_column) {
  #    echo "<td>{$_column}</td>";
  #  }      
  #}      
  echo "</td></tr>";       
}

我不让它在"for"循环中获取正确的行值。编写 col 名称是有效的,但在同一循环中额外显示正确的值则不行。

有人可以帮忙吗?

您需要在内部循环中再次迭代以获取表列的所有行。

while($rowvalue = mysql_fetch_row($selecttable)) {       
        foreach($rowvalue as $r){
        echo "<tr><td> ".$r."</td></tr>";
        }
  }

$rowvalue[$i] 错误地显示行,因为它基于$i的外部循环跟踪索引。所以基本上循环将打印每列的所有行 n 次,其中 n=所有列的数量,而不仅仅是价格列。.

您还可以使用以下命令一次打印每个$rowvalue 的所有元素

while($rowvalue = mysql_fetch_row($selecttable)) {       
            $allElements = implode(",",$rowvalue ); // comma ',' is the separator
            echo "<tr><td>". $allElements."</td></tr>";
            }
      }