Jump to content
PF2G

Dados repetidos

Recommended Posts

PF2G

Boas,

eu tenho este sistema de paginação com a lista de noticias, mas está a repetir a primeira noticia de cada página 2 vezes.

Neste caso, aparecem-me 3 noticias por página em vez de 2...

   if(isset($_GET['page'])){
   require('config.php');
   $page = $_GET["page"]; //Getting Page number
   $pages_query = mysql_query("SELECT COUNT(IdNoticia) FROM noticias"); // Counting total rows
   if($page=="" || $page=="0" || $page>$pages_query) { //checking is p is set and greater than 0
   $page = 1; //if not set than setting it to 1
   }
   $per_page = 2; //Total data to display per page
   $pages = ceil(mysql_result($pages_query, 0) / $per_page); //dividing total rows with total data to
   $start = ($page - 2) * $per_page; // subtracting $p value with 1 and multiplying it with $per_page for example 2-1=1*10 = 10
   $QuerySelectAllNews = mysql_query("SELECT * FROM noticias ORDER BY IdNoticia ASC LIMIT $start, $per_page");
   $SelectAllNews = mysql_fetch_array($QuerySelectAllNews);
   //Running our query
   $content='';
   do{
   $content.='<div id="square_news">';
   $content.='<div id="news_banner">';
   $content.='<img src="'.$SelectAllNews['ImagemNoticia'].'" />';
   $content.='</div>';
   $content.='<h2 class="square_news_title">';
   $content.='<a href="?idnews='.$SelectAllNews['IdNoticia'].'">'.$SelectAllNews['TituloNoticia'].'</a>';
   $content.='<div class="social">';
   $content.='<a href="#"><img src="http://bass.house.gov/sites/karenbass.house.gov/files/images/facebook_0.png" width="70px" /></a>';
   $content.='</div>';
   $content.='<span class="line"></span>';
   $content.='</h2>'
   $content.='</div>';
   echo $content;
   }while($SelectAllNews = mysql_fetch_array($QuerySelectAllNews));
   for($a=1;$a<=$pages;$a++) { //using for to display number
   echo "<a href='?page=$a' class='page_link'>$a</a> "; //printing numbers also using link tags
   }
   }

Share this post


Link to post
Share on other sites
Virneto

Eu retirava o:

do {} while () 

e experimentava assim:

while($SelectAllNews = mysql_fetch_array($QuerySelectAllNews))
{
$content.='<div id="square_news">';
$content.='<div id="news_banner">';
$content.='<img src="'.$SelectAllNews['ImagemNoticia'].'" />';
$content.='</div>';
$content.='<h2 class="square_news_title">';
$content.='<a href="?idnews='.$SelectAllNews['IdNoticia'].'">'.$SelectAllNews['TituloNoticia'].'</a>';
$content.='<div class="social">';
$content.='<a href="#"><img src="http://bass.house.gov/sites/karenbass.house.gov/files/images/facebook_0.png" width="70px" /></a>';
$content.='</div>';
$content.='<span class="line"></span>';
$content.='</h2>'
$content.='</div>';
echo $content;
}

Com o "do while" primeiro imprimes e depois verificas a condição.

Com o "while" primeiro verificas a condição e depois imprimes.


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Share this post


Link to post
Share on other sites
HappyHippyHippo

eu sei qual é o problema, mas em vez de dizer como resolver vou-te dizer para fazeres uma alteração para ver se chegas lá:

$per_page = 3;

agora verifica quantas repetições tens e que notícias foram repetidas

NOTA : volto a dizer >> isto não é a solução, mas uma alteração que te vai amostrar mais informação sobre o problema


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Virneto

e também não precisarás de ter isto duas vezes. Tens uma antes do while:

$SelectAllNews = mysql_fetch_array($QuerySelectAllNews);


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Share this post


Link to post
Share on other sites
HappyHippyHippo

e também não precisarás de ter isto duas vezes. Tens uma antes do while:

$SelectAllNews = mysql_fetch_array($QuerySelectAllNews);

tem uma antes do do {} while

o que é diferente do que ter antes do while

as soluções que estás a dizer não afectam em nada o resultado porque essa parte do código está correcto

se não estas a ver onde está o problema, vê bem o código e pensa porque razão pedi ao OP para alterar o número de notícias e verificar quais as notícias que se repetem e quantas repetições aparecem


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Virneto

se não estas a ver onde está o problema, vê bem o código e pensa porque razão pedi ao OP para alterar o número de notícias e verificar quais as notícias que se repetem e quantas repetições aparecem

Well ok. :confused: . neste caso vou deixar de fazer ruído.


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Share this post


Link to post
Share on other sites
HappyHippyHippo

mais uma dica :

1
12
123
1234
12345
123456
1234567

será que vais lá assim ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
PF2G

Essa ultima dica não ajudou nada.

Eu alterei para

$per_page = 3;

e ficou:

Noticia1
Noticia1
Noticia2
Noticia1
Noticia2
Noticia1

Edited by PF2G

Share this post


Link to post
Share on other sites
HappyHippyHippo

ok ... estou a ver que tenho mesmo de dar a solução:

- o problema > repetição de notícias

- a causa > impressão de uma string repetidamente em várias etapas da sua construção

$content='';
do{
 // ...
 echo $content; // <-------- isto terá sempre a informação dos ciclos anteriores
}while($SelectAllNews = mysql_fetch_array($QuerySelectAllNews));

resultado para variavel $per_page com o valor de 4:

Noticia1 (ciclo 1)
Noticia1 (ciclo 2) Noticia2 (ciclo 2)
Noticia1 (ciclo 3) Noticia2 (ciclo 3) Noticia3 (ciclo 3)
Noticia1 (ciclo 4) Noticia2 (ciclo 4) Noticia3 (ciclo 4) Noticia4 (ciclo 4)

(percebes agora a dica ?)

- solução mais simples > passar o echo para depois do ciclo do {} while

$content='';
do{
 // ...
}while($SelectAllNews = mysql_fetch_array($QuerySelectAllNews));
echo $content;


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Virneto

@Happy

Muito bom o raciocínio!

eu nem com o fim de semana ia chegar lá! :(

Edited by Virneto

"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Share this post


Link to post
Share on other sites
Pivot

@Happy

Muito bom o raciocínio!

eu nem com o fim de semana ia chegar lá! :(

O problema de muitos ditos "programadores" é a lógica da "coisa"...

Para programares precisas de perceber o que estás a fazer, e sobretudo como estás a fazer.

Aqui era fácil perceber o problema...

Um dos vários problemas que muitos colegas meus de programação tiveram, era a lógica...

Podem muito bem saber a sintaxe, mas sem a lógica de como as coisas funcionam, dificilmente chegam lá.

Para seres um bom programador, precisas de ter bom raciocínio que equivale ou é semelhante a ter uma boa lógica de programação...

Abraço,

Rafael.

  • Vote 1

Share this post


Link to post
Share on other sites
PF2G

Foi uma distração, acho que podia acontecer a qualquer um, mas pronto...

Obrigado pela ajuda.

Abraço.

Share this post


Link to post
Share on other sites
HappyHippyHippo

Foi uma distração, acho que podia acontecer a qualquer um, mas pronto...

todos as features (não existem bugs) são distrações !!!


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Virneto

@Pivot... um pouco esticadas estas conclusões todas, mas ok. I'm not in the mood :confused:

A competência (seja em que area for) adquire-se pela aprendizagem (o que dá trabalho e implica resolução de problemas), processo este que de resto, podemos verificar/acompanhar/confirmar diariamente aqui no p@p para uns milhares pessoas. :thumbsup:

Neste caso concreto, eu não teria chegado facilmente à resposta.... mas deu-me gozo aprender :cheesygrin:

Have fun!

Edited by Virneto

"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Share this post


Link to post
Share on other sites
HappyHippyHippo

Neste caso concreto, eu não teria chegado facilmente à resposta.... mas deu-me gozo aprender :cheesygrin:

gostava de saber a tua opinião:

- deu-te gozo porque a resposta não te foi directamente apresentada, ou porque o problema em si era peculiar o suficiente para aguçar a curiosidade ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Virneto

@Happy,

deu-me gozo porque aprendo uma coisa nova e fico melhor preparado.

Das hipóteses que dás.... 1.º o problema desperta a curiosidade e, só depois, a resposta que não é directamente apresentada e as pistas, aguçam a curiosidade e incentivam ao raciocínio.

Neste caso eu não estava mesmo a olhar para a parte do código onde estava o problema. Como de resto se repara pelas sugestões que dei ao @PF2G.


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Share this post


Link to post
Share on other sites
Devexz

O problema de muitos ditos "programadores" é a lógica da "coisa"...

Para programares precisas de perceber o que estás a fazer, e sobretudo como estás a fazer.

Aqui era fácil perceber o problema...

Um dos vários problemas que muitos colegas meus de programação tiveram, era a lógica...

Podem muito bem saber a sintaxe, mas sem a lógica de como as coisas funcionam, dificilmente chegam lá.

Para seres um bom programador, precisas de ter bom raciocínio que equivale ou é semelhante a ter uma boa lógica de programação...

Abraço,

Rafael.

3srv8a.jpg

  • Vote 1

Contador de calorias: caloriaspordia.com

Share this post


Link to post
Share on other sites
I-NOZex

O problema de muitos ditos "programadores" é a lógica da "coisa"...

Para programares precisas de perceber o que estás a fazer, e sobretudo como estás a fazer.

Aqui era fácil perceber o problema...

Um dos vários problemas que muitos colegas meus de programação tiveram, era a lógica...

Podem muito bem saber a sintaxe, mas sem a lógica de como as coisas funcionam, dificilmente chegam lá.

Para seres um bom programador, precisas de ter bom raciocínio que equivale ou é semelhante a ter uma boa lógica de programação...

Abraço,

Rafael.

Nem sequer sao programadores, ser programador nao é saber a sintaxe, nao é a toa qe se começa por aprender algoritomia ;)

Edited by I-NOZex

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net

Share this post


Link to post
Share on other sites
Pivot

Foi uma distração, acho que podia acontecer a qualquer um, mas pronto...

Obrigado pela ajuda.

Abraço.

Distracções acontecem a todos, correto.

Mas não estou a crucificar-te porque te distrais-te.

Aliás, se fosse só distracção, não terias vindo aqui ao P@P, porque tinhas logo visto onde estava o problema :P

A questão, é que não foi distração, mas sim uma falha na lógica...

No entanto também por vezes falhamos na lógica, não é aí novamente que está o problema.

Mas, se tentasses resolver os problemas com as dicas do Hippo terias tido mais proveito.

Logo, se não percebeste as dicas do Hippo, é porque tens dificuldades na lógica.

Apenas isso que quis dizer na minha mensagem.

Bom estudo! ;)

Abraço,

Rafael.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.