2016-04-14 3 views
0

У меня есть следующий while цикл, который я использовал для создания раскрывающегося списка выберите содержащую дату сгружена из базы данных:Хотя цикл печать дополнительная пустая строка

$sql = "SELECT name FROM persons"; 
$result = mysql_query($sql); 
while ($row = mysql_fetch_array($result)) { 
    echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>"; 
} 

это время печатает цикл дополнительно пустая строку в каплю список, т. е. в списке есть пустая строка. Как я могу избежать этого?

+1

Minor боковой примечание: Если значение совпадает с отображаемым текстом, вы можете опустить атрибут 'value' - по умолчанию будет отображаться текст. '' будет давать «John Smith» в качестве значения. –

+0

Проголосовали за закрытие - в вашем db есть запись 'NULL' или' empty'. – skrilled

+1

Остановить использование MySQL, [начать с MySQLi] (http://stackoverflow.com/questions/12020227/updating-from-mysql-to-mysqli). Вы будете жить, чтобы наслаждаться изменением :-) – Martin

ответ

1

Ничто в этом коде не печатает пустой вариант. Уверены ли вы, что у вас нет записи в вашей базе данных, где имя NULL или пустое?

Попробуйте добавить

WHERE name IS NOT NULL and name != "" 

вашему запросу

0

Похоже, у вас есть пустые строки в результатах из базы данных. Вы можете проверить таблицу лиц для этого или вы можете это исправить в коде, делая что-то вроде следующего:

$sql = "SELECT name FROM persons"; 
$result = mysql_query($sql); 
while ($row = mysql_fetch_array($result)) { 
    if (!empty($row['name'])) { 
     echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>"; 

    } 
} 
+1

Это все равно напечатает пустую опцию, так как isset() вернет true, поскольку это значение может быть пустой строкой. Вы должны использовать! Empty() вместо –

+0

Doh не обращал внимания. Обновлено. – Codar

0

Просто используйте PHP пустой функции, как это:

$sql = "SELECT name FROM persons"; 
$result = mysql_query($sql); 
    while ($row = mysql_fetch_array($result)) { 
     if(!empty($row['name'])) 
     { 
      echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>"; 
     } 
} 
Смежные вопросы