Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mamotinho

PHP Transformar consulta seguido de if em Store Procedure

Recommended Posts

Olá, sou iniciante e gostaria de saber como eu posso criar uma consulta e em seguida passar o valor da consulta por ifs veja um exemplo de como eu queria usar, irei fazer como seria em  PHP:

 

$consulta = mssql_query("select * from Account.dbo.cabal_auth_table where Login=1");
$count = mssql_num_rows($consulta);




if($count>=1){

while($row=mssql_fetch_object($consulta)){

mssql_query("update cabalcash.dbo.cashaccount set cash=cash+40 where UserNum='".$row->UserNum."'");

}

}

Queria transformar isso em Store Procedure para eu criar uma JOB 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom você precisa de duas ações:

 

1. Criar uma Stored Procedure que tenha um @parâmetro e tratar as instruções SQL passando o @parametro semelhante ao que você fez no PHP.

 

2. No PHP dependendo do driver que você está utilizando você pode utilizar os objetos do DataSet ou DataReader para passar o @SqlParameter, mas se você fizer a concatenação de  string "EXEC SP_SUA_PROCEDURE ' ".$row->UserNum." ' "  também funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Kellison Ruan
      Acho que não fui tão claro no título, portanto irei esmiuçar melhor aqui...
       
      É o seguinte, quero saber se há algum jeito de pegar as linhas de uma coluna q está em VARCHAR com informações do tipo "4 PONTOS DE ILUMINAÇÃO", dessa informação pretendo retirar somente o número que em questão é o "4" e colocá-lo em outra coluna INTEGER. Há essa possibilidade? Detalhe, as vezes as informações não está seguindo um padrão de vim somente como "4 PONTOS DE ILUMINAÇÃO" às vezes vêm dados com mais informações númericas que precisa distinguir, por exemplo, a mim só interessa pegar números que vem antecedendo as palavras "PONTOS", "PTOS", "PTS", têm algum jeito de distinguir isso?
    • Por TeixeiraRamos
      Saúde e paz para todos,
      Prezados não sei o que vem ocorrendo com a minha procedure;
       
      No phpMyAdmin, em Editar rotina, detalhes consta:
       
       
      Em "Adicionar parâmetro"
       
       
       
      BEGIN DECLARE var_data DATE; DECLARE var_dia VARCHAR(50); DECLARE contador INT DEFAULT 0; SET var_data = data_inicial; SET var_dia = DAYNAME(data_inicial); WHILE contador < intervalo DO INSERT INTO tbpdodia(data_inicio, diassemanas)VALUES (var_data, var_dia); SET contador = contador + 1; SET var_data = DATE_ADD(data_inicial, INTERVAL contador DAY); SET var_dia = DAYNAME(var_data); END WHILE; END; DELIMITER; Call adicionar_data('2020-11-29', 398);  
      Gostaria que a coluna "data_inicial" fosse preenchida com as datas de 2020-11-29 a 2021-12-31
      O resultado mostra erros.
       
      Obrigado, saude
       
       
    • Por mamotinho
      Boa noite! estou com dúvidas em relação a array, eu tenho uma procedure no SQL Server e essa procedure exibe uma lista de resultados, eu gostaria de pega o valor desses resultados e lista em um array para eu comparar com outro valor que vai ser selecionado em um select , tipo abaixo:
       
      $arraySelect = $db->prepare(exec WebSite.dbo.server_value_product 2);
      $arraySelect->execute();
      $arrayExemple = $arraySelect->fetchAll();

      procedure_list = array($arrayExemple);
       
      !in_array($valorSelect, $procedure_list){
         echo 'O Valor selecionado não existe nos resultados da procedure';
      }
       
       
      alguem sabe como posso listar o resultado da procedure em array. e sabe se o valor que procuro está entre os resultados da array.
    • Por AndersonVSilva
      Bom dia Pessoal,
       
      Efetuei uma busca no forum e não encontrei alguma solução para meu problema.
       
      Tenho este form via HTML:
       
      <td><form id="form1" action="CallProc02.php" method="post"><input type="hidden" name="id" value="1" /></form></td> <td><input form="form1" type="text" name="DDDA" value="Ex: 75" /></td> <td><input form="form1" type="text" name="NumA" value="Ex: 982825441" /></td> <td><input form="form1" type="text" name="DtInit" value="Ex: 2018-01-01" /></td> <td><input form="form1" type="text" name="DtEnd" value="Ex: 2019-01-01" /></td> <td><input form="form1" type="submit" value="Enviar" /></td> E aqui está o código PHP:
      <?php $sDDDA = $_POST['DDDA']; $sNumA = $_POST['NumA']; $sDtInit = $_POST['DtInit']; $sDtEnd = $_POST['DtEnd']; $con = new PDO("mysql:host:IP;dbname=DB", "User", "Pass"); $stmt = $con->prepare("CALL NOC_cobranca_conecta_historico_msisdn(:qDDDA, :qNumA, :qDtInit, :qDtEnd) "); $stmt->bindParam(":qDDDA", $sDDDA, PDO::PARAM_STR, 3); $stmt->bindParam(":qNumA", $sNumA, PDO::PARAM_STR, 10); $stmt->bindParam(":qDtInit", $sDtInit, PDO::PARAM_STR, 12); $stmt->bindParam(":qDtEnd", $sDtEnd, PDO::PARAM_STR, 12); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); if ($result) { echo "OK"; } else { echo "NOK - Report Development Team"; } ?> No Apache ele fica logando o erro ' PHP Notice:  Undefined index: NumA in /var/www/html/Consulta/CallProc02.php' .
       
      Alguém pode me dizer oque estou fazendo errado?
       
      Obrigado desde já pela ajuda.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.