<?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.'", И это совершенно нормально. Но когда я пытаюсь показать некоторый определенный столбец (ы), не все (*), напримерПроблемы с отображением результатов 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
Вы не можете ограничить * отображение * столбцов, используя ту же систему, которую вы используете для ограничения запросов? –