У меня есть 2 массива.
Первый массив содержит имена таблиц для простой БД в тексте.
Второй массив имеет значения каждой таблицы.
Когда я запускаю мою форму, значение поля send from form и имеет равное значение массива таблиц, берут значение send из формы.
Сценарий :
<?php
if($_POST[send]=="ok") {
/// The structure it´s that and fixed , in the array_1 and 2 ///$tables="name,phone,alias";
$values="Jhon,55543232,johny25";
/// Explode values in each case ///
$exp_tables=explode(",",$tables);
$exp_values=explode(",",$values);
/// Array for get values for each field ///
$i=0;
foreach($exp_tables as $exp_table) { ${$exp_table}[]="".$exp_values[$i].""; $i++; }
/// Bucle for get the result if vars send by form equal to the other vars and change by new value send form the form ///
foreach($exp_tables as $table) {
foreach($_POST as $key=>$value) {
if($table=="".$key."")
{
print "".$_POST[$table]."";
}
else { print "".${$table}{0}."";}
}
}
}
?>
HTML-форма
<form action="" method="post">
<input type="text" name="name" value="" />
<input type="submit" name="submit2" value"send" />
<input type="hidden" name="send" value="ok" />
</form>
В форме у меня есть «имя» в первом поле, а в таблицах массивов у меня есть одно поле, также называемое именем.
Когда я отправляю форму, я должен получить это:
Jhon(change value by the value from the form),55543232,johny25
Проблема в том, что все значения времени повторяются, и результат не получается.
Мой вопрос: как я могу это исправить, чтобы поместить значения, отправленные из формы, и изменить их, если другие значения имеют то же имя, что и в таблицах массивов, но ни одно из них не работает очень хорошо.
Прежде всего, ваши переменные $tables
$values
не массивы, а строки
Массив выглядит так
array(value, value, value)
или же
array( key=> value, key=> value, key value)
В вашем случае вы могли бы использовать
$tables=array('name','phone','alias');
$values=array('Jhon','55543232','johny25');
//or, to make even simpler
$values=array('name'=>'Jhon','phone'=>'55543232','alias'=>'johny25');
Затем, если вы хотите вывести только имя и проверить, отличается ли оно от имени в массиве, вы просто делаете:
if($_POST['name']==$values['name']){
print "".$_POST['name']."";
}
else{
print "".$values['name']."";
}
Других решений пока нет …