Пытаюсь заполнить выпадающий список PHP

#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>");
  

надеюсь, это поможет.