Jump to content
  • 0

Вывод данных в <select>.</select> из БД


Rusl
 Share

Question

Доброй ночи. К примеру есть таблица. В ней поле status.

На странице сайта выводится таблица и в ней тоже есть поле status.
В этом поле в форме я делаю выпадающий список тегом <select> для изменения статуса:

<select name="status">  						<?php		$a = 'новый';		$b = 'выполнен';		$c = 'в очереди';	?>	<option value="<?=$a?>"><?=$a?></option>	<option value="<?=$b?>"><?=$b?></option>	<option value="<?=$c?>"><?=$c?></option></select>

После выбора статуса, нажав кнопку Сохранить, в БД поле status меняется на значение, выбранное в <select> на сайте.

Вопрос такой: как сделать чтобы на сайте выпадающий список начинался со значения, которое хранится БД в поле status, а потом шли следующие значения?

К примеру в БД в поле status написано выполнен и на сайте выпадающий список начинается с записи выполнен, а потом следующие.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Вы меня не поняли. Я написал, что уже вывожу выпадающий список, но он выводится так, как указано в тегах <option>. А мне нужно чтобы вывод менялся в зависимости от значения в бд.

Link to comment
Share on other sites

  • 0

вам лучше сделать массив из которого будет формироваться нужный порядок, например:

$statuses[0] = 'новый';$statuses[1] = 'выполнен';$statuses[2] = 'в очереди';

после вы достаете из базы свой статус $status_id (предположим - это был 'выполнен' равный 1 - советую статусы хранить в цифровом формате) и выводим нужный пункт с удалением его из массива

<option value="<?PHP echo $status_id;?>"><?PHP echo $statuses[$status_id]; unset($statuses[$status_id]);?></option>

еще не советую использовать <?=...?> по ряду причин, которые вы сможете найти в интернете на том же хабре

после вы можете использовать цикл для вывода оставшихся пунктов из массива:

foreach($statuses as $key=>$val){    echo '<option value="'. $key.'">'. $val .'</option>';}

так же есть мнение, что echo '...'; отрабатывает быстрее чем <?PHP ...?>....<?PHP ...?>

 

Link to comment
Share on other sites

  • 0
Почему не стоит использовать short_open_tag:

Основные причины:

  1. на некоторых серверах может быть выключена директива short_open_tag, и ваши скрипты не будут работать

  2. XML <?xml... может начать отрабатывать как php код (возможно вы заблуждаетесь, если думаете, что вам это не понадобится)

  3. Стандарты PHP рекомендуют использовать полный открывающий тег по причине из пункта 1 http://www.php.net/manual/ru/language.basic-syntax.phptags.php
Именно на хабре тоже не могу уже найти, но когда-то там об этом читал.

Link to comment
Share on other sites

  • 0
XML <?xml... может начать отрабатывать как php код (возможно вы заблуждаетесь, если думаете, что вам это не понадобится)

Была такая проблема. Решил так:

<?php  echo "<?xml version='1.0' encoding='UTF-8'?>";?>


Но ведь

123 <?= ... ?> 456

можно заменить на

123 <?php echo ... ?> 456

, а не на

<?php  echo "123 " . ... . " 456";?>

!

Edited by afdw
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy