#php #mysql #drop-down-menu
#php #mysql #выпадающее меню
Вопрос:
Я пытаюсь получить выпадающий список для отображения данных столбца, содержащих страны (‘level_4’), но принимает значение первичного ключа (‘id’) для отправки формы. Я выполняю миграцию из базовой формы openoffice, поэтому я уже написал рабочий SQL-запрос. Это моя попытка перейти на веб-форму, и у меня возникли трудности с синтаксисом PHP.
35<li>
36 <?php
37 $server="********";
38 $username="********";
39 $password="********";
40 $database="mtmg";
41
42 $connection = mysql_connect($server, $username, $password) or die('Could not connect'.mysql_error());
43 mysql_select_db($database, $connection) or die("Cannot select db.");
44
45 $sql="SELECT 'level_4','id' FROM 'mtmg'.'geography'";
46 $result=mysql_query($sql, $connection);
47
48 echo '<label for="geography">Geography</label>';
49 echo '<select id="geography" name="geography">';
50
51 while ($row = mysql_fetch_assoc($result)) {echo '<option value="'.$row['level_4'].'">'.$row['level_4'].'</option>';}
52 echo mysql_error();
53
54 echo '</select>';
55 ?>
56</li>
В веб-форме ничего не происходит, но я получаю следующее сообщение в исходном коде:
<li>
<label for="geography">Geography</label><select id="geography" name="geography"><br />
<b>Warning</b>: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in <b>/f5/user_name/public/index.php</b> on line <b>51/b><br />
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''mtmg'.'geography'' at line 1</select> </li>
Что я делаю не так?
Комментарии:
1. Разве таблица не пуста? Попробуйте mysql_num_rows(), чтобы проверить результаты.
Ответ №1:
Ошибка говорит о том, что ваш запрос неверен. Изменить
$sql="SELECT 'level_4','id' FROM 'mtmg'.'geography'";
Для
$sql="SELECT level_4, id FROM geography";
Ответ №2:
Я думаю, что ваши цитаты неверны. Вы должны либо использовать обратную метку (`) при указании таблиц и столбцов вашей базы данных, либо ничего:
45 $sql="SELECT `level_4`,`id` FROM `mtmg`.`geography`";
46 $result=mysql_query($sql, $connection);
Если это не решает проблему, попробуйте создать подключение к базе данных, а затем просто убедитесь, что из вашего результата что-то получается:
47 die("<pre>".print_r($result)."</pre>");
надеюсь, это поможет.