Ir para conteúdo

POWERED BY:

Arquivado

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

frequenciavirtual

[Resolvido] como utilizar laço de repetição, while

Recommended Posts

tenho o seguinte codigo:

<script language="javascript" type="text/javascript"><!--

var news = new Array(["<? echo $res[titulo]; ?>" , "../mostrar_noticias.php?id=<?=$res[id]; ?>"] ,

[]
);

//--></script>
Este codigo esta buscando apenas a ultima noticia do banco de dados corretamente, mas na verdade quero fazer uma adaptação do seguinte codigo:

<script language="javascript" type="text/javascript"><!--
var news = new Array([ "Escreva a descrição para o Primeiro link" , "http://www.bloggersphera.com" ] ,
[ "Escreva a descrição para o Segundo link" , "http://endereço-do-link-2.html" ] ,
[ "Escreva a descrição para o Terceiro link" , "http://endereço-do-link-3.html" ] ,
[ "Escreva a descrição para o Quarto link" , "http://endereço-do-link-4.html" ] ,
[ "Crie quantos links você Quiser" , "http://endereço-do-link-5.html" ] , 
[]
) ;
//--></script>
A noticia esta aparecendo corretamente no primeiro codigo, com o efeito e tudo mais, mas preciso que o php busque as ultimas 5 noticias do banco de dados pelo menos.

 

Obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá frequenciavirtual beleza...

 

Bom...dá onde vem esse $res?

var news = new Array(["<? echo $res[titulo]; ?>" , "../mostrar_noticias.php?id=<?=$res[id]; ?>"] ,

Ele vem de uma consulta ao banco de dados é?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá frequenciavirtual beleza...

 

Bom...dá onde vem esse $res?

var news = new Array(["<? echo $res[titulo]; ?>" , "../mostrar_noticias.php?id=<?=$res[id]; ?>"] ,

Ele vem de uma consulta ao banco de dados é?

 

<?php
$dados = mysql_query("SELECT * FROM noticias order by id desc");
$res= mysql_fetch_array($dados);
$data = explode("-", $dados[data]);
$data = "$data[2]/$data[1]/$data[0]";
?>

 

Exatamente, o $res vem da consulta no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom...vamos ver...

Geralemnte quando fazemos este comando

 

$res= mysql_fetch_array($dados);

Em seguida, devemos fazer algo do tipo

 

while($res= mysql_fetch_array($dados)){

}

Ou seja...como você tá querendo buscar uma lista de dados, então terá que fazer um loop para listar todo, mas...como você colocou apenas dessa forma

$res= mysql_fetch_array($dados);

Ele irá fazer a busca e retornar o primeiro da lista seja ele em ordem crescente ou decrescente, enfim...

 

No JavaScript você está mandado imprimir um Array né, mais num tem um Array, tem apenas o primeiro valor lá dentro vindo dentro da variavel $res.

 

Não sei se resolve mais...e se você fazer algo do tipo aí em seu codigo (É apenas a ideia...rsss)

 

while($res= mysql_fetch_array($dados)){
      <script language="javascript" type="text/javascript"><!--

var news = new Array(["<? echo $res[titulo]; ?>" , "../mostrar_noticias.php?id=<?=$res[id]; ?>"] ,

[]
);

//--></script>
}
Ou seja...fazer um loop e colocar a impressão em JavaScript lá dentro.

 

Desculpe...não sou muito bom em JavaScript mais...acho que o seu problema não é no JavaScript e sim no seu PHP. http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

 

Vai testando e postando aí que vamos tentando resolver o seu problema... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Abraços...e boa sorte aí... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz asssim agora:

<?php
while($res= mysql_fetch_array($dados)){
?>
<script language="javascript" type="text/javascript"><!--

var news = new Array(["<? echo $res[titulo]; ?>" , "../mostrar_noticias.php?id=<?=$res[id]; ?>"]);

//--></script>
<!-- fim da edição -->
<?php
}
?>

 

Mas tbm nao funcionou. Esta imprimindo a primeira noticia do banco de dados apenas.

Ele teria que dar um loop e mostrar todas, sedo que um de cada vez.

 

 

Este codigo que tenho e estou tentando alterar é pra mostrar as noticias semelhente ao site da folha.

O efeito de digitação de noticias esta funcionando perfeitamente, mas o problema é que aparece apenas uma noticia ao invez de mostrar todas sen que seria uma de cada vez.

 

Continuamos tentando,....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente colocar para imprimir fora do javascript, tipo:

 

<?php
while($res= mysql_fetch_array($dados)){

echo $res["id"]; //Não esqueça as aspas duplas
echo $res["titulo"];//E aqui tambem...

?>

Daí vamos ver se, ele tá imprimindo normalmente fora do javascript

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o seguinte:

<script language="javascript" type="text/javascript"><!--

var news = new Array(
<?php
$dados = mysql_query("SELECT * FROM noticias order by id desc");
$res= mysql_fetch_array($dados);

$total = mysql_num_rows($dados); 
if ($total<$res) { 
for ($i = 0; $i < $total; $i++) { 
?>
["<? echo $res[titulo]; ?>" , "../mostrar_noticias.php?id=<?=$res[id]; ?>"] ,
<? }?>
<?  }?>  

[]

);

//--></script>

e o codigo imprime a ultima noticia. Quando verifico o codigo fonte da pagina ele mostra 2 vezes a mesma noticia, assim:

<script language="javascript" type="text/javascript"><!--

var news = new Array(
["Júri: Autor de homicídio em Saudade do Iguaçu é condenado a mais de 13" , "../mostrar_noticias.php?id=17"] ,
["Júri: Autor de homicídio em Saudade do Iguaçu é condenado a mais de 13" , "../mostrar_noticias.php?id=17"] ,


[]

);

//--></script>

Desta forma ate seria correto se ele buscasse a outra noticia do bando de dados e nao a mesma duas vezes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o seguinte:

<script language="javascript" type="text/javascript"><!--

var news = new Array(
<?php
$dados = mysql_query("SELECT * FROM noticias order by id desc");
$res= mysql_fetch_array($dados);

$total = mysql_num_rows($dados); 
if ($total<$res) { 
for ($i = 0; $i < $total; $i++) { 
?>
["<? echo $res[titulo]; ?>" , "../mostrar_noticias.php?id=<?=$res[id]; ?>"] ,
<? }?>
<?  }?>  

[]

);

//--></script>

e o codigo imprime a ultima noticia. Quando verifico o codigo fonte da pagina ele mostra 2 vezes a mesma noticia, assim:

<script language="javascript" type="text/javascript"><!--

var news = new Array(
["Júri: Autor de homicídio em Saudade do Iguaçu é condenado a mais de 13" , "../mostrar_noticias.php?id=17"] ,
["Júri: Autor de homicídio em Saudade do Iguaçu é condenado a mais de 13" , "../mostrar_noticias.php?id=17"] ,


[]

);

//--></script>

Desta forma ate seria correto se ele buscasse a outra noticia do bando de dados e nao a mesma duas vezes.

 

Mas alguma sugestao de alguem.

tentei de varias formas e nao consigo fazer este loop.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, é só uma idéia, ok?

 

Vê se dá certo. (conheço bem pouco de java, então nem sei se aquele Array ali embraixo tá certo. :)

 

<script language="javascript" type="text/javascript"><!--

var news = new Array(
<?
$dados = mysql_query("SELECT id, titulo FROM noticias order by id desc");
while($res= mysql_fetch_row($dados)){?> ["<?echo $res[1];?>" , "../mostrar_noticias.php?id=<?echo $res[0];?>"] , } );

//--></script>

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tambem nao deu certo.

 

Continuo tentando. e aceito outras sugestoes.

<script language="javascript" type="text/javascript"><!--  var news = new Array( <?php $dados = mysql_query("SELECT * FROM noticias order by id desc");  $res= mysql_fetch_array($dados);  $total = mysql_num_rows($dados); if ($total>0) { for ($i = 0; $i < $total; $i++) { ?> ["<? echo $res[titulo]; ?>" , "../mostrar_noticias.php?id=<?=$res[id]; ?>"] , <? }?> <? }?>  []  );  //--></script>

Como citei anteriormente neste codigo aparece repetindo a mesma noticia, qual o erro deste codigo. Ao inves dele mostrar todas as noticias do banco ele apenas repete a ultima inserida no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

Consegui resolver. O erro estava justamente no loop.

Agradço aos amigos que mesmo sem sucesso tentaram me auxiliar.

E como sempre após resolvido o problema deixo o codigo correto.

 

<script language="javascript" type="text/javascript"><!--  var news = new Array( <?php include("../admin/config_admin.php"); $dados = mysql_query("SELECT * FROM noticias order by id desc"); while($res = mysql_fetch_array($dados)){ $titulo = $res["titulo"]; $id = $res["id"]; ?> ["<? echo $res[titulo]; ?>" , "../mostrar_noticias.php?id=<?=$res[id]; ?>"] , <? }?>   []  );  //--></script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parabéns frequenciavirtual!!!

Desculpe...ontem estava te ajudando e a minha conexão caiu...

Mas...como eu disse....o erro era no loop mesmo...mais...que bom que conseguiu resolver...

Abraços e sucessos!!!http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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