Ir para conteúdo
Fórum Script Brasil

Tafari

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Tudo que Tafari postou

  1. Tafari

    Problema de Lógica

    Não sei se fiz certo, mas deu certo. Coloquei uma condição de existência para realizar o call_user_func_array(). if ($params) { call_user_func_array(array($stmt, 'bind_param'), refValues($params)); } Aparentemente funcionou para este e todos os outros chamados desta função.
  2. Tafari

    Problema de Lógica

    Mudei e fiz assim, agora: if ($_POST['cs']) { $cs = 'cs = ' . $_POST['cs']; } if ($_POST['estante']) { if ($_POST['cs']) { $estante = ' AND estante = ' .$_POST['estante']; } else { $estante = 'estante = ' . $_POST['estante']; } } if ($_POST['prateleira']) { if ($_POST['cs'] || $_POST['estante']) { $prateleira = ' AND prateleira = ' .$_POST['prateleira']; } else { $prateleira = 'prateleira = ' . $_POST['prateleira']; } } if ($_POST['numero']) { if ($_POST['cs'] || $_POST['estante'] || $_POST['prateleira']) { $numero = ' AND numero = ' .$_POST['numero']; } else { $numero = 'numero = ' . $_POST['numero']; } } if ($_POST['digito']) { if ($_POST['cs'] || $_POST['estante'] || $_POST['prateleira'] || $_POST['numero']) { $digito = ' AND digito = ' .$_POST['digito']; } else { $digito = 'digito = ' . $_POST['digito']; } } $sql = "SELECT * FROM carga WHERE $cs $estante $prateleira $numero $digito"; O problema é que a função que eu uso para facilitar a consulta ao banco de dados $sql = "SELECT * FROM carga WHERE $cs $estante $prateleira $numero $digito"; $consulta = execSQL("$sql", array (), false); está dando erro Warning: Wrong parameter count for mysqli_stmt::bind_param() in /var/www/html/inc/func.php on line 26 Função /* Usage: execSQL($sql, $parameters, $close); $sql = Statement to execute; $parameters = array of type and values of the parameters (if any) $close = true to close $stmt (in inserts) false to return an array with the values; Examples: execSQL("SELECT * FROM table WHERE id = ?", array('i', $id), false); execSQL("SELECT * FROM table", array(), false); execSQL("INSERT INTO table(id, name) VALUES (?,?)", array('ss', $id, $name), true); */ function execSQL($sql, $params, $close){ $mysqli = new mysqli("localhost", "root", "supersenha", "superbanco"); $stmt = $mysqli->prepare($sql) or die ("Failed to prepared the statement!"); call_user_func_array(array($stmt, 'bind_param'), refValues($params)); // Linha 26 $stmt->execute(); if($close){ $result = $mysqli->affected_rows; } else { $meta = $stmt->result_metadata(); while ( $field = $meta->fetch_field() ) { $parameters[] = &$row[$field->name]; } call_user_func_array(array($stmt, 'bind_result'), refValues($parameters)); while ( $stmt->fetch() ) { $x = array(); foreach( $row as $key => $val ) { $x[$key] = $val; } $results[] = $x; } $result = $results; } $stmt->close(); $mysqli->close(); return $result; } function refValues($arr){ //Reference is required for PHP 5.3+ if (strnatcmp(phpversion(),'5.3') >= 0) { $refs = array(); foreach($arr as $key => $value) $refs[$key] = &$arr[$key]; return $refs; } return $arr; }
  3. Tafari

    Problema de Lógica

    Ok. Então vamos lá. Formulário: <div id="titulo" align="center">Digite os Dados</div><br> <form action="baixa.php" method="post"> <table align="center" border="0" width="600"> <tr> <td align="center">C.S.</td> <td align="center">Estante</td> <td align="center">Prateleira</td> <td align="center">Número</td> <td align="center"> </td> <td align="center">Dígito</td> </tr> <tr> <td align="center"> <div id="formulariopeq"> <input name="cs" id="cs" type="text" maxlength="1" autocomplete="off" autofocus/> </div> </td> <td align="center"> <div id="formulariopeq"> <input name="estante" id="estante" maxlength="2" type="text" autocomplete="off" /> </div> </td> <td align="center"> <div id="formulariopeq"> <input name="prateleira" id="patreleira" maxlength="2" type="text" autocomplete="off" /> </div> </td> <td align="center"> <div id="formulariopeq"> <input name="numero" id="numero" maxlength="2" type="text" autocomplete="off" /> </div> </td> <td align="center"> - </td> <td align="center"> <div id="formulariopeq"> <input name="digito" id="digito" maxlength="1" type="text" autocomplete="off" /> </div> </td> </tr> </table> <input type="hidden" name="cargapage" value="3"> <div id="botao" align="center"> <input type="submit" value="Consultar"\> </div> Agora a parte do PHP que desisti antes de terminar (31 opções diferentes): // Verifica quais valores foram passados pelo formulário e monta a consulta de forma correta if ($_POST['cs']) { if ($_POST['estante']) { if ($_POST['prateleira']) { if ($_POST['numero']) { if ($_POST['digito']) { // Todos os campos foram preenchidos $sql = "cs = " . $_POST['cs'] . " AND estante = " . $_POST['estante'] . " AND prateleira = " . $_POST['prateleira'] . " AND numero = . " . $_POST['numero'] . " AND digito = " . $_POST['digito']; echo $sql; } else { // O Campo digito não foi preenchido $sql = "cs = " . $_POST['cs'] . " AND estante = " . $_POST['estante'] . " AND prateleira = " . $_POST['prateleira'] . " AND numero = . " . $_POST['numero']; } } else { if ($_POST['digito']) { // Todos menos o campo número $sql = "cs = " . $_POST['cs'] . " AND estante = " . $_POST['estante'] . " AND prateleira = " . $_POST['prateleira'] . " AND digito = " . $_POST['digito']; } } } } } else { // O campo cs não foi preenchido }
  4. Tafari

    Problema de Lógica

    Olá Tiago. Muito obrigado pelo pronto atendimento. Vamos às explicações: Eu tenho 5 inputs textos com os seguintes nomes: cs int(1) estante int(2) prateleira int(2) numero int(2) digito int(1) Todos recebem apenas números, sendo que o primeiro (cs) e o último (digito) são apenas de um único dígito. Os demais são 2 dígitos. Eu quero que, se o usuário realizar a pesquisa em qualquer campo, ou mais que um, ou até mesmo todos, monte uma pesquisa. Sendo 5 inputs, realizando combinação matemática, podem ser 31 meios diferentes de se realizar a pesquisa. Será que expliquei ou compliquei? Abraços.
  5. Tafari

    Problema de Lógica

    Olá. Peço paciência de vocês, pois não sou programador e muito menos formado na área de computação. Vamos ao problema. Em uma página, eu tenho 5 inputs texto. Eu tenho que fazer um script em php que realiza pesquisa em combinações entre estes 5 inputs. Não sei se tem como fazer em nível SQL. Só pensei em fazer em PHP. Mas o problema é: fazendo as combinações possíveis (C5,1 + C5,2 + C5,3 + C5,4 + C5,5), são 31 opções diferentes. Será que existe uma função ou uma maneira de fazer de forma automatizada? Desde já agradeço Abraços.
×
×
  • Criar Novo...