Не много обо всем. От рыбалки до вышивания крестиком.
Write comments

Re: PHP MySQL

Чт май 05, 2016 23:33:37

Викторович писал(а):
qwertyua писал(а):If ($rw->dt_alert < $dt_cur ):

Так нельзя?

пробовал. не работает.

А после while у $rw->dt_alert есть значение? Если перед if сделать echo?
igor'OK

Re: PHP MySQL

Пт май 06, 2016 00:01:51

Наверное как-то так
Код:
$rs = mysql_query('....');
if(mysql_num_rows($rs)) {
   while($rw = mysql_fetch_object($rs)) {
      echo ($rw->dt_alert);
   }
} else {
   //.....
}
Викторович

Re: PHP MySQL

Пт май 06, 2016 09:16:04

igor'OK
Сделал так:
<?
$dt_cur = date("Ymd");
$qr= "SELECT min(dt_alert) AS dt_alert FROM alerts WHERE idusr=$idusr AND dt_alert<$dt_cur";
$rs = mysql_query($qr);
if(mysql_num_rows($rs)) {
while($rw = mysql_fetch_object($rs)){
echo ( '
<table height="25" align="center" width="100%" border="0" cellpadding="0" cellspacing="0" bordercolor="#3e779d">
<tr>
<td colspan="0" height="15"></td>
</tr>
<tr>
<td height="19" width="7%" align="center" bgcolor="#65a9d7" class="txtclient" style="BORDER-RIGHT: #E7F0F9 1px solid; BORDER-TOP: #B7CDE3 0px solid; BORDER-LEFT: #B7CDE3 0px solid; BORDER-BOTTOM: #65a9d7 px solid;"><font color="#FFFFFF"><b>Дата</b></font></td>
<td height="19" width="100%" align="center" bgcolor="#65a9d7" class="txtclient" style="BORDER-RIGHT: #E7F0F9 0px solid; BORDER-TOP: #B7CDE3 0px solid; BORDER-LEFT: #B7CDE3 0px solid; BORDER-BOTTOM: #65a9d7 px solid;"><font color="#FFFFFF"><b>Мои текущие напоминания</b></font></td>
</tr>
');
}
}
?>

В echo запихнул тот HTML который должен выводиться при условии что в таблице будет дата меньше текущей. Т.е. заменил то что было раньше echo ($rw->dt_alert); на HTML. Но если echo ($rw->dt_alert); выводилась когда условие выполнялось и не выводилось когда даты меньше текущей не было, то HTML выводиться всегда. Независимо от того есть дата меньше текущей в таблице или нет.
Почему так?
Викторович

Re: PHP MySQL

Пт май 06, 2016 15:28:55

Вот так работает:

<?
$dt_cur = date("Ymd");
$qr= "SELECT min(dt_alert) AS dt_alert FROM alerts WHERE idusr=$idusr AND dt_alert<$dt_cur";
$rs = mysql_query($qr);
while($rw = mysql_fetch_object($rs)){

if ($rw->dt_alert > 0)
{
echo ( ' HTML');
}
}
?>

Коряво или нормально?
healix

Re: PHP MySQL

Пт май 06, 2016 17:07:42

Можно соптимизировать :)
Код:
$res = mysql_query("SELECT * FROM alerts WHERE idusr = $idusr AND dt_alert < curdate() limit 1");
if( $res && mysql_num_rows($res) )
    echo('HTML');
Викторович

Re: PHP MySQL

Пт май 06, 2016 21:13:59

healix писал(а):Можно соптимизировать

Круто))) работает
Спасибо!!!!!!!
Викторович

Re: PHP MySQL

Пт июн 03, 2016 09:52:38

Коллеги,

вот еще вопрос. У меня окно с календарем открывается следующим кодом:
<td><input name="dt_alert" type="text" class="inpDate_plan" value="{DT_ALERT}" readonly onClick="if (document.layers) getMouseLoc; else if (document.all) getMouseLoc(); window.open('../common/cl.php?fnm=sale_plan{I}&enm=dt_alert', 'wow','top=100, left=600, width=230, height=190, scrollbars=no')" onMouseOver=" sActive(this)" onMouseOut="clrActive(this)"></td>

тут задано положение открытия этого окна.
А хочется что бы окно открывалось рядом с кликом курсора. 2 дня гуглю. Ни чего не нашел. Нашел много информации о том как определять координаты курсора. А вот как потом по ним позиционировать окно не нашел.
Помогите с решением.
Нужно открывать окошко рядом с кликом мыши.
igor'OK

Re: PHP MySQL

Пт июн 03, 2016 20:52:10

Окну можно задать координаты, где оно должно открыться, например window.open('...', '...', 'top=100,left=100');
Тут можно узнать какие вообще возможности есть у window.open
http://www.w3schools.com/jsref/met_win_open.asp
НО координат курсора недостаточно для вычисления положения открываемого окна, так как они относительны левого верхнего угла документа, а нам надо относительно всего экрана. Тебе понадобится положение окна браузера относительно экрана, тоесть координаты самого браузера, их можно взять у объекта window (window.screenX && window.screenY).
Тут есть более подробное объяснение где и когда их брать
http://stackoverflow.com/questions/5040 ... javascript

Имея все эти цифры можно посчитать координаты нового окна, правда там еще могут быть куча панелей у браузера, для большей точности прийдется повозиться с разницей размера окна и документа чтобы узнать размер панелей браузера, возможно есть более точный способ это сделать

Я бы советовал избегать popup windows вообще если это возможно
Викторович

Re: PHP MySQL

Пн авг 01, 2016 09:19:16

опять нужна помощь...
Создал тестовую страничку. Там 9 полей из них одно это селект но сделаный на скрипте.
Все подключил и работает. Но есть одно НО.
Селект растягивает поля над собой и под собой.
Т.е. ставлю длина селекта 100% он растягивается как бы на нужную ширину, но увеличивает верхнее и нижнее текстовое поле.
А мне нужно что бы все три поля в одной колонке были одинаковые по ширине.
Присоеденил архив. Тав все. Скрипты стили и пхп страничка.
Посмотрите может получится выравнять все это.
Спасибо.
Вложения
test.zip
(42.5 KiB) Скачиваний: 59
Викторович

Re: PHP MySQL

Пт ноя 03, 2017 09:28:56

igor'OK
Посмотри пожалуйста код:
<?
if($act=='Deltask'):
$qr = "DELETE FROM task WHERE id=$idtask";
$rs = mysql_query($qr);

$qr = "SELECT * FROM task_images WHERE idtask=$idtask";
$rs = mysql_query($qr);
while($rw = mysql_fetch_object($rs)){
$imgnm = $sql->SOne('task_images', 'nm', 'idtask', $idtask);
unlink("$path_img$imgnm");}

$qr = "DELETE FROM task_images WHERE idtask=$idtask";
$rs = mysql_query($qr);
?>

В моей клиентской базе к задаче я привязываю несколько кртинок.
При удалении задачи из базы, запись о задаче удаляется, запись в базе данных о картинках удаляется, а вот из папки с картинками удаляется только первая прикрепленная к задаче. А хочу что бы все картинки привязанные к одной задачи удалялись.
Помоги пожалуйста.
igor'OK

Re: PHP MySQL

Вс ноя 05, 2017 03:57:28

Меня смущает эта строчка, она типа должна возвращать имя файла для удаления, возможно возвращает не то что надо
Код:
$imgnm = $sql->SOne('task_images', 'nm', 'idtask', $idtask);

Эта строчка удаляет файл с диска
Код:
unlink("$path_img$imgnm");

Попробуй перед ней добавить
Код:
echo "$path_img$imgnm; ";
чтобы понятно какие файлы она пытается удалить
Внизу можешь добавить
Код:
exit;
чтобы остановить выполнение скрипта (предотвратить переадресацию если она там есть)
Викторович

Re: PHP MySQL

Вт ноя 07, 2017 11:03:30

igor'OK
Вот так заработало!!!!
$qr = "SELECT * FROM task_images WHERE idtask=$idtask";
$rs = mysql_query($qr);
while($rw = mysql_fetch_object($rs)){
$imgnm = array($rw->nm);
foreach ($imgnm as $filename){
unlink("$path_img$filename");
}}

Проблема была таки в строке:
$imgnm = $sql->SOne('task_images', 'nm', 'idtask', $idtask);
возращала только имя (nm) первого файла из привязанных к задаче. И его же удаляла. Остальные файлы к задаче оставались в папке.
Теперь удаляет все файлы привязанные к idtask.
Спасибо за наводку!!!
Викторович

Re: PHP MySQL

Чт ноя 16, 2017 13:47:07

igor'OK
Еще вопрос...
на странице клиента выводится много табличек. Когда таблички большие, то много приходится крутить прокурутку страницы.
Сделал кнопки скрыть / показать. Кнопки работают, но для каждой таблицы есть свой скрипт и свои id кнопки и id для <tr> которые скрываются.
Не могу это сделать правильно, что бы был один скрипт и только разные id для кнопок и <tr> которые скрываются.
Может ты сможешь помочь.
Сейчас для двух таблиц это выглядит так:
<script>
$(function () {
$('#btnplan').click(function () {
$(this).text($('.plan').is(':visible') ? 'Показать' : 'Скрыть');
$('.plan').toggle();
});
});
</script>
<script>
$(function () {
$('#btnсont').click(function () {
$(this).text($('.cont').is(':visible') ? 'Показать' : 'Скрыть');
$('.cont').toggle();
});
});
</script>
<html>
<span id="btnсont" class="btn">Скрыть</span>
<tr class="cont" style="display:yes">
<td>...</td>
...
</tr>

<span id="btnplan" class="btn">Скрыть</span>
<tr class="plan" style="display:yes">
<td>...</td>
...
</tr>
igor'OK

Re: PHP MySQL

Пт ноя 17, 2017 01:12:30

На Ангуларе это бы выглядело гораздо проще, советую

Код:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script>
<div ng-app>
    <button ng-click="showAdditionalRows=!showAdditionalRows">{{showAdditionalRows ? 'Hide' : 'Show'}} Additional Rows</button>
    <table>
        <tbody>
            <tr>
                <td>row 1</td>
                <td>row 1</td>
                <td>row 1</td>
                <td>row 1</td>
            </tr>
            <tr ng-show="showAdditionalRows">
                <td>row 2</td>
                <td>row 2</td>
                <td>row 2</td>
                <td>row 2</td>
            </tr>
            <tr>
                <td>row 3</td>
                <td>row 3</td>
                <td>row 3</td>
                <td>row 3</td>
            </tr>
            <tr ng-show="showAdditionalRows">
                <td>row 4</td>
                <td>row 4</td>
                <td>row 4</td>
                <td>row 4</td>
            </tr>
        </tbody>
    </table>
</div>
Викторович

Re: PHP MySQL

Пт ноя 17, 2017 10:37:27

igor'OK
Спасибо.
разобрался.
получилось.
Действительно так проще.
Write comments