Newsgroup: it.comp.www.php
Titolo: ciclo nel ciclo...

con questo codice vorrei fare in modo che vengano prelevati tutte le citta 
distinct in ordine alfabetico da rs_elencocittavisitate (dove non c'è e non 
posso prelevare il campo giornoX) e creare il link per ogni citta dove con 
rs_link individuo la giornata relativa a quella giornata.
Ora in pratica succede che $row_rs_link['giornoX'] preleva sempre il giorno 
3 che corrisponde alla prima citta in ordine alfabetico e non segue il ciclo 
passo passo di row_rs_elencocittavisitate.
cosa manca?
<?php do { ?> <?php
  $city = $row_rs_elencocittavisitate['cittaX'];
  $day = $row_rs_link['giornoX'];
  $track = $_GET['nomeitinerario'];
  echo "<a 
href=\"itinerari_dettagli.php?nomeitinerario=".$track."&giornoX=".$day."\">".$city."</a>"; 
?>
  <p class="Stile25"></p>
  <?php } while ($row_rs_elencocittavisitate = 
mysql_fetch_assoc($rs_elencocittavisitate)); ?> 

Marco ha scritto:

elencocittavisitate e link sono in 2 tabelle diverse ma hanno un id in 
comune?

 comune?
sono due query su un'unica tabella...non riuscivo a fare diversamente, non 
chiedermi perchč!
in pratica guarda a destra "le nostre mete", sulla prima pagina nessun 
problema perchč tutti i giorni abbiamo visitato citta differenti; invece nel 
secondo link č un tour di 3 giorni sempre a Londra e quindiin "le nostre 
mete" mi ripete 3 volte di seguito londra, anche se sarebbe giusto infatti 
cliccando su londra ogni volta vai a finire su giornate differenti. Peccato 
che sia un po' anti estetico....
hai qualcosa di meglio da suggerirmi?
http://itinerarimondo.netsons.org/notiziegenerali.php?nazioneID=1&nomeitinerario=2
http://itinerarimondo.netsons.org/notiziegenerali.php?nazioneID=3&nomeitinerario=4
 

 
beh forse puoi risolvere davvero con un
SELECT DISTINCT (campocitta) , altri1,altri2 FROM tabella;

 ha scritto nel messaggio 
news:463c286a$0$7738$5fc...@news.tiscali.it...

si quello ci avevo già pensato anch'io, rimane pur sempre il fatto che non 
ho un link di riferimento per londra 2 e londra 3.
e se mettessi tra parentesi il giorno di riferimento senza stare a ripetere 
il nome della città?
cioè Londra (giorno 1, 2, 3) e non Londra, Londra, Londra.
è possibile?
la tabella tbl_itinerarianalitici è fatta cosi
itinerario = INT (corrispondente alla variabile url nomeitinerario)
giornoX = INT
cittaX = INT
quella tbl_itinerari
itinerarioID (stesso INT di itinerario della tabella di sopra)
nazioni: INT (stesso di nazioneID della tabella sotto)
nomeitinerario VARCHAR
quella tbl_nazioni
nazioneID
nomenazione
il codice è questo
<div class="bodyText" id="listamappe">
  <div align="left"><span class="subHeader Stile60"><strong>Le nostre mete 
</strong></span> </div>
  <?php do { ?>
  <p class="Stile25"><?php
echo "<a 
href=\"itinerari_dettagli.php?nomeitinerario=".$_GET['nomeitinerario']."&giornoX=".$row_rs_elencocittavisitate['giornoX']."\">".$row_rs_elencocittavisitate['cittaX']."</a>";
?> </p>
  <?php } while ($row_rs_elencocittavisitate = 
mysql_fetch_assoc($rs_elencocittavisitate)); ?>
</div>
la query elencocittavisitate è
$colname_rs_elencocittavisitate = "-1";
if (isset($_GET['nazioneID'])) {
  $colname_rs_elencocittavisitate = $_GET['nazioneID'];
}
mysql_select_db($database_server, $server);
$query_rs_elencocittavisitate = sprintf("SELECT DISTINCT nazioni, cittaX, 
itinerario, itinerarioID, nazioneID, giornoX FROM tbl_itinerari, 
tbl_itinerarianalitici, tbl_nazioni WHERE tbl_itinerari.nazioni = 
tbl_nazioni.nazioneID AND tbl_itinerari.itinerarioID = 
tbl_itinerarianalitici.itinerario AND nazioneID = %s  ORDER BY cittaX ASC", 
GetSQLValueString($colname_rs_elencocittavisitate, "int"));
$rs_elencocittavisitate = mysql_query($query_rs_elencocittavisitate, 
$server) or die(mysql_error());
$row_rs_elencocittavisitate = mysql_fetch_assoc($rs_elencocittavisitate);
$totalRows_rs_elencocittavisitate = mysql_num_rows($rs_elencocittavisitate);
?>

 ....
sono un po duretto ma continuo a non capire perché tu non riesca a 
replicare il comportamento per es. di assisi che pure contiene diversi 
giorni come londra.
A mali estremi  comunque prima del while che scrive le "3 londra" 
imposti una varibile vuota $esiste = ""; al primo passaggio di while fai 
$esiste = $dbresult['citta']e scrivi il link html
se $esiste risulta già uguale a dbresult['citta'] fai un "continue" e 
passi al prossimo record
ma questo è un sistema d'emergenza. la realtà è che devi aver impostato 
male la tabella.

 male la tabella.
quindi da cosi
?php do { ?>
  <p class="Stile25"><?php
echo "<a 
href=\"itinerari_dettagli.php?nomeitinerario=".$_GET['nomeitinerario']."&giornoX=".$row_rs_elencocittavisitate['giornoX']."\">".$row_rs_elencocittavisitate['cittaX']."</a>";
?> </p>
  <?php } while ($row_rs_elencocittavisitate = 
mysql_fetch_assoc($rs_elencocittavisitate)); ?>
</div>
diventa cosi?? non funge....
<?php do { ?>
  <p class="Stile25"><?php
$esiste = "";
$esiste = $row_rs_elencocittavisitate['cittaX'];
echo "<a 
href=\"itinerari_dettagli.php?nomeitinerario=".$_GET['nomeitinerario']."&giornoX=".$row_rs_elencocittavisitate['giornoX']."\">".$row_rs_elencocittavisistate['cittaX']."</a>";
if ($esiste = $row_rs_elencocittavisitate['cittaX'])
continue;


 
scritto senza provarlo dunque speriamo bene..
    $esiste = "";
    while ($row_rs_elencocittavisitate = 
mysql_fetch_assoc($rs_elencocittavisitate))
    {
        if($esiste ==  $row_rs_elencocittavisitate['cittaX'])
         continue;
         echo "<a 
href=\"itinerari_dettagli.php?nomeitinerario=".$_GET['nomeitinerario']."&giornoX=".$row_rs_elencocittavisitate['giornoX']."\">".$row_rs_elencocittavisistate['cittaX']."</a>";
         $esiste =  $row_rs_elencocittavisitate['cittaX'];
    }

    }
naturalmente la select deve avere un ORDER BY città altrimenti il trucco 
non funge

 non funge
si la select order by c'è...ma non riesco a farlo funzionare...sembra giusto 
pero ...
dove devo mettere quel codice? e al posto di cosa?
il codice attuale è questo
<?php do { ?>
  <p class="Stile25"><?php
echo "<a 
href=\"itinerari_dettagli.php?nomeitinerario=".$_GET['nomeitinerario']."&giornoX=".$row_rs_elencocittavisitate['giornoX']."\">".$row_rs_elencocittavisitate['cittaX']."</a>";


 
appunto a questo devi sostituirlo. Manca solo il tag P ma basta che ce 
lo infili dentro l' echo. Dove sta il problema?

 infili dentro l' echo. Dove sta il problema?
scusa era il server su cui mi appoggio che mi dava errori tecnici 
inesistenti....