
natbe
Membros-
Total de itens
12 -
Registro em
-
Última visita
Tudo que natbe postou
-
Não, é assim: Tenho um faq. Nesse faq tenho várias perguntas e respostas que estão guardadas no BD. Tem pergunta que a resposta está dividida em alguns registros. O que fiz no código acima foi imprimir tudo. O segundo loop junta as respostas de uma mesma pergunta. O problema é que, suponha que a mesma pergunta tenha 3 registros de respostas. Eu estou imprimindo as respostas via loop, aí aparece na tela 3x a mesma pergunta com a resposta completa. Dessa forma, queria imprimir somente uma ocorrência. Grata!
-
meu problema agora é que se tem no banco duas perguntas iguais, ele imprime as duas perguntas. Inseri o loop dentro de outro para concatenar as respostas. Como faço para ele imprimir apenas uma ocorrência? Alguma idéia?
-
Na realidade acabei de resolver!! Foi só tirar a variável perg e colocar o rstemp("pergunta") no código... Mesmo assim agradeço as respostas!!! While Not rstemp.EOF Set rstemp1 = Server.CreateObject("ADODB.Recordset") Set rstemp1.ActiveConnection = con str1="SELECT * FROM site_portugues WHERE titulo='conta margem' and pergunta='"&rstemp("pergunta")&"' order by id" rstemp1.Open str1 Response.write "<dt><p>" & rstemp("pergunta") & "</p></dt>" Response.write "<dd>" do while not rstemp1.eof Response.write rstemp1("texto") rstemp1.MoveNext loop rstemp1.close set rstemp1 = nothing Response.write "</dd>" registro = registro +1 rstemp.MoveNext Wend
-
Pessoal, Tenho um faq no banco onde cadastro a pergunta e a resposta. Tem algumas respostas muito compridas que estão divididas em 2 ou 3 registros no banco. Queria listar na página a primeira pergunta e tenha um loop para juntar as respostas da mesma pergunta e só depois passe para a próxima pergunta. Fiz assim: <% Set rstemp = Server.CreateObject("ADODB.Recordset") Set rstemp.ActiveConnection = con str="SELECT * FROM site WHERE item='dúvidas' order by pergunta" rstemp.Open str registro=0 perg = rstemp("pergunta") While Not rstemp.EOF Set rstemp1 = Server.CreateObject("ADODB.Recordset") Set rstemp1.ActiveConnection = con str1="SELECT * FROM site WHERE pergunta='"&perg&"' order by id" rstemp1.Open str1 Response.write "<dt><p>" & rstemp("pergunta") & "</p></dt>" Response.write "<dd>" do while not rstemp1.eof Response.write rstemp1("texto") rstemp1.MoveNext loop rstemp1.close set rstemp1 = nothing Response.write "</dd>" registro = registro +1 rstemp.MoveNext Wend %> O problema é que ele está imprimindo 3 vezes a primeira pergunta e todas as demais perguntas com a resposta da primeira pergunta, ou seja, no primeiro loop ele consegue ir para o próximo registro, mas, no loop interno ele não vai, ele fica empacado... Alguma sugestão de como implementar isso? Grata!
-
Pessoal, Estou construindo uma galeria que carrega as páginas numa div chamada conteudo. Quando a pessoa clica numa categoria (página foto.php), ela abre as fotos. Meu link usado em cada categoria: <a href="java script:abre('fotos1.php?galeria=<?php echo $galeria; ?>', 'conteudo')"> Ou seja, estou passando a variavel galeria como querystring. Só que... como recupero isso? Pois preciso dessa info para me conectar com o banco de dados, na página fotos1.php Estou usando esse ajax: function abre(arquivo){ var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e){ try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("Seu navegador não suporta AJAX. Atualize-o em www.getfirefox.com"); return false; } } } xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState == 1) { document.getElementById("conteudo").innerHTML = "<div style='margin-left:200px; margin-top:80px; font-weight:bold; color:#666666; font-family: arial; font-size:10px;' ><img align='absmiddle' src='img/loader.gif' /> <strong>Carregando</strong></div>"; } if(xmlHttp.readyState == 4) { document.getElementById("conteudo").innerHTML = xmlHttp.responseText; } } xmlHttp.open("GET",arquivo,true); xmlHttp.send(null); } Alguma sugestão? Grata!!!
-
Ahhh, valeu Kuroi! Foi mais simples do que imaginava! :D
-
Tirei o Distinct mas, ele continua imprimindo somente o primeiro registro. Vou por o código aqui: <table width="620" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td colspan="3" height="182" background="cabecalho.jpg"><p><br /> <br /> <font face="Verdana, Arial" size="6" color="#295300"> <?php echo $row_titulo['ano']; ?></font><br /> <font face=Verdana, Arial" size="5" color="#295300"><?php echo $row_titulo['data1]; ?></font></p> </td> </tr> <?php do { ?> <tr> <td height="46" colspan="3" valign="middle" background="faixa_verde_data.jpg"><p><font face="Verdana, Arial" size="2" color="#ffffff"><strong><?php echo $row_Recordset1['data']; ?></strong> </font></p> </td> </tr> <tr> <?php if ($row_Recordset1['imagem'] !="){ ?> <td width="40" background="faixa_lateral.jpg"> </td> <td valign="top"><p><font face="Verdana, Arial" size="3" color="#4E4E4E"><strong><?php echo $row_Recordset1['curso]; ?></strong></font><br /> <font face="Verdana, Arial" size="2" color="#4E4E4E"><strong><?php echo $row_Recordset1['palestrante']; ?> <br /> Valor: </strong></font><font face=Verdana, Arial" size="2" color="#4E4E4E"><?php echo $row_Recordset1['valor]; ?> <?php echo $row_Recordset1['informacao']; ?></font></p> </td> <td width=132" valign="middle"><div align="right"><img src="<?php echo $row_Recordset1['imagem]; ?>" width="127" height="82" /></div></td> <?php } else { ?> <td background="faixa_lateral.jpg"> </td> <td colspan="2" valign="top"><p><font face="Verdana, Arial" size="3" color="#4E4E4E"><strong><?php echo $row_Recordset1['curso']; ?></strong></font><br /> <font face=Verdana, Arial" size="2" color="#4E4E4E"><strong><?php echo $row_Recordset1['palestrante]; ?> <br /> Valor: </strong></font><font face="Verdana, Arial" size="2" color="#4E4E4E"><?php echo $row_Recordset1['valor']; ?> <?php echo $row_Recordset1['informacao']; ?></font></p></td> <?php } ?> </tr> <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?> <tr> <td background="faixa_lateral.jpg"> </td> <td colspan="2" valign="top"> </td> </tr> <tr> <td colspan="3"><img src="rodape.jpg" width="620" height="315" /></td> </tr> </table> Alguma luz?
-
Olá Renato, Grata, deu certo! Só tive que inverter o order by pelo group by. Ficou assim: SELECT DISTINCT noticias.* FROM noticias WHERE codigo = $cod GROUP BY data ORDER BY data ASC Porém, na hora de imprimir, ele só imprime o primeiro resultado do agrupamento!! Alguém sabe como fazer ele imprimir todos os registros agrupados? Valeu pela ajuda! Só falta isso para terminar o aplicativo!
-
Pessoal, Gostaria de uma ajuda... Estou fazendo um sistema em php que contém um banco de dados MySQL. Nesse banco tem uma tabela chamada noticias que tem: codigo data informacao Fiz um select para selecionar somente os registros encontrados por código. SELECT * FROM noticias WHERE codigo = $cod ORDER BY data ASC Exemplo: se o codigo = 1 ele acha "x" registros. Só nesses "x" registros, alguns tem a mesma data. Preciso fazer com que ocorra a impressão de um título só (a Data) e coloque todos os registros (campo informacao) que contêm a mesma data abaixo desse título. E fazer o mesmo com as outras datas que o sistema encontra, que podem ser variadas. Alguma ajuda de como implementar? Valeu!
-
ESerra, muito grata! Funcionou!!! :D
-
O problema é que queria passar o email de quem recebe através de um link para um script posteriormente recuperar e descadastrar do bd. Se coloco isso dentro do while, a frase tb entra em loop, sendo impressa várias vezes... Alguém teria alguma ideia para ajudar? Grata!
-
Pessoal, Estou criando uma newsletter e estou usando o seguinte script: <?php //configurações do banco $host = "HOST"; $banco = "BANCO"; $usuario = "USUARIO"; $senha = "SENHA"; $tabela = "news"; $campos = "id,destinatario,status"; //campos da tabela //configurações do e-mail $subject = "teste newsletter em pacotes"; $body = "testando um script de envio de newsletter em pacotes usando php e mysql"; $nome_remetente = "Seu Nome"; $email_remetente = "seu@email.com"; $quant = 10; //número de mensagens enviadas de cada vez $sec = 10; //tempo entre o envio de um pacote e outro (em segundos) ?> <?php $conexao = mysql_connect($host,$usuario,$senha); mysql_select_db($banco); ?> <?php $ok = 0; $inicio = 0; $fim = $inicio + $quant; ?> <?php $sql = "select $campos from $tabela where status = 0 limit $inicio,$fim"; $query = mysql_query($sql,$conexao); $registros = mysql_num_rows($query); ?> <?php if($registros==0) { mysql_query("update $tabela set status = 0"); printf("<font face=’tahoma’>todas as mensagens foram enviadas!</font>"); $ok = 1; } ?> <?php while($result = mysql_fetch_array($query)) { $id = $result[0]; $to = $result[1]; $status = $result[2]; $headers = "From: $nome_remetente <$email_remetente>"; mail($to,$subject,$body,$headers); mysql_query("update $tabela set status = 1 where id = $id"); printf("<font face=’tahoma’>$id ) mensagem para <b>$to</b> <font color=’#ff0000’><b>enviada com sucesso!</b></font></font>"); } ?> <?php mysql_free_result($query); mysql_close($conexao); ?> <?php if(!$ok){ echo("<meta http-equiv=\"refresh\" content=\"" . $sec . "\">"); } ?> Estou querendo implementar um sistema de descadastramento, onde no próprio newsletter, no rodapé, aparece um link com o email para que a pessoa clique e faça o descadastramento. O código é esse: $body .="<br><br><font color='#333333'>Se você quiser se descadastrar, por favor, <a href='http://www.meudominio.br/descadastrar_news.php?email=$to'>clique aqui</a></font>"; O problema é que coloquei essa linha dentro do loop, antes da função mail() para usar a variável $to. Só que a partir do 2º email cadastrado, ele repete a linha com o email anterior, ou seja, o 10º email enviado, tem 10 linhas iguais exibindo: "Se você quiser se descadastrar, por favor, clique aqui", cada uma com um email diferente. Alguma sugestão de como implementar isso nesse código? Grata! Nat