PHP: <? include ("db.php"); $m = mysql_query("SELECT `id`, `51840`.`tmc`, `nametmc` FROM `51840` UNION SELECT sum(`kol`)`kol`, '', '' FROM `prihodfakt` JOIN `51840` on `51840`.`tmc` = `prihodfakt`.`tmc`"); $r = mysql_fetch_array($m); ?> <table border=1> <tr> <td align=center>ID</td> <td align=center>ТМЦ</td> <td align=center>Наименование</td> <td align=center>Поступление</td> <td align=center>Оприходовано</td> <td align=center>Расход</td> </tr> <? while ($r = mysql_fetch_array($m)){ ?> <tr> <td align=center><? echo $r['id'] ?></td> <td align=center><? echo $r['tmc'] ?></td> <td align=center><? echo $r['nametmc'] ?></td> <td align=center><? echo $r['kol'] ?></td> <td align=center></td> <td align=center></td> </tr> <? } ?> </table> <? ?>
безумие какое-то. Ты два запроса объединил с какой вообще целью? Что вообще ты выбираешь первым запросом? Что вообще ты делаешь?
Первым запросом выбираем код ТМЦ наименование изделия и его id потом ищем в таблице расходфакт sum(kol) где `51840`.tmc = `rashodfakt`.`tmc`
ну сделай двумя запросами. так можно что угодно объединить в юнион, но объединяют одинаковые данные обычно, а не просто два не особо связанных запроса... --- Добавлено --- муть какая-то на картинке
Вот и пытаюсь затолкать все в 1 запрос. --- Добавлено --- Почему муть? Ладно понятно. Чем могли тем помогли как говориться. Буду дальше себе мозг парить
ну дружище, ты пойми, два запроса это два запроса, даже если в одном UNION позволяет объединять запросы, т.е. их заведомо не один. То, что ты их разом послал не делает их легче.
Да это понятно. Дело в том что что он мне говорит мол $r['kol'] не существует. Я немного в затруднении мол как не существует то? --- Добавлено --- Таких строк как на картинке может быть до 1000 на странице и запускать расчеты в цикле по каждой строке не вареант. Вот и пытаюсь изобрести велосипед Если их не послать разом то прийдется засовывать подсчет по базам prihod, prihodfakt, rashod в цикл, а этой фу-фу-фу как плохо
var_dump() =) Эмм. Ты не понимаешь. У тебя в юнионе два запроса. Тебя это от цикла: раз - не спасёт, два - количество запросов не уменьшит. Тебе надо выбирать сначало одно по всем товарам, потом другое по всем товарам, потом в пхп с этими данными работать. Запрос в базу данных возвращает тебе таблицу. Подумай об этом.
String (18) "0.79151596" Нафига мне такой вид? --- Добавлено --- 4 таблицы. как их тогда вытащить и обработать я не догоняю. ну тупой я че поделать
Все у меня взрывается мозг или то что от него болтается на нитке которая натянута от уха до уха. Прошу помощи напрямую! Люди добрые помогите модифицировать говнокод дабы максимально снизить нагрузку на сервер, но сохранить функционал. код ниже: PHP: <? if (isset($_SESSION['login'])){ if ($_SESSION['login'] =='') { unset ($_SESSION['login']);}} if (isset($_SESSION['password'])){ if ($_SESSION['password'] =='') { unset ($_SESSION['password']);}} if (!isset($_SESSION['login']) or !isset($_SESSION['password'])){ echo "<html><head><meta http-equiv='Refresh' content='0; URL=login.php?info=5'></head></html>"; } if(isset($_POST['submit'])){ if ($_POST['ty'] == 1){ $tm = $_POST['z']; $resultishod = mysql_query ("SELECT `id`, `datepos`, `tmc`, `nametmc`, `edizm`, DATE_FORMAT(reg_date,'%d.%m.%Y') as regdate, `img` FROM `51850` WHERE '$tm'=`tmc` ORDER BY `id` DESC"); $myrows = mysql_fetch_array($resultishod); } elseif($_POST['ty'] == 2){ $tm = $_POST['z']; $resultishod = mysql_query ("SELECT `id`, `datepos`, `tmc`, `nametmc`, `edizm`, DATE_FORMAT(reg_date,'%d.%m.%Y') as regdate, `img` FROM `51850` WHERE `nametmc` LIKE '%$tm%' ORDER BY `id` DESC"); $myrows = mysql_fetch_array($resultishod); } } elseif(!isset($_POST['submit'])){ $resultishod = mysql_query ("SELECT `id`, `datepos`, `tmc`, `nametmc`, `edizm`, DATE_FORMAT(reg_date,'%d.%m.%Y') as regdate, `img` FROM `51850` ORDER BY `id` DESC"); $myrows = mysql_fetch_array($resultishod); } ?> <h3>Склад 51850</h3><hr> <form action="/main.php?page=51850" method="post" enctype="multipart/form-data"> Искать по: <select name="ty"> <option value="1">ТМЦ</option> <option value="2">Название</option> </select>     Значение: <input type="text" name="z"> <input type="submit" name="submit" value="Искать"> </form> <table width="100%" class="wp-table"> <tr> <td class="name" align="center"> ID </td> <td class="name" align="center">Фото </td> <td class="name" align="center"> Дата внесения</td> <td class="name" align="center"> TMЦ </td> <td class="name" align="center"> Название ТМЦ </td> <td class="name" align="center"> ПКИ(факт.) </td> <td class="name" align="center"> ПКИ (опр.) </td> <td class="name" align="center"> ПКИ (выд.) </td> <td class="name" align="center"> ПКИ (ост.) </td> <td class="name" align="center"> ед. изм. </td> </tr> <? do{ $res = mysql_query ("SELECT name FROM edkod WHERE '$myrows[edizm]' = `id`"); $myres = mysql_fetch_array($res); $tmc = trim($myrows['tmc']); $aa = mysql_query("SELECT * FROM prihod WHERE '$tmc'=tmc"); $bb = mysql_fetch_array($aa); $b=0; $n=0; $s=0; $rs=0; while($bb=mysql_fetch_array($aa)){ $b=$b+$bb['kol']; $s=$s+$bb['rashod']; } $mm = mysql_query("SELECT * FROM prihodfakt WHERE '$tmc'=tmc"); $nn = mysql_fetch_array($mm); while($nn=mysql_fetch_array($mm)){ $n=$n+$nn['kol']; } $r = mysql_query("SELECT * FROM rashodfakt WHERE '$tmc'=tmc"); $rr = mysql_fetch_array($r); while($rr = mysql_fetch_array($r)){ $rs=$rs+$rr['kol']; } $p = $n-$rs; if ( $b > $n){ $color2 ="#fe9191"; $color1 ="#73a8f7"; } if ( $b < $n){ $color2 ="#73a8f7"; $color1 ="#fe9191"; } if ( $b == $n){ $color2 ="#93ff96"; $color1 ="#93ff96"; } if ($p > 0) { $col = "#c6f99d"; } if ($p == 0) { $col = "#f17171"; } $im = $myrows['img']; if (empty($im)){ $img = '<img src=image/pki/nofoto.png width=75px height=75px>'; } else { $img = "<a rel='example_group' href='image/pki/".$im."'><img src='image/pki/".$im."' width='75px' height='75px'></a>"; } echo " <tr> <td align=center class=name><font color=#fff><b>$myrows[id]</b></font></td> <td align=center class=cont height=75px width=75px>$img</td> <td align=center class=cont><a class=big href=main.php?page=fullsklad&tmc=$myrows[tmc]&sklad=51850>$myrows[regdate]</a></td> <td align=center class=cont><a class=big href=main.php?page=fullsklad&tmc=$myrows[tmc]&sklad=51850>$myrows[tmc]</a></td> <td align=center class=cont><a class=big href=main.php?page=fullsklad&tmc=$myrows[tmc]&sklad=51850>$myrows[nametmc]</a></td> <td align=center class=cont bgcolor=$color1><b><a class=big href=main.php?page=fullsklad&tmc=$myrows[tmc]&sklad=51850>$n</b></a></td> <td align=center class=cont bgcolor=$color2><b><a class=big href=main.php?page=fullsklad&tmc=$myrows[tmc]&sklad=51850>$b</b></a></td> <td align=center class=cont bgcolor=#e8851a><b><a class=big href=main.php?page=fullsklad&tmc=$myrows[tmc]&sklad=51850>$rs</b></a></td> <td align=center class=cont bgcolor=$col><b><a class=big href=main.php?page=fullsklad&tmc=$myrows[tmc]&sklad=51850>$p</b></a></td> <td align=center class=cont><a class=big href=main.php?page=fullsklad&tmc=$myrows[tmc]&sklad=51850>$myres[name]</a></td> </tr>"; } while ($myrows = mysql_fetch_array($resultishod)); ?> </table>
завязывай ты с этим шаманством ты б хоть мой пинпай взял, если тебе нормальные cms не в радость. инъекция тебе за это деньги платят?
Нет не платят как тогда ты представляешь проверку на существование сессии ? Защиту от прямого обращения к странице сайта?
1. Проверка на наличие ссесий. Если сессия пустая то она убивается. 3. стройокой проверяем убита ли была ссесия или нет. Если убита то выкидываем с сайта на авторизацию
нет. ты хочешь это сделать. а что именно делаешь в этих строках опиши пожалуйста по командам, по отдельным словам в этих строках. что конкретно там происходит? и как именно выкидываем? --- Добавлено --- на всякий случай поясню, что раз я спрашиваю так, то я не считаю, что там ты делаешь то, что ты считаешь, что ты делаешь.
ЧЕ за бред? и так же все написано: Если (существует($_SESSION['login'])){ если ($_SESSION['login'] =='ПУСТАЯ') { уничтожаем ($_SESSION['login']);}} тоже самое с password Если (не существует($_SESSION['login']) или не существует($_SESSION['password'])){ перенаправляем на страницу login.php с переменной $_GET['info'] echo "<html><head><meta http-equiv='Refresh' content='0; URL=login.php?info=5'></head></html>"; exit; }
я понимаю твоё возмущение от того, что по моему мнению, твои ожидания расходятся с реальностью. Это вообще единственная причина, почему люди раздражаются. да. там написано именно это и только это, и ничего нет про уничтожение сесси. Это раз. два. Нафига тебе вообще хранить в сессии пароль? И логин? =) Только ты не пыхти, а постарайся взвешенно проанализировать своё решение. и экзит тоже - плохо.
Для идентификации пользователя. И проверки в дальнейшем на соответствие данных. Подменяют id а тут херак и пароль с логином с сессией по id не совпадает. unset - разве не удаляет переменную? https://php.ru/manual/function.unset.html unset (PHP 4, PHP 5, PHP 7) unset — Удаляет переменную А exit то чего натворил что плохим стал? Надо прервать выполнение скрипта пишем exit. exit (PHP 4, PHP 5, PHP 7) exit — Выводит сообщение и прекращает выполнение текущего скрипта