我有一个拥有数千个结构的数据库。通过首先选择“区域”,然后选择“block_number”,可以搜索结构。我的第一页允许用户选择区域,然后区域通过URL传递到下一页。下一页使用php来拉出该区域的块。我试图回应结果中的“区域”和“block_number”。我的查询工作正常,但由于某种原因我无法在结果中显示“区域”。请参阅下面的代码。
validate="currency"
我的问题是您看到<?
include("conn.php");
include("pl_header.php");
$area = mysql_real_escape_string($_GET['area']);
$wtf = '$area';
?>
<h3>Choose A Block Number in<br> <?=$area?></h3><br>
<center>
<?php
$tblWidth = 1;
$sql = mysql_query("SELECT DISTINCT block_number FROM platform_locations WHERE area='$area'");
$i = 1;
// Check to see if any results were returned
if(mysql_num_rows($sql) > 0){
echo '<div class="redBox extraIndent">';
// Loop through the results
while($row = mysql_fetch_array($sql)){
echo '<a href="S3.php?area='. $row['area'] .'&block_number='. $row['block_number'] .'" target="_self" class="index_buttons">'. $row['area'] .''. $row['block_number'] .'</a>';
if($i == $tblWidth){
echo '';
$i = 0;
}
$i++;
}
echo '';
}else{
echo '<br>Sorry No Results';
}
?>
</div>
</body>
</html>
没有显示任何内容,但'. $row['area'] .'
工作得很好。
答案 0 :(得分:1)
您的查询仅选择block_number。
尝试更改:
$sql = mysql_query("SELECT DISTINCT block_number FROM platform_locations WHERE area='$area'");
要:
$sql = mysql_query("SELECT DISTINCT block_number, area FROM platform_locations WHERE area='$area'");
编辑:如果将来遇到此问题,请尝试var_dump($ row);查看数组包含的内容。这将向您显示您只能访问block_number而不是区域。
双重编辑:我没有注意到,但另一个答案是正确的$ area var-你已经保存了$ area,使用该变量而不是数据库的返回,因为它&已经在记忆中了。如果每个记录都可以更改,那么使用记录的区域变量来使代码更可重用是谨慎的。但是,在这种特殊情况下,您的SQL语句在where子句中具有区域,因此除非您尝试在其他位置使用此代码的部分内容,否则它不会发生变化。
答案 1 :(得分:1)
您的SQL查询仅选择block_number
,因此这是$row
数组中唯一的字段。您已将区域作为变量$area
,因此请使用该区域,而不是$row['area']
。