Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 1
Регистрация: 02.08.2015
Сообщений: 69

Как правильно передать результат запроса?

21.08.2015, 01:26. Показов 2919. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
добрый день.
есть форма на php . на ней выводится результат запроса к базе mysql в виде таблицы.
нужно этот результат записать в файл по нажатию кнопки на этой же форме или новой.
как правильно это сделать?:
отправить результат запроса в новую форму и там сформировать файл?
либо как то сформировать файл из текущей формы ?
как создавать и записываь файл я знаю.
тут вопрос в правильной реализации алгоритма кнопка-запись.как лучше сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.08.2015, 01:26
Ответы с готовыми решениями:

Как результат запроса передать в массив?
Есть запрос, который выводит больше тысячи строк, как это все запихать в массив и разделить содержимое по пробелам? public static void...

Как передать результат запроса в переменную?
Есть запрос который выдает только одно значение, как его(значение) присвоить переменной? Извеняюсь если это было но конкретного ответа...

Как передать результат sql-запроса в List<>?
SELECT * FROM Напишите пожалуйста как это реализовать. Если можно на примере...

23
64 / 22 / 9
Регистрация: 03.11.2012
Сообщений: 327
21.08.2015, 01:33
tiretrak, просто напишите функцию для записи в файл, а эту функцию положите в файлик func.inc.php, а потом при нажатии на кнопку записи, внутри вашего файла с выводом обработайте событие нажатия, а дальше работайте с вашей функцией записи.
0
0 / 0 / 1
Регистрация: 02.08.2015
Сообщений: 69
21.08.2015, 11:31  [ТС]
sending, а как передать в эту функцию результат моего запроса?
или в этой функции надо снова сформировать запрос?
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
21.08.2015, 11:35
Цитата Сообщение от tiretrak Посмотреть сообщение
sending, а как передать в эту функцию результат моего запроса?
или в этой функции надо снова сформировать запрос?
А у функции вообще-то есть параметры...

Добавлено через 24 секунды
И вот через эти параметры и передавать...
0
0 / 0 / 1
Регистрация: 02.08.2015
Сообщений: 69
21.08.2015, 11:42  [ТС]
у меня текст php , формирующий запрос ,находится вверху текста. а кнопка на форме находится в form в body внизу текста.как в этом месте получить результат запроса для помещения в мою новую функцию,для отправки в новый скрипт сохранения?
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
21.08.2015, 12:24
Цитата Сообщение от tiretrak Посмотреть сообщение
у меня текст php , формирующий запрос ,находится вверху текста. а кнопка на форме находится в form в body внизу текста.как в этом месте получить результат запроса для помещения в мою новую функцию,для отправки в новый скрипт сохранения?
Легко. Из массива $_POST / $_GET
0
0 / 0 / 1
Регистрация: 02.08.2015
Сообщений: 69
21.08.2015, 12:34  [ТС]
а можно пример какой нить,где из php в form через $_POST / $_GET отправляется результат запроса и отправка этого из form в новую функцию в другом скрипте?
0
64 / 22 / 9
Регистрация: 03.11.2012
Сообщений: 327
21.08.2015, 13:08
tiretrak,

HTML5
1
2
3
4
5
6
    <form action="" method="post">
        <input type="text" name="name" value="" placeholder="name">
        <input type="text" name="middlename" placeholder="middlename">
        <hr>
        <input type="submit" value="Send">
    </form>
PHP
1
2
3
4
5
6
7
// если были переданы данные
if(!empty($_POST[firstName]))   {
    
    /*Тут обрабатываете данные полученые из формы
    и функцией записываете их в базу*/
 
}
0
0 / 0 / 1
Регистрация: 02.08.2015
Сообщений: 69
21.08.2015, 13:21  [ТС]
Цитата Сообщение от sending Посмотреть сообщение
tiretrak,

HTML5
1
2
3
4
5
6
    <form action="" method="post">
        <input type="text" name="name" value="" placeholder="name">
        <input type="text" name="middlename" placeholder="middlename">
        <hr>
        <input type="submit" value="Send">
    </form>
PHP
1
2
3
4
5
6
7
// если были переданы данные
if(!empty($_POST[firstName]))   {
    
    /*Тут обрабатываете данные полученые из формы
    и функцией записываете их в базу*/
 
}
не совсем понятно.то что вы написали я делал с мелкими переменными. а вот как передать результат запроса?
мне нужно:
1.вывести кнопку в form .
Цитата Сообщение от sending Посмотреть сообщение
<form action="МойСкриптсФункциейЗаписи.php" method="post">
* ** * * <input type="submit" value="Send">
* * </form>
2.перед этим нужно как то переслать результат запроса.
если можно поподробнее а то голову сломал.спасибо
0
64 / 22 / 9
Регистрация: 03.11.2012
Сообщений: 327
21.08.2015, 13:25
tiretrak, у Вас есть форма:
HTML5
1
2
3
4
5
6
    <form action="" method="post">
        <input type="text" name="firstName" placeholder="firstName">
        <input type="text" name="secondName" placeholder="secondName">
        <hr>
        <input type="submit" value="Send">
    </form>
В этой форме для передачи данных указан метод POST. Для того, поймать данные из этой формы, надо отследить момент нажатия на кнопку Send и в этот момент выполнить действия. В данном случае, мы проверяем заполненность поля name, так как если он не пустое и было отправлено, значит кто-то нажал кнопку Send. далее мы ловим отправленные данные таким образом:

PHP
1
2
3
4
5
6
// если были переданы данные
if(!empty($_POST[firstName]))   {
    
    /* Здесь Вам необходимо обработать полученные данные и сделать запись в базу. */
 
}
Это условие, которое я написал выше, прописывайте в том же файле, где и форма. Если хотите использовать другой файл для обработки, то в теге <form action="" method="post"> укажите файл обработчика. Например:
HTML5
1
<form action="" method="post"> <!-- Такая запись будет означать, что файл обработчик, это тот же файл, где находится эта форма -->
HTML5
1
<form action="script.php" method="post"> <!-- В таком случае мы сослались на файл, где будет лежать код для обработки отправленных данных -->
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
21.08.2015, 13:26
tiretrak,
PHP/HTML
1
2
3
4
5
6
<form action="" method="POST">
    <input type="text" name="name" value="<?php echo $_POST['name']; ?>" placeholder="name">
    <input type="text" name="middlename" value="<?php echo $_POST['middlename']; ?>" placeholder="middlename">
    <hr>
    <input type="submit" value="Send">
    </form>
0
0 / 0 / 1
Регистрация: 02.08.2015
Сообщений: 69
21.08.2015, 13:31  [ТС]
а как быть если мне не нужно форма ввода а только кнопка.
и чтобы передать в новую форму результат запроса.
?
0
64 / 22 / 9
Регистрация: 03.11.2012
Сообщений: 327
21.08.2015, 13:39
tiretrak, как у Вас выводится таблица? Каким запросом?
0
0 / 0 / 1
Регистрация: 02.08.2015
Сообщений: 69
21.08.2015, 13:42  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$sql = "    SELECT 
                    concat(last,' ',first,' ',second) AS fio,
                    COUNT(sum) as kolvoD,
                    SUM(IFNULL(sum,0)) AS sum
                FROM clients
                    LEFT JOIN contracts ON contracts.client = clients.id
                GROUP BY clients.id
                ORDER  BY KolvoD DESC,sum DESC";
    $result = mysql_query($sql)  or die(mysql_error());
 while ($row = mysql_fetch_assoc($result))
     {
       $table .= "<tr>";
       $table .= "<td>".$N."</td>";
       $table .= "<td>".$row['fio']."</td>";
       $table .= "<td>".$row['kolvoD']."</td>";
       $table .= "<td>".$row['sum']."</td>";
       $table .= "</tr>";
       $N++;
      }
       $table .= "</table> ";
    }
все это выводится в текущую форму .а мне надо сохранить по кнопке в файл.
0
64 / 22 / 9
Регистрация: 03.11.2012
Сообщений: 327
21.08.2015, 13:53
tiretrak, тогда видимо только так: на обычную ссылку <a href="index.php?event=save">Save</a> повесьте событие и обработайте его. Так как Вы не передадите всю таблицу в обработчик, то ее придется сформировать таким же запросом в обработчике, а результат записать в файл. Я бы так сделал:

PHP
1
2
3
4
5
if(isset($_GET[event]) and $_GET[event] == "save") {
 
// тут формируйте такой же запрос, а результат пишите в файл
 
}
0
0 / 0 / 1
Регистрация: 02.08.2015
Сообщений: 69
21.08.2015, 13:57  [ТС]
а можно ли передать файл в новую форму через глобальный массив $_FILES ?
0
64 / 22 / 9
Регистрация: 03.11.2012
Сообщений: 327
21.08.2015, 14:01
tiretrak, $_FILES для загруженных файлов, а у Вас текстовые данные
0
0 / 0 / 1
Регистрация: 02.08.2015
Сообщений: 69
21.08.2015, 16:11  [ТС]
решил сделать вот так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$sql= "...";
 
if (!empty($_POST[savefile]))
    {
    echo'Файл сохранен';    
    $query = mysql_query($sql);
    $fp = fopen('file.csv', 'w');
    if($query)
    {
        while($arr = mysql_fetch_assoc($query))
        {
            fputcsv($fp, $arr,";");
        }
    }
    fclose($fp);
HTML5
1
2
3
<form method="POST">
    <input type="submit" name="savefile" placeholder="savefile" value="Сохранить" />
</form>
но проблема в том что это все в одной форме происходит. и при нажатии на кнопку ,переменная $sql , где текст запроса,оказывается пустой.файл csv записывает пустой.
0
64 / 22 / 9
Регистрация: 03.11.2012
Сообщений: 327
21.08.2015, 16:21
tiretrak, в приведенном случае проверять событие надо так:

PHP
1
if (isset($_POST[savefile]))
И здесь:

HTML5
1
2
3
<form method="POST">
    <input type="submit" name="savefile" placeholder="savefile" value="Сохранить" />
</form>
Надо убрать аттрибут placeholder - он для текстовых полей.

Еще один момент, уходите от mysql и переходите на mysqli. У них синтиксис очень похож, но разработчики обещают убрать mysql в последующих версиях.

Покажите этот файл который выполняет эти операции.
0
0 / 0 / 1
Регистрация: 02.08.2015
Сообщений: 69
21.08.2015, 18:00  [ТС]
в условие он входит и отрабатывает(файл сохраняется).
проблема в другом. как нужно объявить переменную $sql вверху текста чтобы она не очищалась ?
из за того что входя в условие текст запроса в $sql пропадает , файл сохраняется пустой.

Добавлено через 1 час 28 минут
есть предположение ,что при нажатии на кнопку, при выводе в этой же форме, переменная обнуляется.
как ее сохранить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.08.2015, 18:00
Помогаю со студенческими работами здесь

Как передать результат запроса sparql на jsp
Добрый вечер! В Сервлете методе doPost есть sparql запрос на owl документу. Полученный результат запроса нужно отправить на форму в...

Как передать в качестве параметра результат динамического запроса?
Здравствуйте! есть процедура: ALTER PROCEDURE @SourceTable nvarchar(100) AS BEGIN

Как передать результат запроса ajax в переменную javascript?
Есть функция, мне нужно получить значение переменной end в этой функции function(data) { //alert(data); end = data; } чтоб...

Как правильно вывести результат запроса?
Пытаюсь вытащить значения следующим образом: $arr = mysql_query(&quot;SELECT c1, c2, c3 FROM table WHERE c4 = '$c4'&quot;); $arr =...

Как правильно вывести результат запроса в список?
подскажите как правильно вывести результат запроса в список Процедура ТабличнаяЧастьНоменклатураНачалоВыбораИзСписка(Элемент,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru