<?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。'」時,每一列都必須顯示,這就完全沒問題。但是,當我試圖顯示一些特定列(S),不是所有(*),例如顯示mysql結果的問題
$sql= 'SELECT name,last_name FROM adress_table WHERE city="'.$city.'"';
然後錯誤出現,bacause
<td><?php echo $row['city'];?></td>
<td><?php echo $row['country'] ?></td>
<td><?php echo $row['date'] ?></td>
沒有定義。爲了解決這個問題,我把@符號
<td><?php @ echo $row['city'];?></td>
<td><?php @ echo $row['country'] ?></td>
<td><?php @ echo $row['date'] ?></td>
掩蓋錯誤消息和我的貓告訴你,一切看起來完全正確,但我不知道是不是好的做法。我該怎麼辦? 謝謝。
的常用方法,以防止這種情況正在檢查http://php.net/isset每個變量,但爲什麼你想,你沒有在第一時間選擇輸出列?我不明白這是如何有意義的。 –
因爲我想在sql語句中要顯示的列的名稱可以由用戶動態選擇,但我沒有在這段代碼中顯示。 – natttan
您是否可以使用與限制查詢相同的系統來限制列的*顯示? –