Вечер всем, у меня есть страница, которая обновляет таблицу/строку таблицы mysql, используя форму. Когда вы переходите на страницу xyz.php, выпадающий список. Выбрав artID
из выпадающего списка и нажав submit, отобразится форма. Форма предварительно заполняется с помощью artId и сопоставляется с запросом mysql, который извлекается из начала скрипта. Код ниже работает отлично.Заполнить форму из выпадающего меню с помощью mysql более эффективно
Мой вопрос, однако, может ли это быть более эффективным? В частности, предварительно заполненная форма. Я использую оператор if
, чтобы найти индекс массива, в который вложен «artId». Затем с помощью vars индексированного массива заполнить форму. Эти швы были бы довольно обременены, если запрос sql большой.
Я также использую конструкции 2 foreach
для тех же данных. Я все еще работаю над тем, как устранить одну из них, не разбирая всю форму.
Любые предложения или мысли для направления, которым нужно руководствоваться, очень ценятся, как всегда. Благодаря JR
$sqllst = "SELECT artId, artName, artSummary, artContent FROM article";
$dba = new PDO($dsn, $usr, $pas);
$dba->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$getlist = $dba->prepare($sqllst);
$getlist->execute();
$res = $getlist->fetchAll();
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
echo '<form method="post">
<select name="dro">';
foreach ($res as $red){
echo '<option name="dro" value=' . $red['artId'] . '>ID# ' .$red['artId'] . '-' . $red['artName'] . '</option>';
}
echo '</select>
<input type="submit" value="Select Article">
</form>';
} else {
$arrayIndex = $_POST ['dro'];
foreach ($res AS $searchValue) {
if ($searchValue['artId'] == $arrayIndex) {
$name = $searchValue['artName'];
$sumry = $searchValue['artSummary'];
$cont = $searchValue['artContent'];
}
}
echo "<form method=post id=setArticle>
Article Id: <input type=text name=id value=" . $arrayIndex . "><br>
Article Name: <input type=text name=name value=" . $name . "><br>
Article Summary: <input type=text name=sum value=" . $sumry . "><br>
Article Content: <textarea name=content rows=4 cols=10>" . $cont . " </textarea><br>
<input type=submit value=SUBMIT>
</form>";
}