Здравствуйте. У меня имеется код, который выводит два текстовых поля и одно поле для ввода текста. При нажатии кнопки, данные из поля для ввода записываются в таблицу. Работает на коде ниже.
if (isset($_POST['submit'])) {
$text = !empty($_POST['text']) ? $_POST['text'] : null;
foreach ($text as $idt => $pages) {
if ($pages != NULL) {
$todb = $mysqli->query('INSERT INTO extend (id, pages) VALUES ("' . $idt . '", "' . $pages . '")
ON DUPLICATE KEY UPDATE pages = "' . $pages . '"');
}
}
echo '<br>Команда выполнена!<br><br>';
}
$todb = $mysqli->query('SELECT
nal.id AS id,
nal.name AS name,
extend.id AS id2,
extend.pages AS pages
FROM nal LEFT JOIN extend
ON nal.id = extend.id
WHERE nal.remainder > 0
ORDER BY name ASC');
echo '<table class="raz">';
while ($row = $todb->fetch_array())
{ echo '<tr><td>'.$row[id].'</td>';
echo '<td>'.$row[name].'</td>';
echo '<td><input type="text" name="text['.$row[id].']" value="'.$row[pages].'" maxlength="5" size="6"><br></td></tr>';
$count++;
}
echo '</table>';
echo 'строк выведено: '.$count.'<br>';
echo'<button type="submit" name="submit">Нажать</button></form>';
Я решил немного увеличить таблицу и поставить несколько полей для ввода.
$todb = $mysqli->query('SELECT
nal.id AS id,
nal.name AS name,
tempextend.id AS id2,
tempextend.pages AS pages,
tempextend.perep AS perep,
tempextend.orig AS orig,
tempextend.pere AS pere
FROM nal LEFT JOIN tempextend
ON nal.id = tempextend.id
WHERE nal.remainder > 0');
while ($row = $todb->fetch_array())
{ echo '<tr><td>'.$row[id].'</td>';
echo '<td>'.$row[name].'</td>';
echo '<td><input type="text" name="pages['.$row[id].']" value="'.$row[pages].'" maxlength="5" size="5"><br></td>';
echo '<td><input type="text" name="perep['.$row[id].']" value="'.$row[perep].'" maxlength="15" size="7"><br></td>';
echo '<td><input type="text" name="orig['.$row[id].']" value="'.$row[orig].'" maxlength="19" size="12"><br></td>';
echo '<td><input type="text" name="pere['.$row[id].']" value="'.$row[pere].'" maxlength="19" size="12"><br></td></tr>';
$count++;
}
echo '</table>';
echo 'строк выведено: '.$count.'<br>';
echo'<button type="submit" name="submit">Нажать</button></form>';
А при нажатии кнопки срабатывает вот такой код.
if (isset($_POST['submit'])) {
$pages = !empty($_POST['pages']) ? $_POST['pages'] : null;
$pereplet = !empty($_POST['perep']) ? $_POST['perep'] : null;
$orig = !empty($_POST['orig']) ? $_POST['orig'] : null;
$pere = !empty($_POST['pere']) ? $_POST['izdat_perevod'] : null;
foreach ($pages as $idt => $izdat_orig) {
if ($pages != NULL || $perep != NULL || $orig != NULL || $pere != NULL) {
$todb = $mysqli->query('INSERT INTO tempextend (id, pages, perep, orig, pere)
VALUES ("' . $idt . '", "' . $pages . '", "' . $perep . '", "' . $orig . '", "' . $pere . '")
ON DUPLICATE KEY UPDATE pages = "' . $pages . '", perep = "' . $perep . '", orig = "' . $orig . '", pere = "' . $pere . '"');
}
}
echo 'Команда выполнена!<br><br>';
}
И в итоге ничего не происходит. Меня смущает foreach тут, не понимаю какие данные там нужно подставить. Как вообще можно обработать такой запрос?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости