PHP.SU

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

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

> Найдено сообщений: 19
komiller Отправлено: 24 Октября, 2012 - 16:02:04 • Тема: Добавление новой процедуры в HTTP-запрос • Форум: HTTP и PHP

Ответов: 0
Просмотров: 664
Прошу помочь опыту мало в программировании и хотелось бы помощи,
есть код готовый обрабатывает запросы которые получает по HTTP в виде хидеров.

switch ($SoapAction)
{

case "STR_RevertRQ": $Message = strrev ($Message); break;
case "STR_UpperRQ": $Message = strtoupper($Message); break;
case "STR_LowerRQ": $Message = strtolower($Message); break;
default: WriteSoapError("INVALID_ACTION", "Invalid Action: '$SoapAction'");
}

Хочу теперь чтобы при отправке параметра $Message данные записывались в БД, и для этого сделал примерно так:

switch ($SoapAction)
{
case "STR_RevertRQ1":
$tsql = "insert into Task(Message) values ('$Message')";
$stmt = sqlsrv_query($conn, $tsql);
break;

case "STR_RevertRQ": $Message = strrev ($Message); break;
case "STR_UpperRQ": $Message = strtoupper($Message); break;
case "STR_LowerRQ": $Message = strtolower($Message); break;
default: WriteSoapError("INVALID_ACTION", "Invalid Action: '$SoapAction'");
}

Но не как не идет запись и к тому же выходит ошибка.
Код всего приложения в прикрепил.
komiller Отправлено: 06 Октября, 2011 - 11:36:55 • Тема: Новости на сайте • Форум: Вопросы новичков

Ответов: 5
Просмотров: 132
JohnnyB пишет:
komiller пишет:
Как сделать ссылку и там показать новость на которую нажал пользователь

ссылку по id конечно самый верный вариант, а на странице с новостью брать из базы всю инфу по этому id


логика понятна, мне бы код для примера
komiller Отправлено: 06 Октября, 2011 - 11:26:00 • Тема: Новости на сайте • Форум: Вопросы новичков

Ответов: 5
Просмотров: 132
[quote=JohnnyB][/quote] Как сделать ссылку и там показать новость на которую нажал пользователь
komiller Отправлено: 06 Октября, 2011 - 11:12:25 • Тема: Новости на сайте • Форум: Вопросы новичков

Ответов: 5
Просмотров: 132
Здравствуйте, на первой страничке разместил новости, немного заголовка и текст новостей а теперь хотелось бы чтобы внизу было Подробно и при необходимости можно было перейти на страничку news.php и прочитать новости. Хотелось подсказки а то в гугле не смог сформировать в двух словах.

Спасибо.
komiller Отправлено: 20 Сентября, 2011 - 08:30:20 • Тема: передача параметра после LIKE • Форум: Вопросы новичков

Ответов: 2
Просмотров: 111
Поставил но че то не робит (
komiller Отправлено: 19 Сентября, 2011 - 21:15:18 • Тема: передача параметра после LIKE • Форум: Вопросы новичков

Ответов: 2
Просмотров: 111
Здравствуйте, уважаемые.

в скрипте передаю значение переменной которую ранее объявлял, но хотелось бы переменную посылать вместе с LIKE но че то ПХП ругается на мой скрипт, пожалуйста помогите разобраться. Собственно и скрипт:

WHERE clients.DateCreated LIKE 'CAST('".$date1." 00.00.00%' AS DATETIME)'";
komiller Отправлено: 07 Сентября, 2011 - 15:18:42 • Тема: Передача нескольких параметров в TSQL-запрос • Форум: Работа с СУБД

Ответов: 12
Просмотров: 4240
Улыбка нее точно не робот

вот проблема в том что условие не могу задавать, так как до вчерашнего дня писал на ASP.Net )) по этому прошу помочь в написании условия
komiller Отправлено: 07 Сентября, 2011 - 14:45:33 • Тема: Передача нескольких параметров в TSQL-запрос • Форум: Хранение данных, их вывод и обработка

Ответов: 0
Просмотров: 756
Здравствуйте.

Выбираю параметр для переменной $agent вот так

<?
$tsql = "select agentid, iscompany, lname, fname, companyname from agents where parentid = '$agentid'";
$stmt = sqlsrv_query($conn, $tsql) or die(DisplayErrors());
while($row = sqlsrv_fetch_array($stmt)){
if($row['iscompany']==1){$agentname = $row['companyname'];} else {$agentname = $row['lname']." ".$row['fname'];}
?>
<option value="<?echo $row['agentid'];?>" style="padding-left: 5px;" <? if($agent == $row['agentid']){echo "selected";}?>><?echo iconv('cp1251', 'utf-8', $agentname);?></option>
<?
}
?>

этот параметр находится в КомбоБокс-е, мне необходимо выполнить запрос с передачей этого параметра в этот запрос:


<?
$ct_ok = 0;
$ct_cancelled = 0;
$ct_error = 0;
$ct_processing = 0;
$ct_all = 0;
$total = 0;
$d1 = explode(" ", $date1);
$d11 = explode(".", $d1[0]);
$date1 = $d11[2]."-".$d11[1]."-".$d11[0]." ".$d1[1];
$d2 = explode(" ", $date2);
$d22 = explode(".", $d2[0]);
$date2 = $d22[2]."-".$d22[1]."-".$d22[0]." ".$d2[1];
$tsql = "SELECT CONVERT(char(10), receipts.DateCreated, 103) + ' ' + CONVERT(char(10), receipts.DateCreated, 108) as DateCreated,
agents.LName, agents.FName, payment_types.pname, receipts.SourceId, receipts.TargetId, receipts.Amount,receipts.Comment,
users.LName as UserLName, users.FName as UserFName, users.AgentId as Agent
FROM receipts
INNER JOIN agents ON receipts.SourceId=agents.AgentId
INNER JOIN payment_types ON receipts.PType=payment_types.pty pe
INNER JOIN users ON users.AgentId=receipts.TargetId AND users.Role='1'
WHERE receipts.SourceId=".$agent."
AND receipts.DateCreated BETWEEN CAST('".$date1.".000' AS DATETIME) AND CAST('".$date2.".999' AS DATETIME)
ORDER BY receipts.DateCreated";
//echo $tsql;
$stmt = sqlsrv_query($conn, $tsql);
//if($stmt){
$amount=0;
while($row = sqlsrv_fetch_array($stmt))
{
if($row['IsCompany']==1){$agentname = $row['CompanyName'];} else {$agentname = $row['LName']." ".$row['FName'];;}
$amount+=$row['Amount'];
$target = $row['UserLName']." ".$row['UserFName'];
?>
<tr>
<td class="td_date"><?echo str_replace('/', '.', $row['DateCreated']);?></td>
<td class="td_oper"><?echo iconv('cp1251', 'utf-8', $agentname);?></td>
<td class="td_tran"><?echo iconv('cp1251', 'utf-8', $row['pname']);?></td>
<td class="td_oper"><?echo iconv('cp1251', 'utf-8', $target);?></td>
<td class="td_tran"><?echo number_format($row['Amount'], 2, '.', '');?></td>
<td class="td_tran"><?echo iconv('cp1251', 'utf-8', $row['Comment']);?></td>
</tr>

<?
$ct_all++;
}
?>

Если пользователь зашел на страничку и без выбора параметров нажал на кнопку ОТЧЕТ, то надо в запросе поставлять параметр WHERE receipts.SourceId=".$agentid." а если выбрал какой нибудь параметр то нужно передать WHERE receipts.SourceId=".$agent."

ПРоблема в том что не могу условие задать, прошу помочь если не трудно
komiller Отправлено: 07 Сентября, 2011 - 14:39:36 • Тема: Передача нескольких параметров в TSQL-запрос • Форум: Работа с СУБД

Ответов: 12
Просмотров: 4240
[quote=Мелкий]
komiller пишет:
Значениев КомбоБокс-е выбирается из вот этого:

В option комбо-боксов быть не может, или я совершенно ничего не понимаю в вебе. Это должно идти описание select'а.
komiller Отправлено: 07 Сентября, 2011 - 14:02:45 • Тема: Передача нескольких параметров в TSQL-запрос • Форум: Работа с СУБД

Ответов: 12
Просмотров: 4240
Значениев КомбоБокс-е выбирается из вот этого:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. $tsql = "select agentid, iscompany, lname, fname, companyname from agents where parentid = '$agentid'";
  3. $stmt = sqlsrv_query($conn, $tsql) or die(DisplayErrors());
  4. while($row = sqlsrv_fetch_array($stmt)){
  5. if($row['iscompany']==1){$agentname = $row['companyname'];} else {$agentname = $row['lname']." ".$row['fname'];}
  6. ?>
  7.                                                                         <option value="<?echo $row['agentid'];?>" style="padding-left: 5px;" <? if($agent == $row['agentid']){echo "selected";}?>><?echo iconv('cp1251', 'utf-8', $agentname);?></option>                                              
  8. <?
  9. }
  10. ?>


Сам запрос для вывода данных таков:

PHP:
скопировать код в буфер обмена
  1. <?
  2. $ct_ok = 0;
  3. $ct_cancelled = 0;
  4. $ct_error = 0;
  5. $ct_processing = 0;
  6. $ct_all = 0;
  7. $total = 0;
  8. $d1 = explode(" ", $date1);
  9. $d11 = explode(".", $d1[0]);
  10. $date1 = $d11[2]."-".$d11[1]."-".$d11[0]." ".$d1[1];
  11. $d2 = explode(" ", $date2);
  12. $d22 = explode(".", $d2[0]);
  13. $date2 = $d22[2]."-".$d22[1]."-".$d22[0]." ".$d2[1];
  14. $tsql = "SELECT  CONVERT(char(10), receipts.DateCreated, 103) + ' ' + CONVERT(char(10), receipts.DateCreated, 108) as DateCreated,
  15. agents.LName, agents.FName, payment_types.pname, receipts.SourceId, receipts.TargetId, receipts.Amount,receipts.Comment,
  16. users.LName as UserLName, users.FName as UserFName, users.AgentId as Agent
  17. FROM receipts
  18. INNER JOIN agents ON receipts.SourceId=agents.AgentId
  19. INNER JOIN payment_types ON receipts.PType=payment_types.ptype
  20. INNER JOIN users ON users.AgentId=receipts.TargetId AND users.Role='1'
  21. WHERE receipts.SourceId=".$agent."
  22. AND receipts.DateCreated BETWEEN CAST('".$date1.".000' AS DATETIME) AND CAST('".$date2.".999' AS DATETIME)
  23. ORDER BY receipts.DateCreated";
  24. //echo $tsql;
  25. $stmt = sqlsrv_query($conn, $tsql);
  26. //if($stmt){
  27. $amount=0;
  28. while($row = sqlsrv_fetch_array($stmt))
  29. {
  30. if($row['IsCompany']==1){$agentname = $row['CompanyName'];} else {$agentname = $row['LName']." ".$row['FName'];;}
  31. $amount+=$row['Amount'];
  32. $target = $row['UserLName']." ".$row['UserFName'];
  33. ?>
  34.                                                                 <tr>
  35.                                                                         <td class="td_date"><?echo str_replace('/', '.', $row['DateCreated']);?></td>
  36.                                     <td class="td_oper"><?echo iconv('cp1251', 'utf-8', $agentname);?></td>
  37.                                                                         <td class="td_tran"><?echo iconv('cp1251', 'utf-8', $row['pname']);?></td>
  38.                                     <td class="td_oper"><?echo iconv('cp1251', 'utf-8', $target);?></td>
  39.                                     <td class="td_tran"><?echo number_format($row['Amount'], 2, '.', '');?></td>
  40.                                     <td class="td_tran"><?echo iconv('cp1251', 'utf-8', $row['Comment']);?></td>
  41.                                                                 </tr>
  42.                              
  43. <?
  44. $ct_all++;
  45. }
  46. ?>
  47.  

Когда просто нажимаю кнопку ОТЧЕТ показывает но мне еще нужно чтобы если выбрать параметр из комбобокс тоже показывало но уже с измененным параметром receipts.SourceId=".$agent."
komiller Отправлено: 07 Сентября, 2011 - 12:22:08 • Тема: Передача нескольких параметров в TSQL-запрос • Форум: Работа с СУБД

Ответов: 12
Просмотров: 4240
Мелкий пишет:
option есть, значит выше - есть select. У select'а есть имя и оно передаётся крипту при отправке формы.
Вот и смотрите в обработчике - пришёл селект с формы, и если да, и не является служебным пунктом типа "выбери меня, выбери меня!", то вставляете условие в запрос..


В запрос поставить параметр не проблема, только иногда пользователь может не выбрать этот пунк и запросить просто с WHERE UserId=".$user."
komiller Отправлено: 07 Сентября, 2011 - 10:40:53 • Тема: Передача нескольких параметров в TSQL-запрос • Форум: Работа с СУБД

Ответов: 12
Просмотров: 4240
Мелкий пишет:
Нет, я вас понял верно. По крайней мере второй раз - одинаково.

У вас может быть много if (/**/) $where[] = '`имя столбца`="'.$значение.'"'; потому и используется массив.


Прошу прошения за назойливость ) но тут возникла другая задача, пользователь заходит и просто нажимает кнопку ОТЧЕТ и формируется запрос такого рода:

SELECT Name, FName FROM Users WHERE Name=".$user."

Но если пользователь выберет из списка

<?
$tsql = "select lname, fname, companyname from users where parentid = '$users'";
$stmt = sqlsrv_query($conn, $tsql) or die(DisplayErrors());
while($row = sqlsrv_fetch_array($stmt)){
if($row['iscompany']==1){$lname = $row['companyname'];} else {$lname = $row['lname']." ".$row['fname'];}
?>
<option value="<?echo $row['userid'];?>" style="padding-left: 5px;" <? if($agent == $row['userid']){echo "selected";}?>><?echo iconv('cp1251', 'utf-8', $lname);?></option>
<?
}
?>

То в таком случаи надо передать значение lname выбранного пользователя.
komiller Отправлено: 07 Сентября, 2011 - 06:54:26 • Тема: Передача нескольких параметров в TSQL-запрос • Форум: Работа с СУБД

Ответов: 12
Просмотров: 4240
Мелкий пишет:
PHP:
скопировать код в буфер обмена
  1. $where = array();
  2. if (проверяете поочерёдно ваши возможные фильтры) $where[] = '`имя столбца`="'.$значение.'"';
  3. $sql = "SELECT Name, FName, WorkPlace FROM Users";
  4. if ( ! empty($where)) $sql .=" where ".join(' and ',$where);


Спасибо огромное за ответ, узнал про empty и isset.

Но у меня проблема немного иного характера, например есть два параметра после WHERE Name=".$Name." AND FName=".$FName." если пользователь зашел на старичку и нажал кнопку ОТЧЕТ то запрос должен быть типа WHERE Name=".$Name." а если выбрал пункт FName из ComboBox то запрос будет типа WHERE Name=".$Name." AND FName=".$FName."

Спасибо за ответ
komiller Отправлено: 06 Сентября, 2011 - 19:26:04 • Тема: Передача нескольких параметров в TSQL-запрос • Форум: Работа с СУБД

Ответов: 12
Просмотров: 4240
Здравствуйте уважаемые.

Уже несколько дней бьюсь головой об стенку не помогает Не понял , проблема заключается в том что пишу типа отчетную страничку и надо бы в TSQL - запросе передать несколько параметров и иногда некоторые параметры могу отсутствовать, как сделать так чтобы при запросе данных и отсутствии одного из параметров запроса заменить значением по умолчанию?

Например запрос:

SELECT Name, FName, WorkPlace FROM Users WHERE Name=".$User." AND FName=".FName."

и скажем попадется пользователь у которого нет фамилии а у меня в запросе стоит параметр FName=".FName." и соответственно выдаст мне ошибку,

Заранее благодарен за помощь.
С уважением.
komiller Отправлено: 23 Июня, 2011 - 16:08:25 • Тема: Поиск данных в БД и отображение • Форум: Работа с СУБД

Ответов: 11
Просмотров: 3599
Заработало, нужно было только убрать action="obrabotchik.php" чтобы заработало. Как теперь изменить текст кнопки? а то у меня написано Отправить и не знаю откуда это

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB