problema visualizzazione news

ciao a tutti, ho un problemino che non riesco a risolvere..

Ho inserito un sistema di news nel mio sito e all'interno della stessa pagina se clicco sulla news questa mi compare sotto l'elenco delle 5 news che ho deciso di mettere. Ora io vorrei fare in modo che la news mi corrispondesse sotto a quella cliccata e non in fondo all'elenco.. Mi spiego con un esempio:

______________________

questo è quello che vorrei

______________________

- News n. 1

_news 2

-news 3

l a news 3 contiene questo testo ecc..........................................

.................................................. .........................................

-news4

-news 5

______________________

questo è quello che sono riuscito a fare

______________________

- News n. 1

_news 2

-news 3

-news4

-news 5

news 3 contiene questo testo ecc..........................................

.................................................. .........................................

inviato 8 anni fa
danilob
X 0 X

riporta il codice  :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Faccio 2 estrazioni, penso si potrebbe semplificare e inoltre mi estrae le gare nel 2 metodo....

______________________________________

<?

session_start();

?>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Boves Run</title>

<link href="css/SetCss.css" rel="stylesheet" type="text/css" />

<style type="text/css">

<!--

.Stile1 {font-size: large}

-->

</style>

</head>

<body>

<table width="780" border="0" align="center" cellpadding="0" cellspacing="0" class="sfondotabella2">

  <tr>

    <td colspan="3"><?

   include 'alto.php';?></td>

  </tr>

  <tr>

    <td colspan="3" class="Testo_Maiuscolo_tabelle Stile1"><div align="center">Prossime gare in programma </div></td>

  </tr>

  <tr>

    <td colspan="3"><span class="Testo_news">

      <?

include "config/connessione.php";

//numero massimo di record da stampare per pagina

  $max_row=5;

//contiamo i record

  $contatore = @mysql_query("SELECT COUNT(*) FROM gare") or die (mysql_error());

  $n_row = @mysql_fetch_array($contatore) or die (mysql_error());

//in caso di assenza di record..

  if ($n_row[0] == '0')

  {

  echo "Non sono state ancora inserite news.";

  @exit;

  }else{

//calcolo delle pagine da stampare

  $pagine_totali = ceil($n_row[0]/$max_row);

  if (!isset($_GET['n_pagina']))

  {

  $pag_visualizzata = 1;

  }else{

  $pag_visualizzata = (int)$_GET['n_pagina'];

  }

  $show = ($pag_visualizzata - 1) * $max_row;

  }

  echo "<ul>";

  $query = @mysql_query("SELECT * FROM gare  ORDER BY data desc LIMIT $show,$max_row") or die (mysql_error());

   while ($fetch=@mysql_fetch_array($query))

  {

   $id_gare = stripslashes($fetch['id']);

  $data_gara=stripslashes($fetch['data']);

  $nome_gara=stripslashes($fetch['nome_evento']);

  $luogo_gara=stripslashes($fetch['luogo']);

  $regione_gara=stripslashes($fetch['regione']);

  $provincia_gara=stripslashes($fetch['provincia']);

  $tipologia_gara=stripslashes($fetch['tipologia']);

  $distanza_gara=stripslashes($fetch['distanza']);

  $orario_gara=stripslashes($fetch['orario']);

  $indirizzo_gara=stripslashes($fetch['indirizzo']);

  $telefono_gara=stripslashes($fetch['telefono']);

  $sito_gara=stripslashes($fetch['sito_web']);

  $email_gara=stripslashes($fetch['email']);

  $costo_gara=stripslashes($fetch['costo']);

  $scadenza_iscr_gara=stripslashes($fetch['termine_iscrizione']);

  $note_gara=stripslashes($fetch['news_titolo']);

   //modifichiamo la data nel formato europeo dd mm yyyy

  $data_gara = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', stripslashes($fetch['data']));

 //stampa dei record

  echo "<li><a href=\"all_visual_gare2.php?id=" .$id_gare. "\" class=Testo_news> ".$data_gara ."  &nbsp; ". $nome_gara. "</a></li></span><br>";

  }   

  $pag = '';

  for($n_pagina = 1; $n_pagina <= $pagine_totali; $n_pagina++) {

  if($n_pagina == $pag_visualizzata) {

  $pag.= "<span class=Testo_news><strong>$n_pagina</strong></span>";

  }else{

  $pag.= "<a href=\"?n_pagina=$n_pagina\">$n_pagina</a> ";

  }

    }

  include("config/navigazione.php");

 if (isset($_GET['id']))

 {

  $id_gare = $_GET['id'];

  //visualizziamo la news corrispondente all'id inviato

  $query = @mysql_query("SELECT data,nome_evento,luogo, regione, provincia, tipologia, distanza, orario, indirizzo, telefono, sito_web, email, costo, termine_iscrizione, note FROM gare WHERE id='$id_gare'") or die (mysql_error());

   $fetch = @mysql_fetch_array($query) or die (mysql_error());

  $id_gare = stripslashes($fetch['id']);

  $data_gara=stripslashes($fetch['data']);

  $nome_gara=stripslashes($fetch['nome_evento']);

  $luogo_gara=stripslashes($fetch['luogo']);

  $regione_gara=stripslashes($fetch['regione']);

  $provincia_gara=stripslashes($fetch['provincia']);

  $tipologia_gara=stripslashes($fetch['tipologia']);

  $distanza_gara=stripslashes($fetch['distanza']);

  $orario_gara=stripslashes($fetch['orario']);

  $indirizzo_gara=stripslashes($fetch['indirizzo']);

  $telefono_gara=stripslashes($fetch['telefono']);

  $sito_gara=stripslashes($fetch['sito_web']);

  $email_gara=stripslashes($fetch['email']);

  $costo_gara=stripslashes($fetch['costo']);

  $scadenza_iscr_gara=stripslashes($fetch['termine_iscrizione']);

  $note_gara=stripslashes($fetch['news_titolo']);

  $news_titolo = stripslashes($fetch['note']);

  //modifichiamo la data nel formato europeo dd mm yyyy

  $data_gara = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', stripslashes($fetch['data']));

  //stampa dei record

  ?>

    </span></td>

  </tr>

  <tr>

    <td colspan="3" class="Testo_Maiuscolo_tabelle Stile1"><div align="center">DETTAGLIO GARA SELEZIONATA </div></td>

  </tr>

  <tr>

    <td colspan="3" class="testo"><?

    echo "<p align=center class=Titolo_Notizie>" .$nome_gara. "</p>";?></td>

  </tr>

  <tr>

    <td width="130" class="testo"><div align="right">Data gara:: </div></td>

    <td width="19">&nbsp;</td>

    <td width="645"><?

    echo "<p align=left class=testo>" .$data_gara. "</p>";?></td>

  </tr>

    <tr>

      <td class="testo"><div align="right">Luogo:</div></td>

      <td>&nbsp;</td>

      <td><?

    echo "<p align=left class=testo>" .$luogo_gara. "</p>";?></td>

  </tr>

  <tr>

    <td class="testo"><div align="right">Regione:</div></td>

    <td>&nbsp;</td>

    <td><?

    echo "<p align=left class=testo>" .$regione_gara. "</p>";?></td>

  </tr>

  <tr>

    <td class="testo"><div align="right">Provincia:</div></td>

    <td>&nbsp;</td>

    <td><?

    echo "<p align=left class=testo>" .$provincia_gara. "</p>";?></td>

  </tr><tr>

    <td class="testo"><div align="right">Tipologia:</div></td>

    <td>&nbsp;</td>

    <td><?

    echo "<p align=left class=testo>" .$tipologia_gara. "</p>";?></td>

    </tr><tr>

    <td class="testo"><div align="right">Distanza:</div></td>

    <td>&nbsp;</td>

    <td><?

    echo "<p align=left class=testo>" .$distanza_gara. "</p>";?></td>

    </tr><tr>

    <td class="testo"><div align="right">Orario:</div></td>

    <td>&nbsp;</td>

    <td><?

    echo "<p align=left class=testo>" .$orario_gara. "</p>";?></td>

    </tr><tr>

    <td class="testo"><div align="right">Indirizzo:</div></td>

    <td>&nbsp;</td>

    <td><?

    echo "<p align=left class=testo>" .$indirizzo_gara. "</p>";?></td>

    </tr><tr>

    <td class="testo"><div align="right">Telefono:</div></td>

    <td>&nbsp;</td>

    <td><?

    echo "<p align=left class=testo>" .$telefono_gara. "</p>";?></td>

    </tr>

  <tr>

    <td class="testo"><div align="right">Sito internet: </div></td>

    <td>&nbsp;</td>

    <td><?

  echo "<p class=testoRientrato><b><a href=$sito_gara><b>$sito_gara</b></p></a></p>"?></td>

  </tr>

    <tr>

      <td class="testo"><div align="right">Email:</div></td>

      <td>&nbsp;</td>

      <td><?

   echo "<p class=testoRientrato><b><a href=mailto:$email_gara>$email_gara</a></b></p>"?></td>

  </tr>

  <tr>

    <td class="testo"><div align="right">Costo:</div></td>

    <td>&nbsp;</td>

    <td><?

    echo "<p align=left class=testo>" .$costo_gara. "</p>";?></td>

  </tr> <tr>

    <td class="testo"><div align="right">Scadenza iscrizione: </div></td>

    <td>&nbsp;</td>

    <td><?

    echo "<p align=left class=testo>" .$scadenza_iscr_gara. "</p>";?></td>

    </tr> <tr>

    <td class="testo"><div align="right">Note:</div></td>

    <td>&nbsp;</td>

    <td><?

    echo "<p align=left class=testo>" .$note_gara. "</p>";?></td>

    </tr> 

   <tr>

     <td>     <div align="right"></div>

   <td>   </tr> <tr>

       <td><div align="right"></div></td>

       <td>&nbsp;</td>

     <td><strong>

      <?

    echo "<div align=right><a href=javascript:history.go(-1) class=testo>Torna Indietro</a>";;?>

     </strong></td>

    </tr>

</table>

<?

}

?>

<p>&nbsp;</p>

</body>

</html>

risposto 8 anni fa
danilob
X 0 X

ti segnalo 2 errori: nella query che estrae l'elenco delle news, invece di prelevare solo i campi che ti servono, leggi tutti i dati (SELECT *), quindi anche i testi di tutte le news, ma mi sembra di aver capito he tu voglia mostrare il testo solo di una particolare news.

L'altro errore è che la select per estrarre i dati della news particolare da mostrare completamente viene eseguita al termine ciclo while della precedente query, pertanto la news particolare viene mostrata alla fine dell'elenco. Se pensi poi che questi dati gli hai già estratti nella precedente query allora è chiaro che è inutile.

Dovresti mettere un IF nel primo ciclo while in modo da controllare se la news che stai stampando è proprio quella richiesta dall'utente, ed in tal caso mostrare il testo. Se lasci la SELECT * allora il testo sarà già disponibile, altrimenti devi estrarlo con una nuova query.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

ok..

Ma io nella prima query uso già select:

$query = @mysql_query("SELECT data,nome_evento,luogo, regione, provincia, tipologia, distanza, orario, indirizzo, telefono, sito_web, email, costo, termine_iscrizione, note FROM gare WHERE id='$id_gare'") or die (mysql_error());

Non sò poi come dire con if di stampare la news scelta dall'utente...

Devo usare l'if che ho usato nella 2° query nella 1?

Cavolo ho una confusione pazzesca... Abbi pazienza..

risposto 8 anni fa
danilob
X 0 X

l'IF va messo all'interno del ciclo WHILE della prima query

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

ok ma come gli dico if......

risposto 8 anni fa
danilob
X 0 X

Gianni èfino adesso che provo riesco a inserirla o dopo o prima, tutto tranne che nel mezzo dove voglio io.... Dammi un aiuto please...

risposto 8 anni fa
danilob
X 0 X

Ci sei ancora.... perfavore..

risposto 8 anni fa
danilob
X 0 X

ho trovato un sito che ha le news come vorrei inserirle io..

questo il link:

http://www.podistidoc.it/cal.php

mi aiutate?

risposto 8 anni fa
danilob
X 0 X

ho provato a mettere l'if nel ciclo wile ma quando vado a visualizzare il browser gira per 1-2 minuti e poi mi da:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

questo il codice che ho provato e non funziona:

   $query = @mysql_query("SELECT * FROM gare  ORDER BY data desc LIMIT $show,$max_row") or die (mysql_error());

while ($fetch=@mysql_fetch_array($query))

 {

 if ($_GET['id']=="")

 {

   $id_gare = stripslashes($fetch['id']);

  $data_gara=stripslashes($fetch['data']);

  $nome_gara=stripslashes($fetch['nome_evento']);

  $luogo_gara=stripslashes($fetch['luogo']);

  $regione_gara=stripslashes($fetch['regione']);

  $provincia_gara=stripslashes($fetch['provincia']);

  $tipologia_gara=stripslashes($fetch['tipologia']);

  $distanza_gara=stripslashes($fetch['distanza']);

  $orario_gara=stripslashes($fetch['orario']);

  $indirizzo_gara=stripslashes($fetch['indirizzo']);

  $telefono_gara=stripslashes($fetch['telefono']);

  $sito_gara=stripslashes($fetch['sito_web']);

  $email_gara=stripslashes($fetch['email']);

  $costo_gara=stripslashes($fetch['costo']);

  $scadenza_iscr_gara=stripslashes($fetch['termine_iscrizione']);

  $note_gara=stripslashes($fetch['news_titolo']);

   //modifichiamo la data nel formato europeo dd mm yyyy

  $data_gara = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', stripslashes($fetch['data']));

   //stampa dei record

  echo "<li><a href=\"all_visual_gare2.php?id=" .$id_gare. "\" class=Testo_news> ".$data_gara ."  &nbsp; ". $nome_gara. "</a></li></span><br>";

  }else{

  $id_gare = $_GET['id'];

  $query = @mysql_query("SELECT * FROM gare WHERE id='$id_gare'") or die (mysql_error());

  //stampa dei record

//stampa dei record

  echo "<h3>" .$none_gara. "</h3>";

  echo "<h4>" .$luogo_gara. "</h4>";

  echo "<h5>Inserito il: " .$tipologia_gara. "</h5>";

}

}

risposto 8 anni fa
danilob
X 0 X

visto che la prima SELECT estrae già tutti i dati delle news, l'IF all'interno del ciclo while non deve ripetere la query ma deve solo limitarsi a mostrare interamente la particolare news selezionata.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

e allora dove lo metto.... non riesco avrò già provato 1000 volte....

risposto 8 anni fa
danilob
X 0 X

dove lo metti cosa?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

if... ovunque lo metto non va...

risposto 8 anni fa
danilob
X 0 X

l'if va messo subito dopo il while  :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

così però non me lo visualizza come io vorrei...

risposto 8 anni fa
danilob
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda