Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555

    Problema in echo con ciclo else if e foreach

    Salve ragazzi, ho un problema in fase di stampa di una variabile selezionata tramite query. La query è questa:

    Codice PHP:
    $query "SELECT *
        FROM eventi Order by event_id
        DESC LIMIT 0,20"
    ;
    $result mysql_query($query)
          or die(
    mysql_error());

    while(
    $row mysql_fetch_array($result))
    {
        
    $l_news[] = $row['event_id']; 
        
    $tipo $row['tipo']; 

    Ora, la riga "event_id" viene inserita poi in questo ciclo foreach:

    Codice PHP:
        foreach($l_news as $key => $event_id)
        {
            echo 
    "\t<tr>\n";
            for(
    $flag 1$flag <= 13$flag ++)
            {
                
    // se l'articolo risulta tra i prioritari gli mettiamo il grassetto e togliamo il link
                
    if(isset($priority[$flag]))
                {
                 if(
    $event_id == $priority[$flag])
                    {
                        echo 
    "\t\t<td>[b]$event_id{$tipo}[/b]</td>\n";
                    }
                    else
                    {
                        echo 
    "\t\t<td>[url='p_insert.php?event_id=$event_id&tipo=$tipo&flags=$flag']$event_id{$tipo}[/url]</td>\n";
                    }
                    }
                                else
                {
                    echo 
    "\t\t<td>[url='p_insert.php?event_id=$event_id&tipo=$tipo&flags=$flag']$event_id{$tipo}[/url]</td>\n";
                }
                    }
                echo 
    "\t</tr>\n";
                        } 
    Come vedete la riga "event_id" viene mandata in foreach. Poi in fase di stampa viene inserita anche la variabile "tipo". Il problema è questo. Nella tabella "eventi" ho tot eventi, ognuno col suo id. Gli eventi sono differenziati da un campo "tipo". Ad esempio, discoteca ha un tipo "disc", museo un tipo "mus". Ma poi in fase di stampa, cioè con echo, anche se ho 5 eventi tipo "disc" e 5 tipo "mus" mi viene stampato solo il tipo "disc" per tutti e 10 gli eventi. Perchè? Come porre rimedio?

  2. #2

    Re: Problema in echo con ciclo else if e foreach

    Originariamente inviato da marckhh
    Salve ragazzi, ho un problema in fase di stampa di una variabile selezionata tramite query. La query è questa:

    Codice PHP:
    $query "SELECT *
        FROM eventi Order by event_id
        DESC LIMIT 0,20"
    ;
    $result mysql_query($query)
          or die(
    mysql_error());

    while(
    $row mysql_fetch_array($result))
    {
        
    $l_news[] = $row['event_id']; 
        
    $tipo $row['tipo']; 

    $tipo contiene l'ultimo valore letto da DB. Quindi se è 'disc' il tuo echo giustamente visualizzarà sempre 'disc'.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    E quindi come posso risolverlo (tra parentesi, mi legge il primo valore, non l'ultimo, perchè l'ultimo sarebbe "com", invece mi stampa "disc")?

  4. #4
    Originariamente inviato da marckhh
    E quindi come posso risolverlo (tra parentesi, mi legge il primo valore, non l'ultimo, perchè l'ultimo sarebbe "com", invece mi stampa "disc")?
    Ti legge l'ultimo del risultato della query "SELECT * FROM eventi Order by event_id DESC LIMIT 0,20".

    io farei così (evita come la peste le select *):

    Codice PHP:
    $aEventTable = array ();
    $query "SELECT event_id, tipo 
        FROM eventi Order by event_id 
        DESC LIMIT 0,20"

    $result mysql_query($query
          or die(
    mysql_error()); 

    while(
    $row mysql_fetch_array($result)) 
    {
        
    $aEventTable [] = $row;

    EDIT: del resto la documentazione ufficiale di PHP è pregna di esempi da cui puoi liberamente trarre ispirazione. http://it2.php.net/mysql_fetch_array

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Questa riga

    $aEventTable [] = $row;

    mi permette di incorporare entrambi i campi in un unico array? Giusto?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ho provato ma non funziona.

    Questa riga

    $aEventTable [] = $row;

    dovrebbe inglobare i due campi. O mi sbaglio? Ma come deve essere sviluppata per poi mandare l'array nel ciclo foreach? Va lasciata così? Ma ho provato e non funziona....

  7. #7
    Originariamente inviato da marckhh
    Ho provato ma non funziona.

    Questa riga

    $aEventTable [] = $row;

    dovrebbe inglobare i due campi. O mi sbaglio? Ma come deve essere sviluppata per poi mandare l'array nel ciclo foreach? Va lasciata così? Ma ho provato e non funziona....
    a braccio:
    Codice PHP:
    foreach ($aEventTable as $aEvent){
        
    $aEventId $aEvent ['event_id'];
        
    $aEventTipo $aEvent ['tipo'];
        
    $aStr "id: $aEventId; tipo: $aEventTipo;
    ;\n"
    ;
        echo (
    $aStr);

    non testato, ma dovrebbe andare. Poi adattalo alle tue esigenze.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Testerò il codice appena possibile, poi ti farò sapere. Per ora grazie, a più tardi

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Funziona alla perfezione. Ho operato qualche lieve cambiamento ma ora funziona alla grande!! Grazie mille Mac.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.