fernandotrilha Postado Agosto 24, 2015 Denunciar Share Postado Agosto 24, 2015 Pessoal estou fazendo um select e option para listar alguns resultados de uma consulta no banco.O primeiro option lista certinho,mas os demais, não lista nada...Irei postar o codigo: <?php//header('Content-Type: text/html; charset=utf-8'); ini_set('display_errors', 1); ini_set('display_startup_erros', 1); error_reporting(E_ALL);include ('includes/conex.php'); $query = " SELECT TOP (100) PERCENT tbpre.nroe_p, tbpre.nrop_p, tbpre.inip_p, tbpre.finp_p, tbpre.desp_p, tbcor.nomc_c, tbcor.sigc_c, tbmec.decm_m, tbtam.sigt_t, tbpri.nrom_p, tbpri.nroc_p, tbpri.nrot_p, tbpri.valp_p, tbdes.desd_d, ROUND(tbpri.valp_p * ((100.000 - tbdes.desd_d) / 100), 2) AS prep_p, tbdes.nrod_d, tbdes.tipd_d, tbdes.clid_d, dbo.tbcli.nomc_c AS razc_c, dbo.tbcli.conc_c, dbo.tbcli.nroc_c, tbcli.nroe_c FROM dbo.tbpre AS tbpre INNER JOIN dbo.tbpri AS tbpri ON tbpre.nroe_p = tbpri.nroe_p AND tbpre.nrop_p = tbpri.nrop_p INNER JOIN dbo.tbmec AS tbmec ON tbpri.nroe_p = tbmec.nroe_m AND tbpri.nrom_p = tbmec.nrom_m INNER JOIN dbo.tbtam AS tbtam ON tbpri.nrot_p = tbtam.nrot_t INNER JOIN dbo.tbcor AS tbcor ON tbpri.nroc_p = tbcor.nroc_c INNER JOIN dbo.tbdes AS tbdes ON tbpri.nroe_p = tbdes.nroe_d AND tbpri.nrom_p = tbdes.nrom_d AND tbpri.nrot_p = tbdes.nrot_d AND tbpri.nroc_p = tbdes.nroc_d INNER JOIN dbo.tbcli ON tbdes.nroe_d = dbo.tbcli.nroe_c AND tbdes.clid_d = dbo.tbcli.nroc_c WHERE (tbpre.inip_p <= GETDATE()) AND (tbpre.finp_p >= GETDATE()) AND tbcli.nroc_c = $codCliente AND tbcli.nroe_c = '1' AND tbmec.decm_m = 'VIDRO TEMP.' ORDER BY tbpre.nroe_p, tbpre.nrop_p, tbdes.nrod_d, tbcor.nomc_c, tbtam.sigt_t"; /* execute the SQL query and return records */ $result = mssql_query($query) or die('A error occured: ' . mysql_error()); ?><!DOCTYPE html><html><head><meta charset="ISO-8859-1"></head><body> <form action="index.php?pobj=Projeto&pacao=janela2folhas" method="post" enctype="multipart/form-data" > <div align="center" style="width: 741px; margin: 0 auto;"> <p class="style2">* Todos os campos são obrigatorios. </p> <table height="176" border="0" cellpadding="0" cellspacing="0" style="float: left;"> <tr> <td><strong>Pedido:</strong></td> <td><input type="text" required name="Pedido" id="Pedido" /></td> </tr> <tr> <td><strong>Altura do vão:</strong></td> <td><input type="text" required name="AlturaPeca" id="AlturaPeca" /></td> </tr> <tr> <td><strong>Largura do vão:</strong></td> <td><input type="text" required name="LarguraPeca" id="LarguraPeca" /></td> </tr> <tr> <td><strong>Vidro:</strong></td> <td> <select class="input_cor" name="cor" /> <option>Escolha uma opção </option> <?php while ( $record = mssql_fetch_array($result) ){ ?> <option value="<?php echo $record['decm_m']; ?>"><?php echo $record['decm_m']; ?></option> <?php } ?> </select> </td> </tr> <tr> <td><strong>Tipo:</strong></td> <td> <select class="input_tipo" name="tipo" /> <option>Escolha uma opção </option> <?php while ( $record = mssql_fetch_array($result) ){ ?> <option value="<?php echo $record['nomc_c']; ?>"><?php echo $record['nomc_c']; ?></option> <?php } ?> </select> </td> </tr> <tr> <td><strong>Espessura:</strong></td> <td> <select class="input_espessura" name="espessura" /> <option>Escolha uma opção </option> <?php while ( $record = mssql_fetch_array($result) ){ ?> <option value="<?php echo $record['sigt_t']; ?>"><?php echo $record['sigt_t']; ?></option> <?php } ?> </select> </td> </tr> <tr> <td><strong>Altura da Ferragem:</strong></td> <td><input type="text" required name="AlturaFerragem" id="AlturaFerragem" /></td> </tr> <tr> <td><strong>Ferragem:</strong></td> <td> <select name = "TipoFerragem" size=1> <option>Escolha uma opção... </option> <option>1571 </option> <option>1510M </option> </td> </select> </td> </tr> <tr> <td><input name="submit" type="submit" value="Visualizar" /></td> </tr> <tr> <td><input type="reset" value="Limpar" /></td> </tr> </table> <p style="float: left; margin:0;"><img src="/projeto/images/janela2folhas.jpg" name="img1" align="left" id="img1" /></p> </div> </form> </body> </html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 wootzor Postado Agosto 24, 2015 Denunciar Share Postado Agosto 24, 2015 Já testaste a consulta directamente no SGBD para ver se devolve o resultado esperado?Estás a usar uma variável $codCliente como condição da consulta que não foi definida anteriormente, pelo menos na parte do código que disponibilizaste. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernandotrilha Postado Agosto 24, 2015 Autor Denunciar Share Postado Agosto 24, 2015 Acabei não colocando mesmo, o codcliente vira de um _SESSION. No SGBD,o resultado vem correto.Porem,se eu coloco assim<td><strong>Cor:</strong></td> <td> <select class="input_cor" name="cor" /> <option>Escolha uma opção </option> <?php while ( $record = mssql_fetch_array($result) ){ ?> <option value="<?php echo $record['decm_m']; ?>"><?php echo $record['decm_m']; ?></option> <option value="<?php echo $record['nomc_c']; ?>"><?php echo $record['nomc_c']; ?></option> <option value="<?php echo $record['sigt_t']; ?>"><?php echo $record['sigt_t']; ?></option> <?php } ?> </select> </td> </tr>Aparece todos. Dá a impressão que depois do primeiro while, ele limpa a consulta. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lowys Postado Agosto 24, 2015 Denunciar Share Postado Agosto 24, 2015 É exatamente isso!O mssql_fetch_array() deve ser executado apenas uma vez em $resultArmazene tudo em um array e poderá usá-lo('o array') em todo seu script Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernandotrilha Postado Agosto 25, 2015 Autor Denunciar Share Postado Agosto 25, 2015 Lowys,consegue me dar uma luz em como fazer isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lowys Postado Agosto 25, 2015 Denunciar Share Postado Agosto 25, 2015 <?php //header('Content-Type: text/html; charset=utf-8'); ini_set('display_errors', 1); ini_set('display_startup_erros', 1); error_reporting(E_ALL); include ('includes/conex.php'); $query = " SELECT TOP (100) PERCENT tbpre.nroe_p, tbpre.nrop_p, tbpre.inip_p, tbpre.finp_p, tbpre.desp_p, tbcor.nomc_c, tbcor.sigc_c, tbmec.decm_m, tbtam.sigt_t, tbpri.nrom_p, tbpri.nroc_p, tbpri.nrot_p, tbpri.valp_p, tbdes.desd_d, ROUND(tbpri.valp_p * ((100.000 - tbdes.desd_d) / 100), 2) AS prep_p, tbdes.nrod_d, tbdes.tipd_d, tbdes.clid_d, dbo.tbcli.nomc_c AS razc_c, dbo.tbcli.conc_c, dbo.tbcli.nroc_c, tbcli.nroe_c FROM dbo.tbpre AS tbpre INNER JOIN dbo.tbpri AS tbpri ON tbpre.nroe_p = tbpri.nroe_p AND tbpre.nrop_p = tbpri.nrop_p INNER JOIN dbo.tbmec AS tbmec ON tbpri.nroe_p = tbmec.nroe_m AND tbpri.nrom_p = tbmec.nrom_m INNER JOIN dbo.tbtam AS tbtam ON tbpri.nrot_p = tbtam.nrot_t INNER JOIN dbo.tbcor AS tbcor ON tbpri.nroc_p = tbcor.nroc_c INNER JOIN dbo.tbdes AS tbdes ON tbpri.nroe_p = tbdes.nroe_d AND tbpri.nrom_p = tbdes.nrom_d AND tbpri.nrot_p = tbdes.nrot_d AND tbpri.nroc_p = tbdes.nroc_d INNER JOIN dbo.tbcli ON tbdes.nroe_d = dbo.tbcli.nroe_c AND tbdes.clid_d = dbo.tbcli.nroc_c WHERE (tbpre.inip_p <= GETDATE()) AND (tbpre.finp_p >= GETDATE()) AND tbcli.nroc_c = $codCliente AND tbcli.nroe_c = '1' AND tbmec.decm_m = 'VIDRO TEMP.' ORDER BY tbpre.nroe_p, tbpre.nrop_p, tbdes.nrod_d, tbcor.nomc_c, tbtam.sigt_t"; /* execute the SQL query and return records */ $result = mssql_query($query) or die('A error occured: ' . mysql_error()); // aqui você vai percorrer os resultados while ($record = mssql_fetch_array($result)) { // aqui você vai guardar tudo em um array $dados[] = $record; // cada linha de $dados, será igual a cada linha de $result // dessa forma você poderá reutilizar $dados quantas vezes quiser } ?> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> </head> <body> <form action="index.php?pobj=Projeto&pacao=janela2folhas" method="post" enctype="multipart/form-data" > <div align="center" style="width: 741px; margin: 0 auto;"> <p class="style2">* Todos os campos são obrigatorios. </p> <table height="176" border="0" cellpadding="0" cellspacing="0" style="float: left;"> <tr> <td><strong>Pedido:</strong></td> <td><input type="text" required name="Pedido" id="Pedido" /></td> </tr> <tr> <td><strong>Altura do vão:</strong></td> <td><input type="text" required name="AlturaPeca" id="AlturaPeca" /></td> </tr> <tr> <td><strong>Largura do vão:</strong></td> <td><input type="text" required name="LarguraPeca" id="LarguraPeca" /></td> </tr> <tr> <td><strong>Vidro:</strong></td> <td> <select class="input_cor" name="cor" /> <option>Escolha uma opção </option> <?php foreach ($dados as $k => $v) { echo "<option value='{$v['decm_m']}'>{$v['decm_m']}</option>"; } ?> </select> </td> </tr> <tr> <td><strong>Tipo:</strong></td> <td> <select class="input_tipo" name="tipo" /> <option>Escolha uma opção </option> <?php foreach ($dados as $k => $v) { echo "<option value='{$v['nom_c']}'>{$v['nom_c']}</option>"; } ?> </select> </td> </tr> <tr> <td><strong>Espessura:</strong></td> <td> <select class="input_espessura" name="espessura" /> <option>Escolha uma opção </option> <?php foreach ($dados as $k => $v) { echo "<option value='{$v['sig_t']}'>{$v['sig_t']}</option>"; } ?> </select> </td> </tr> <tr> <td><strong>Altura da Ferragem:</strong></td> <td><input type="text" required name="AlturaFerragem" id="AlturaFerragem" /></td> </tr> <tr> <td><strong>Ferragem:</strong></td> <td> <select name = "TipoFerragem" size=1> <option>Escolha uma opção... </option> <option>1571 </option> <option>1510M </option> </td> </select> </td> </tr> <tr> <td><input name="submit" type="submit" value="Visualizar" /></td> </tr> <tr> <td><input type="reset" value="Limpar" /></td> </tr> </table> <p style="float: left; margin:0;"><img src="/projeto/images/janela2folhas.jpg" name="img1" align="left" id="img1" /></p> </div> </form> </body> </html> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernandotrilha Postado Agosto 25, 2015 Autor Denunciar Share Postado Agosto 25, 2015 Ficou assim, aparece o campo,mas não a informação. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lowys Postado Agosto 25, 2015 Denunciar Share Postado Agosto 25, 2015 Antes de fechar esse trecho php, vamos debugar a variável $dados, coloque:while ($record = mssql_fetch_array($result)) { // aqui você vai guardar tudo em um array $dados[] = $record; // cada linha de $dados, será igual a cada linha de $result // dessa forma você poderá reutilizar $dados quantas vezes quiser } // debugar a variável $dados echo '<pre>$dados:<br>'; print_r($dados); echo '</pre>'; ?>E me mostre o que aparece Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernandotrilha Postado Agosto 26, 2015 Autor Denunciar Share Postado Agosto 26, 2015 Lowys,vou colocar abaixo os três primeiros$dados: Array ( [0] => Array ( [0] => 1 [nroe_p] => 1 [1] => 8 [nrop_p] => 8 [2] => Mar 23 2015 12:00:00:000AM [inip_p] => Mar 23 2015 12:00:00:000AM [3] => Jul 23 2016 12:00:00:000AM [finp_p] => Jul 23 2016 12:00:00:000AM [4] => MARÇO 2015 [desp_p] => MARÇO 2015 [5] => ANTÍLOPE [nomc_c] => ANTÍLOPE [6] => ANT [sigc_c] => ANT [7] => VIDRO TEMP. [decm_m] => VIDRO TEMP. [8] => 08 MM [sigt_t] => 08 MM [9] => 1 [nrom_p] => 1 [10] => 24 [nroc_p] => 24 [11] => 6 [nrot_p] => 6 [12] => 174.36 [valp_p] => 174.36 [13] => 17 [desd_d] => 17 [14] => 144.72 [prep_p] => 144.72 [15] => 0 [nrod_d] => 0 [16] => 2 [tipd_d] => 2 [17] => 501 [clid_d] => 501 [18] => JULIANA DA SILVA DE OLIVEIRA PEREIRA ME [razc_c] => JULIANA DA SILVA DE OLIVEIRA PEREIRA ME [19] => JULIANA DA SILVA DE OLIVEIRA PEREIRA ME [conc_c] => JULIANA DA SILVA DE OLIVEIRA PEREIRA ME [20] => 501 [nroc_c] => 501 [21] => 1 [nroe_c] => 1 ) [1] => Array ( [0] => 1 [nroe_p] => 1 [1] => 8 [nrop_p] => 8 [2] => Mar 23 2015 12:00:00:000AM [inip_p] => Mar 23 2015 12:00:00:000AM [3] => Jul 23 2016 12:00:00:000AM [finp_p] => Jul 23 2016 12:00:00:000AM [4] => MARÇO 2015 [desp_p] => MARÇO 2015 [5] => ASTRAL [nomc_c] => ASTRAL [6] => AST [sigc_c] => AST [7] => VIDRO TEMP. [decm_m] => VIDRO TEMP. [8] => 08 MM [sigt_t] => 08 MM [9] => 1 [nrom_p] => 1 [10] => 30 [nroc_p] => 30 [11] => 6 [nrot_p] => 6 [12] => 184.33 [valp_p] => 184.33 [13] => 17 [desd_d] => 17 [14] => 152.99 [prep_p] => 152.99 [15] => 0 [nrod_d] => 0 [16] => 2 [tipd_d] => 2 [17] => 501 [clid_d] => 501 [18] => JULIANA DA SILVA DE OLIVEIRA PEREIRA ME [razc_c] => JULIANA DA SILVA DE OLIVEIRA PEREIRA ME [19] => JULIANA DA SILVA DE OLIVEIRA PEREIRA ME [conc_c] => JULIANA DA SILVA DE OLIVEIRA PEREIRA ME [20] => 501 [nroc_c] => 501 [21] => 1 [nroe_c] => 1 ) [2] => Array ( [0] => 1 [nroe_p] => 1 [1] => 8 [nrop_p] => 8 [2] => Mar 23 2015 12:00:00:000AM [inip_p] => Mar 23 2015 12:00:00:000AM [3] => Jul 23 2016 12:00:00:000AM [finp_p] => Jul 23 2016 12:00:00:000AM [4] => MARÇO 2015 [desp_p] => MARÇO 2015 [5] => AZUL [nomc_c] => AZUL [6] => AZ [sigc_c] => AZ [7] => VIDRO TEMP. [decm_m] => VIDRO TEMP. [8] => 08 MM [sigt_t] => 08 MM [9] => 1 [nrom_p] => 1 [10] => 14 [nroc_p] => 14 [11] => 6 [nrot_p] => 6 [12] => 178.78 [valp_p] => 178.78 [13] => 17 [desd_d] => 17 [14] => 148.39 [prep_p] => 148.39 [15] => 0 [nrod_d] => 0 [16] => 2 [tipd_d] => 2 [17] => 501 [clid_d] => 501 [18] => JULIANA DA SILVA DE OLIVEIRA PEREIRA ME [razc_c] => JULIANA DA SILVA DE OLIVEIRA PEREIRA ME [19] => JULIANA DA SILVA DE OLIVEIRA PEREIRA ME [conc_c] => JULIANA DA SILVA DE OLIVEIRA PEREIRA ME [20] => 501 [nroc_c] => 501 [21] => 1 [nroe_c] => 1 ) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lowys Postado Agosto 26, 2015 Denunciar Share Postado Agosto 26, 2015 Nos trechos de foreachtroque nom_c por nomc_ce sig_t por sigt_t Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fernandotrilha Postado Agosto 26, 2015 Autor Denunciar Share Postado Agosto 26, 2015 Putz, e eu fiquei analisando isso ontem pra saber onde estava o erro, e não consegui enxergar isso...Quem entende,entende néMais uma vez,meu muito obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
fernandotrilha
Pessoal estou fazendo um select e option para listar alguns resultados de uma consulta no banco.
O primeiro option lista certinho,mas os demais, não lista nada...
Irei postar o codigo:
<?php
//header('Content-Type: text/html; charset=utf-8');
ini_set('display_errors', 1);
ini_set('display_startup_erros', 1);
error_reporting(E_ALL);
include ('includes/conex.php');
$query = " SELECT TOP (100) PERCENT tbpre.nroe_p, tbpre.nrop_p, tbpre.inip_p, tbpre.finp_p, tbpre.desp_p, tbcor.nomc_c, tbcor.sigc_c, tbmec.decm_m, tbtam.sigt_t, tbpri.nrom_p,
tbpri.nroc_p, tbpri.nrot_p, tbpri.valp_p, tbdes.desd_d, ROUND(tbpri.valp_p * ((100.000 - tbdes.desd_d) / 100), 2) AS prep_p, tbdes.nrod_d, tbdes.tipd_d, tbdes.clid_d,
dbo.tbcli.nomc_c AS razc_c, dbo.tbcli.conc_c, dbo.tbcli.nroc_c, tbcli.nroe_c
FROM dbo.tbpre AS tbpre INNER JOIN
dbo.tbpri AS tbpri ON tbpre.nroe_p = tbpri.nroe_p AND tbpre.nrop_p = tbpri.nrop_p INNER JOIN
dbo.tbmec AS tbmec ON tbpri.nroe_p = tbmec.nroe_m AND tbpri.nrom_p = tbmec.nrom_m INNER JOIN
dbo.tbtam AS tbtam ON tbpri.nrot_p = tbtam.nrot_t INNER JOIN
dbo.tbcor AS tbcor ON tbpri.nroc_p = tbcor.nroc_c INNER JOIN
dbo.tbdes AS tbdes ON tbpri.nroe_p = tbdes.nroe_d AND tbpri.nrom_p = tbdes.nrom_d AND tbpri.nrot_p = tbdes.nrot_d AND tbpri.nroc_p = tbdes.nroc_d INNER JOIN
dbo.tbcli ON tbdes.nroe_d = dbo.tbcli.nroe_c AND tbdes.clid_d = dbo.tbcli.nroc_c
WHERE (tbpre.inip_p <= GETDATE()) AND (tbpre.finp_p >= GETDATE()) AND tbcli.nroc_c = $codCliente AND tbcli.nroe_c = '1' AND tbmec.decm_m = 'VIDRO TEMP.'
ORDER BY tbpre.nroe_p, tbpre.nrop_p, tbdes.nrod_d, tbcor.nomc_c, tbtam.sigt_t";
/* execute the SQL query and return records */
$result = mssql_query($query) or die('A error occured: ' . mysql_error());
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
</head>
<body>
<form action="index.php?pobj=Projeto&pacao=janela2folhas" method="post" enctype="multipart/form-data" >
<div align="center" style="width: 741px; margin: 0 auto;">
<p class="style2">* Todos os campos são obrigatorios. </p>
<table height="176" border="0" cellpadding="0" cellspacing="0" style="float: left;">
<tr>
<td><strong>Pedido:</strong></td>
<td><input type="text" required name="Pedido" id="Pedido" /></td>
</tr>
<tr>
<td><strong>Altura do vão:</strong></td>
<td><input type="text" required name="AlturaPeca" id="AlturaPeca" /></td>
</tr>
<tr>
<td><strong>Largura do vão:</strong></td>
<td><input type="text" required name="LarguraPeca" id="LarguraPeca" /></td>
</tr>
<tr>
<td><strong>Vidro:</strong></td>
<td>
<select class="input_cor" name="cor" />
<option>Escolha uma opção </option>
<?php while ( $record = mssql_fetch_array($result) ){ ?>
<option value="<?php echo $record['decm_m']; ?>"><?php echo $record['decm_m']; ?></option>
<?php } ?>
</select>
</td>
</tr>
<tr>
<td><strong>Tipo:</strong></td>
<td>
<select class="input_tipo" name="tipo" />
<option>Escolha uma opção </option>
<?php while ( $record = mssql_fetch_array($result) ){ ?>
<option value="<?php echo $record['nomc_c']; ?>"><?php echo $record['nomc_c']; ?></option>
<?php } ?>
</select>
</td>
</tr>
<tr>
<td><strong>Espessura:</strong></td>
<td>
<select class="input_espessura" name="espessura" />
<option>Escolha uma opção </option>
<?php while ( $record = mssql_fetch_array($result) ){ ?>
<option value="<?php echo $record['sigt_t']; ?>"><?php echo $record['sigt_t']; ?></option>
<?php } ?>
</select>
</td>
</tr>
<tr>
<td><strong>Altura da Ferragem:</strong></td>
<td><input type="text" required name="AlturaFerragem" id="AlturaFerragem" /></td>
</tr>
<tr>
<td><strong>Ferragem:</strong></td>
<td>
<select name = "TipoFerragem" size=1>
<option>Escolha uma opção... </option>
<option>1571 </option>
<option>1510M </option>
</td>
</select>
</td>
</tr>
<tr>
<td><input name="submit" type="submit" value="Visualizar" /></td>
</tr>
<tr>
<td><input type="reset" value="Limpar" /></td>
</tr>
</table>
<p style="float: left; margin:0;"><img src="/projeto/images/janela2folhas.jpg" name="img1" align="left" id="img1" /></p>
</div>
</form>
</body>
</html>
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.