|
|
|
| Извините за настойчивость, но не могли бы вы помочь это внедрить в php, мне немного это тяжеловато.
есть кнопка
<input name="Set_dublicate_product" type="submit" value="---" class="CRM_Button">
|
и ее обработчик
if ($_POST[Set_dublicate_product])
{
$SQL = urlencode("SELECT * FROM $tbl_Katalog
LEFT JOIN $tbl_Katalog_Names
ON $tbl_Katalog.id_photo = $tbl_Katalog_Names.id_photo
WHERE $tbl_Katalog_Names.id_lang = '$GLOBALS[id_lang]' AND
$tbl_Katalog.Status != 2
ORDER BY $tbl_Katalog.Output_Ord");
$path = $GLOBALS[path_post]."update_repeated.php";
if($erno==0)
{
$thanks = "Файл Обновляется! Подождите несколько минут.";/* Осталось <span id='Time_Span'></span>";*/
$init_timer = true;
}
|
else {$thanks = "Ошибка сетевого соединения";}
}
и следовательно файл update_repeated.php
<?
session_start ();
@set_time_limit(0);
@error_reporting(7);
$cur_path = '../';
$always = true;
require $cur_path."BD_Block.php";
require $cur_path."Library.php";
$PHP_SELF = "update_repeated.php";
$SQL = $mysql_query("UPDATE
(SELECT $tbl_Katalog.scu, MIN($tbl_Katalog.priority) AS minimum FROM $tbl_Katalog
GROUP BY $tbl_Katalog.scu) AS mink
LEFT JOIN $tbl_Katalog as k ON
k.scu = mink.scu AND k.priority = mink.minimum
SET k.Show_ord = 1");
?>
|
Данным образом я пробовал внедрить, но значения в БД не меняются.
Не могли бы Вы помочь, или может попробовать объяснить нюансы? | |
|
|
|
|
|
|
|
для: soup-bubble
(06.10.2011 в 12:00)
| | Не понятно, где и как у вас используется $path? | |
|
|
|
|
|
|
|
для: cheops
(06.10.2011 в 12:28)
| | $path = $GLOBALS[path_post]."update_repeated.php"; - путь к файлу update_repeated.php;
$GLOBALS[path_post] - путь к каталогу, который содержит update_repeated.php; и прописан он в файле с конфигом | |
|
|
|
|
|
|
|
для: soup-bubble
(06.10.2011 в 12:33)
| | Путь $path потом где вызывается при помощи инструкций include/require/include_once/require_once? Если да, сообщите какой точно? | |
|
|
|
|
|
|
|
для: cheops
(06.10.2011 в 12:34)
| | не вызывается | |
|
|
|
|
|
|
|
для: soup-bubble
(06.10.2011 в 13:00)
| | Тогда его нужно где-то вызывать, иначе как PHP узнает, что файл с таким названием нужно пропустить через интерпретатор? | |
|
|
|
|
|
|
|
для: cheops
(06.10.2011 в 12:34)
| | Есть обработчик еще одной кнопки - полный его код - следующий:
if ($_POST[Set_Partner_Upload])
{
$SQL = urlencode("SELECT * FROM $tbl_Katalog
LEFT JOIN $tbl_Katalog_Names
ON $tbl_Katalog.id_photo = $tbl_Katalog_Names.id_photo
WHERE $tbl_Katalog_Names.id_lang = '$GLOBALS[id_lang]' AND
$tbl_Katalog.Status != 2
ORDER BY $tbl_Katalog.Output_Ord");
$hash = md5("qdfhqev4y1245hdf".$id_unload);
$path = $GLOBALS[path_post]."made_csv_active.php";
$data = "b=1&hash=$hash&SQL=$SQL&e=1";
$request ="POST $path HTTP/1.1\r\n";
$request.="Host:".$_SERVER[HTTP_HOST]." \r\n";
$request.="Accept: */*\r\n";
$request.="Content-Type: application/x-www-form-urlencoded\r\n";
//$request.="Referer: 127.0.0.1 \r\n";
$request.="Connection: Keep-Alive\r\n";
$request.="Content-Length: ".strlen($data)."\r\n";
$request.="User-Agent: ".$_SERVER[HTTP_USER_AGENT]."\r\n";
$request.="\r\n\r\n";
$request.=$data;
$f_socet = fsockopen($GLOBALS[host_socket],80, $erno, $erstr);
stream_set_blocking($f_socet, 0); // отключение блокировки (чтобы не ждал завершения выполнения)
stream_set_timeout($f_socet, 30); // максимальное время отправки одного потока
fputs($f_socet, $request); // отсылка запроса сокету;
if($erno==0)
{
$thanks = "Файл создается! Подождите несколько минут.";/* Осталось <span id='Time_Span'></span>";*/
$init_timer = true;
}
else {$thanks = "Ошибка сетевого соединения";}
}
|
Может следует что-то добавить из этого в обработчик предыдущей кнопки? | |
|
|
|
|
|
|
|
для: soup-bubble
(06.10.2011 в 13:29)
| | А чем вызывана такая сложная (и помоему не безопасная) схема вызова запроса? Вы передаете SQL-запрос через POST-параметр, а почему бы файл $path просто не вызвать при помощи конструкции require()?
| |
|
|
|
|
|
|
|
для: cheops
(06.10.2011 в 13:39)
| | а вместо чего и где это вставить?
Может быть будет проще написать все в 1 файле? Что-то на подобии такого:
<input name="Set_dublicate_product" type="submit" value="---" class="CRM_Button">
<?
if ($_POST[Set_dublicate_product])
{
$SQL = mysql_query("update $tbl_Katalog k,(select $tbl_Katalog.scu, `$tbl_Katalog.Status`, min($tbl_Katalog.priority) as priority from $tbl_Katalog where `$tbl_Katalog.Status`=1 group by $tbl_Katalog.scu) t
set $tbl_Katalog.show_ord=1
where k.scu=t.scu and k.`status`=t.`status` and k.priority=t.priority");
if($erno==0)
{
$thanks = "Файл создается! Подождите несколько минут.";/* Осталось <span id='Time_Span'></span>";*/
$init_timer = true;
}
else {$thanks = "Ошибка сетевого соединения";}
}
?>
|
| |
|
|
|
|
|
|
|
для: soup-bubble
(06.10.2011 в 14:12)
| | Да, или так. Добавьте временно вызов mysql_affected_rows(), чтобы выяснить происходит реальное обновление базы данных или нет.
<input name="Set_dublicate_product" type="submit" value="---" class="CRM_Button">
<?
if ($_POST[Set_dublicate_product])
{
$SQL = mysql_query("update $tbl_Katalog k,(select $tbl_Katalog.scu, `$tbl_Katalog.Status`, min($tbl_Katalog.priority) as priority from $tbl_Katalog where `$tbl_Katalog.Status`=1 group by $tbl_Katalog.scu) t
set $tbl_Katalog.show_ord=1
where k.scu=t.scu and k.`status`=t.`status` and k.priority=t.priority");
echo "Было обновлено ".mysql_affected_rows($SQL)." строк";
if($erno==0)
{
$thanks = "Файл создается! Подождите несколько минут.";/* Осталось <span id='Time_Span'></span>";*/
$init_timer = true;
}
else {$thanks = "Ошибка сетевого соединения";}
}
?>
|
| |
|
|
|
|
|
|
|
для: soup-bubble
(06.10.2011 в 12:00)
| | В любом случае, временно добавьте проверку сколько фактически было обновлено строк update_repeated.php
<?php
...
$SQL = $mysql_query("UPDATE
(SELECT $tbl_Katalog.scu, MIN($tbl_Katalog.priority) AS minimum
FROM $tbl_Katalog
GROUP BY $tbl_Katalog.scu) AS mink
LEFT JOIN $tbl_Katalog as k ON
k.scu = mink.scu AND k.priority = mink.minimum
SET k.Show_ord = 1");
echo "Было обновлено ".mysql_affected_rows($SQL)." строк";
?>
|
| |
|
|
|