PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 6
Dmitrey Отправлено: 03 Сентября, 2015 - 15:43:28 • Тема: раскидать данные из БД по таблицам • Форум: Хранение данных, их вывод и обработка

Ответов: 0
Просмотров: 577
Добрый день.
Знающие люди, помогите разобраться.
Есть таблица в базе:

Fam Num Sum1 Sum2
Фамилия1 923 100 200
Фамилия1 936 111 222
Фамилия1 923 2247 45
Фамилия2 903 785 5444
Фамилия2 926 0 785

получить нужно:
фамилия1
923 100 200
936 111 222
923 2247 45
итоговая сумма по фамилии

фамилия2
903 785 5444
926 0 785
итоговая сумма по фамилии

Пытаюсь сделать так:
<?php $lFam = null;
while ($row = mysqli_fetch_assoc($result)){
if ($row['fam'] != $lFam){
$tsum = 0;
$osum = 0;
$lFam = $row['fam'];
$tsum = $row['sum1'] + $row['sum2'];
$tsum += ($row['sum1'] + $row['sum2'])*0.13;
$osum = $tsum;
?>
<table>
<tr>
<td>
<?php echo "{$lFam}" ?>
</td>
<td>
май 2015
</td>
</tr>
<tr>
<th> номер </th>
<th> сумма </th>
<th> сумма</th>
</tr>
<tr>
<td> <?php echo "{$row['num']}" ?> </td>
<td> <?php echo "{$row['sum1']}" ?> </td>
<td> <?php echo "{$row['sum2']}" ?> </td>
</tr>
<?php
} elseif ($row['fam'] == $lFam){
$lFam = $row['fam'];
$tsum = $row['sum1'] + $row['sum2'];
$tsum += ($row['sum1'] + $row['sum2'])*0.13;
$osum += $tsum;
?>
<tr>
<td> <?php echo "{$row['num']}" ?> </td>
<td> <?php echo "{$row['sum1']}" ?> </td>
<td> <?php echo "{$row['sum2']}" ?> </td>
</tr>
<tr>
<td> <?php echo "{$osum}" ?> </td>
</tr>
<tr></tr>
</table>
<?php }

}
?>

Считает правильно и выводит в виде таблиц, но выводит в таблицу только 1 и 2 строки и итоговую сумму(osum) отображает в таблице только за 2 строчки. Где больше 2х строк, он выбрасывает их за таблицу в одну строку без пробелов, хотя все расчёты проводятся. Если таблицу не использовать и выводить через echo с разделителями и br, то всё расставляет по столбикам.
Не могу понять в чём загвоздка?
Dmitrey Отправлено: 23 Января, 2013 - 09:42:30 • Тема: Как передать обработку с кнопки • Форум: Вопросы новичков

Ответов: 1
Просмотров: 74
Добрый день. Php только изучаю и столкнулся с такой ситуцией: делаю выборку из базы и вывожу построчно данные с кнопочками для действий с этими данными(редактировать и удалить). Вывод реализовал через поиск, чтобы не выводить все записи таблицы. Как мне сделать необходимые действия при нажатие на кнопку?

Код:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$connect=mysql_connect("localhost", "user", "user") or die ("не удалось подключиться к серверу".mysql_error());
$db=mysql_select_db ("book") or die ("не удалось подключиться к базе".mysql_error());
if ($_POST['author'] != "" || $_POST['bname'] != "" && $_POST['sort']=="aut"){
$result=mysql_query("SELECT avtor,name,content FROM books WHERE avtor LIKE '%".$_POST['author']."%' AND name LIKE '%".$_POST['bname']."%' ORDER BY avtor", $connect);
}
if ($_POST['author'] != "" || $_POST['bname'] != "" && $_POST['sort']=="bnam"){
$result=mysql_query("SELECT avtor,name,content FROM books WHERE avtor LIKE '%".$_POST['author']."%' AND name LIKE '%".$_POST['bname']."%' ORDER BY name", $connect);
}
while ($row = mysql_fetch_assoc($result)) {
echo "
<form>
<tr>
<td>
<textarea cols=\"40\" rows=\"5\" wrap=\"physical\" name=\"auth_ch\"> {$row['avtor']} </textarea>
</td>
<td>
<textarea cols=\"47\" rows=\"5\" wrap=\"physical\" name=\"name_ch\"> {$row['name']} </textarea>
</td>
<td>
<textarea cols=\"90\" rows=\"5\" wrap=\"physical\" name=\"soder_ch\"> {$row['content']} </textarea>
</td>
<td>
<INPUT type=\"button\" value=\"изменить\">
&nbsp
<INPUT type=\"button\" value=\"удалить\">
</td>
</tr>
</form>";}
mysql_free_result ($result);
mysql_close ($connect); }
?>

с AJAX не знаком и как такого желания нету. Хреново.) Реально ли это реализовать средствами php? может через передачу данных из строки в другой скрипт, но каким образом и чтобы изменялись данные только строки,а не всей страницы, не соображу.
Dmitrey Отправлено: 14 Января, 2013 - 10:05:06 • Тема: выбор данных mysql и их сравнение • Форум: Работа с СУБД

Ответов: 6
Просмотров: 3526
Мелкий Супермодератор, сасибо большое!
Использовал фиктивное поле при выводе из таблицы и выбирал данные только по месяцу.

$v = mysql_query("SELECT fam, FName, SName, bdate, DATE_FORMAT(bdate, '%d.%m.%Y') as 'bddate',DATE_FORMAT(bdate, '%d') as 'bday' FROM births
WHERE MONTH(bdate) = MONTH(CURDATE())
/* WHERE DATE_FORMAT(bdate, '%m') = DATE_FORMAT(CURDATE(), '%m') */ - решил оставить на всякий случай
ORDER BY DATE_FORMAT(bdate, '%d')");

а дальше уже работаю с переменной $row['bday'] в while ( $row=mysql_fetch_assoc($v)) {

ещё раз огромное спасибо за разъяснения и подсказки.
Dmitrey Отправлено: 14 Января, 2013 - 07:04:01 • Тема: выбор данных mysql и их сравнение • Форум: Работа с СУБД

Ответов: 6
Просмотров: 3526
Мелкий Супермодератор,
объясните,пожалуста, интервал берётся от сегодняшнего числа (14.01.2013). Но записи в таблицах имеют другой год (1989 например).Такой аспект влияет на выборку данных? Или он выбирает сначало по дням, потом по месяцам, потом по годам?
Извините,если спрашиваю глупость.
Dmitrey Отправлено: 11 Января, 2013 - 19:59:19 • Тема: выбор данных mysql и их сравнение • Форум: Работа с СУБД

Ответов: 6
Просмотров: 3526
а данная конструкция будет выводить записи, если они раньше первого числа месяца,т.е. выведет ли она 29 и 30 января если сегодня 1 февраля?Возможно глупый вопрос,но знать важно.
Dmitrey Отправлено: 11 Января, 2013 - 16:03:17 • Тема: выбор данных mysql и их сравнение • Форум: Работа с СУБД

Ответов: 6
Просмотров: 3526
есть таблица с фио(отдельный столбец) и датой(отдельный столбец) в MySQL. Необходимо проверить соответствие каждой даты из базы сегодняшнему дню(NOW) и двум дням раньше. Если дата из базы равна сегодняшнему дню,или соответствует любому из дней раньше сегодняшнего, вывести всю строку с ФИО и датой. При выборе из базы произвожу форматирование даты
$v = mysql_query("SELECT fam, FName, SName, bdate, DATE_FORMAT(bdate, '%d.%m.%Y') as 'bddate' FROM births");
while ( $row=mysql_fetch_assoc($v)){}.
Но вот каким образом сформулировать это сравнение не догоняю.Хотел в запросе к базе сделать,чтобы выбирались даты только с сегодняшним месяц,потом сравнивать только дни,но не понимаю как это реализовать. Потом хотел оформить запрос к базе с вывод в отдельные переменные дня и месяца,затем сравнивать в php сначало месяц,потом день и при совпадении выводить строчку.Но опять упёрся в недостаток опыта и знаний.
Помогите,пожалуйста.Третий день читаю форумы и мануалы,но не выходит каменный цветочек.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB