Работа с циклами при вводе и выводе значений из базы данных - MySQL

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток! У меня появилось несолько вопросов по поводу работы с mysql. Попрошу ногами сильно не пинать, так как новичок в работе с базами данных... У меня есть база данных в которой есть таблица tovar (к примеру). В ней есть много строк. У этой таблицы так же есть 3 столбца: "name, price, how". В этой таблице name-text, price,how-integer Итак, у меня появилось 2 вопроса...

Вопрос 1: По поводу вывода значений из базы данных.

С общими принципами разобрался, подключил базу данных, и потом запросом вывожу данные в массив вот так:
$kartofel = mysql_query("SELECT * FROM tovar WHERE name = 'kartofel '"); $pomidor = mysql_query("SELECT * FROM tovar WHERE name = 'pomidor '"); ....
$kartofel_row = mysql_fetch_array($kartofel);
    $pomidor_row = mysql_fetch_array($pomidor);
потом в нужном месте на странице вставляю значения вот так:
<?php echo $kartofel_row[price];?>
    <?php echo $kartofel_row[how];?>
А теперь собственно вопрос....как можно это все автоматизировать, в цикле например? что б не писать кучу таких строк (выделил желтым цветом)

Вопрос 2: По поводу ввода значений в базу.

тут в принципе суть та же, есть поле для ввода данных (куда ж без него), что то вроде:
<input name="kartofel_price" type="text" >
С помощью формы обработчика заношу в переменную значение введенное в поле. И отправляю его базу. Но так, как значения постоянно надо будет обновлять, делаю не новую записить,а перезапись старой
$insert_sql = "UPDATE import SET price='{$kartofel_price}' WHERE name='kartofel'";
    mysql_query($insert_sql) or die ('ошибка при обновлении значения!') ;
Ну, и опять же собственно вопрос...таких значений на одной странице будет очень много, как это дело автоматизировать, что б отправить все значения одним запросом? За меня все делать не надо, должен сам вьехать как это работает но если не сложно подкиньте небольшой пример работы. Буду очень благодарен!

Решение задачи: «Работа с циклами при вводе и выводе значений из базы данных»

textual
Листинг программы
<?
if (!empty($_POST['price'])){
    $query = "insert into `table`(`name`,`price`) values ";
    $parts = array();
    foreach( $_POST['price'] as $category => $price ) {
        $parts[] = "('{$category}' , '{$price}')";
    }
    $query .= join( "," , $parts);
    echo $query , '</br>';
}
?>
<form method="post">
pomidor:<input name="price[pomidor]" type="text" >
kartofel:<input name="price[kartofel]" type="text" >
<input type="submit">
</form>

Объяснение кода листинга программы

  1. Проверяется, не пуст ли массив $_POST['price'].
  2. Если массив не пуст, создается строка запроса SQL для вставки данных в таблицу table.
  3. Создается массив $parts, который будет содержать части запроса.
  4. Запускается цикл foreach для каждого элемента массива $_POST['price'].
  5. Внутри цикла каждый элемент массива $_POST['price'] помещается в массив $parts в виде строки.
  6. В конце цикла к массиву $parts добавляется строка, полученная из функции join, которая объединяет все строки массива $parts в одну строку, разделенную запятыми.
  7. Полученный запрос SQL выводится на экран.
  8. Создается форма для отправки данных в метод POST.
  9. В форме есть два поля ввода: pomidor и kartofel.
  10. При отправке формы данные будут отправлены в метод handle_post и обработаны согласно описанному выше алгоритму.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.308 из 5
Похожие ответы