显示mysql结果的问题

时间:2013-06-30 08:47:36

标签: php mysql

<?php  

include('../Adress/includes/mysql_connection_recepti.php');

if (isset($_POST['username'])){

$conn = dbConnect($_POST['username']);


$city=$_POST['city'];

$sql= 'SELECT * FROM adress_table WHERE city="'.$city.'"';

$result=mysql_query($sql);

$numRows=mysql_num_rows($result);

?>

<p><?php echo $numRows; ?> records is found.</p>

<table>
<tr>
<th>Number</th>
<th>Name</th>
<th>Last Name</th>
<th>City</th>
<th>Country</th>
<th>Date</th>
</tr>

<?php 
$n=0;

while($row = mysql_fetch_assoc($result)){
//print_r($row);

$n++;

?>

<tr>
<td><?php echo $n . ".";?></td>
<td><?php echo $row['name'] ?></td>
<td><?php echo $row['last_name'] ?></td>
<td><?php echo $row['city'];?></td>
<td><?php echo $row['country'] ?></td>
<td><?php echo $row['date'] ?></td>
</tr>

<?php }?>

</table>

<?php }?>
</body>
<body>

<form action="" method="post">
<input type="text" id="username" name="username"/>


<select name="city">
<option value="new_york">New York</option>
<option value="london">London</option>
<option value="belgrade">Belgrade</option>
<option value="zagreb">Zagreb</option>
<option value="moscow">Moscow</option>

<input type="submit" value="Find">
</select>
</body>

正如你所看到的,我的sql语句告诉我们必须在city =“'。$ city。'”时显示每一列,这是完全正常的。但是,当我尝试显示某些特定列时,并非所有(*),例如

$sql= 'SELECT name,last_name FROM adress_table WHERE city="'.$city.'"';

然后出现错误,暂停

 <td><?php echo $row['city'];?></td>
 <td><?php echo $row['country'] ?></td>
 <td><?php echo $row['date'] ?></td>

未定义。为了解决这个问题,我把@ sign

 <td><?php @ echo $row['city'];?></td>
 <td><?php @ echo $row['country'] ?></td>
 <td><?php @ echo $row['date'] ?></td>

掩盖错误信息,我告诉你,一切看起来都很完美,但我不知道这是不错的做法。我该怎么办? 感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用if来检查是否存在某些内容:

<?php echo isset($row["city"]) ? $row["city"] : "" ?>

答案 1 :(得分:1)

您正在尝试显示SQL查询中不存在的列。你可以使用类似的东西 -

<?php echo isset($row["city"]) ? $row["city"] : "" ?>