[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Фильтрации таблицы с помощью php запросов
Страницы: 1, 2
rusline
sergeiss
Данный возвращает данные таблицы,
header('location: transactions.php'); после нажатие на кнопку фильтрации, должно перенаправить пользователя опять туда где он находился ранее.
И закрываем соединение с базой данных
rusline
sergeiss
Ну и соответственно выведит данные в таблицу. На данный момент если пользователь выбирал по месяцу, то отобразится определенный месяц, который пользователь выбрал, если год, то выведит эти данные за год
rusline
sergeiss
Без
return $transactions;
не будет работать foreache
rusline
Если делать даже 2 input, то у меня все равно застревает в файле function.php, то есть не получается обновить данные
rusline
Или скинуть исходник для примера?
sergeiss
Цитата (rusline @ 18.12.2016 - 15:57)
header('location: transactions.php'); после нажатие на кнопку фильтрации, должно перенаправить пользователя опять туда где он находился ранее.
И закрываем соединение с базой данных

Проблема в том, что перед header() у тебя находится return - поэтому до строчки с header() и к закрытию соединения с БД выполнение кода просто не дойдет.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
rusline
sergeiss То есть их луше сделать закрытие и вывести пользователя до того как выполнится return? Правильно я понял
rusline
sergeiss Я попробовал, тогда ничего не выводится, т.е долго грузит и не может выполнить запрос. Тогда как уйти от этой проблемы, чтобы изначально выводились данные и потом обновились данные?
rusline
Или это делать на ajax
sergeiss
rusline, ты определись с логикой, что ты хочешь получить. Опиши словами. И лучше в одном сообщении, чтобы был связный текст smile.gif А не в 3-5 разных сообщениях.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
walerus
Портянка
посмотреть
<?php

//Отображение транзакции
function getTarget()
{
session_start();
$idUser=$_SESSION['id'];
$startCurrentMonth=date('Y-m-01');
$endCurrntMonth=date('Y-m-31');
$sqlTrans="
SELECT transactions.typ, transactions.data, transactions.Sum,transactions.comment, score.score, Categoria.category, subcategory.subcategory, organization.organization
FROM transactions
LEFT JOIN score ON score.idScore = transactions.idScore
LEFT JOIN Categoria ON Categoria.idCateg = transactions.idCateg
LEFT JOIN subcategory ON subcategory.idSubCat = transactions.idSubCat
LEFT JOIN organization ON organization.idOrg = transactions.idOrg
WHERE
transactions.idUser='
$idUser' AND data BETWEEN '$startCurrentMonth' AND '$endCurrntMonth'
ORDER BY data DESC"
;

/*
Запрос в мускуль это треш капитальный !, кто называет таблицы и поля одним и тем же названием ???
пример: ( score.score, subcategory.subcategory, organization.organization ),

неужели трудно добавить символ куда нибудь?
пример: ( t_score.score, t_subcategory.subcategory, t_organization.organization ),
где: `t_score` - Таблица, `score` - ячейка, так понятнее и не будет путаницы чего куда и где

Далее, почему НЕ используем тильду ???, жалко места в блокноте? или на сервере?

$sqlTrans="
SELECT
`transactions`.`typ`, `transactions`.`data`, `transactions`.`Sum`, `transactions`.`comment`,
`score`.`score`, `Categoria`.`category`, `subcategory`.`subcategory`, `organization`.`organization`
FROM
`transactions`
LEFT JOIN
`score` ON `score`.`idScore` = `transactions`.`idScore`
LEFT JOIN
`Categoria` ON `Categoria`.`idCateg` = `transactions`.`idCateg`
LEFT JOIN
`subcategory` ON `subcategory`.`idSubCat` = `transactions`.`idSubCat`
LEFT JOIN
`organization` ON `organization`.`idOrg` = `transactions`.`idOrg`
WHERE
`transactions`.`idUser` = '" . $idUser . "'
AND
`data` BETWEEN '" . $startCurrentMonth . "' AND '" . $endCurrntMonth . "'
ORDER BY `data` DESC";

Да текста больше согласен, но понятнее где команды, где переменные и т.д.

*/



$queryTrans = mysql_query($sqlTrans) or die(mysql_error());
$transactions = array();
while($rowTrans = mysql_fetch_array($queryTrans))
{
$transactions[]=$rowTrans;
}
return $transactions;
}

$transactions = getTarget(); // получили результат $transactions по дефолту за текущий месяц из функции getTarget(), на сколько я понял...

// Начались проверки POST данных...

if (isset($_POST['week'])) {
$dateStart = new date("last monday");
$dateEnd = new date("next monday");
} elseif (isset($_POST['month'])) {
$dateStert = new date("mignight first day of this month");
$dateEnd = new date("mignight first day of next month");
} else {
$dateStart = new date("first day of january");
$dateEnd = new date("first day of january next year");
}

/*
И тут же запрашивается НОВЫЙ результат $transactions, согласно POST параметрам...
Назревает вопрос !, зачем делать это: $transactions = getTarget();, если все равно по условию "else", переменные $dateStart, $dateEnd,
получат..., кстати непонятно что они получат, ТАКОЕ: new date("first day of january") - работает? или все же какой то свой класс используется ?
в яндексе гуглил - ненашел ((...
так вот, после условия else, все равно выполнится функция filter..., в общем непонятно малость логика сего.
*/

$transactions = filter($dateStart, $dateEnd);


/*
код ниже - непонятно для чего используется переменная $i
*/


$i=1;
while ($row=mysql_fetch_assoc($query)) {
echo "<option value=".$row['idScore'].">".$row['score']."</option>";
$i++;
}

/*
Не стоит так писать - foreach ($transactions as $transact)
если нет воображения для генерации переменных, то для того что бы не "сливались" имена, пишите что оно есть на самом деле, т.е.
foreach ( $transactions as $transactions_key => $transactions_value )

Почему не ставим ; в конце ? тоже экономим место?
Пишите код "просторнее", самому же читать потом, а то выглядит как - "вырвиглаз"...

<td><?=$transact['typ']?></td> // bad boy
<td><?=$transact['typ']; ?></td> // good boy

*/

?>

<!-- Часть кода где ппц натыкано "открытий закрытий PHP", ИМХО - читать тяжело -->
<
div id="organizationBox">
<
select name="organization">
<?php foreach ($organization as $organ): ?>
<option value="<?=$organ['idOrg']?>"><?=$organ['organization']?></option>
<?php endforeach; ?>
</select>
</
div>

<!--
Часть кода ИМХО - более читабельно, но на вкус и цвет как говорится... -->
<
div id="organizationBox">
<
select name="organization">
<?php
foreach ($organization as $organ){
echo '<option value="' . $organ['idOrg'] . '">' . $organ['organization'] .'</option>';
}
?>
</select>
</
div>
На фото, вы уже определитесь с кавычками либо двойные либо одинарные, в некоторых местах и те и другие и там где не нужно... ( по подсветки синтаксиса, видно, что пошло "что то" не так...)

зы: можно собрать весь скрипт в архив и куда нибудь его выложить, так же написать что оно должно делать и как... так будет понятнее, если конечно ничего секретного в нем нет, а то нам только дай :D
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.