junaooaks 3 Denunciar post Postado Janeiro 24, 2008 galera to fazendo uma consulta no db onde o usuario informa o nomeCliente e dataInicial e dataFinal com esta informações a consulta teria que pegar o nome do cliente no periodo da data inicial + data final e me retornar o numero do pedido, o vendedor, nome do cliente, é numero do id_itens que se refere ao pedido construi o codigo assim: $sql = "SELECT * FROM cliente, pedido, vendedor, itens WHERE pedido.data BETWEEN '$datainicial' AND 'datafinal' AND cliente.nome = '$nome' AND pedido.id_vendedor = vendedor.id_vendedor AND itens.cod_pedido = pedido.id_pedido AND pedido.id_cliente = cliente.id_cliente ORDER BY cliente.nome ASC"; $sql = mysql_query($sql) or die (mysql_error()); so que nao me esta retornando nem um valor, é nem erro preciso de uma forcinha :rolleyes: obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 24, 2008 Talvez seja apenas falta de parênteses. Tente assim: $sql = "SELECT * FROM cliente, pedido, vendedor, itens WHERE (pedido.data BETWEEN '$datainicial' AND 'datafinal') AND cliente.nome = '$nome' AND pedido.id_vendedor = vendedor.id_vendedor AND itens.cod_pedido = pedido.id_pedido AND pedido.id_cliente = cliente.id_cliente ORDER BY cliente.nome ASC"; $sql = mysql_query($sql) or die (mysql_error()); Compartilhar este post Link para o post Compartilhar em outros sites
junaooaks 3 Denunciar post Postado Janeiro 24, 2008 Talvez seja apenas falta de parênteses. Tente assim: $sql = "SELECT * FROM cliente, pedido, vendedor, itens WHERE (pedido.data BETWEEN '$datainicial' AND 'datafinal') AND cliente.nome = '$nome' AND pedido.id_vendedor = vendedor.id_vendedor AND itens.cod_pedido = pedido.id_pedido AND pedido.id_cliente = cliente.id_cliente ORDER BY cliente.nome ASC"; $sql = mysql_query($sql) or die (mysql_error()); coloquei parênteses mas nao me retorno nada, nem erro olha o codigo da pagina toda: <?php include "conexao_mysql.php"; // determinar as variaveis $cliente = $_POST['cliente']; $data_inicial = $_POST['inicio']; $data_final = $_POST['fim']; //converter o que for digitado minusculo para maiusculo comando " strtoupper " $nome = strtoupper ($cliente); //explodir as datas inicial $dat = explode ('/', $data_inicial); $datainicial = $dat[2]."-".$dat[1]."-".$dat[0]; //explodir data final $da = explode ("/", $data_final); $datafinal = $da[2]."-".$da[1]."-".$da[0]; //selecionar dados na tabela $sql = "SELECT * FROM cliente, pedido, vendedor, itens WHERE (pedido.data BETWEEN '$datainicial' AND 'datafinal') AND cliente.nome = '$nome' AND pedido.id_vendedor = vendedor.id_vendedor AND itens.cod_pedido = pedido.id_pedido AND pedido.id_cliente = cliente.id_cliente ORDER BY cliente.nome ASC"; $sql = mysql_query($sql) or die (mysql_error()); //resultado na tela while ($row = mysql_fetch_array($sql)){ $id = $row ['id_pedido']; $no = $row ['nome']; $vend = $row ['nomeVendedor']; $data = $row ['data']; echo $id, $no, $vend, $data; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Janeiro 26, 2008 A data usada no BETWEEN está no formato correto? O campo é DATE? Enfim, o resultado deve ser esperado para o banco ..., sua query realmente não está sendo satisfeita com os dados atuais. E sem nós conhecê-los, fica difícil detectar o motivo. :) Compartilhar este post Link para o post Compartilhar em outros sites