Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555

    2 row ad uno stesso array

    Ho un array di questo tipo:

    $priority = array();

    Come faccio ad assegnargli due campi di una stessa tabella? Ora ne assegno uno, cioè:

    Codice PHP:
    $query "SELECT * FROM priorita ORDER BY flags";
    $result mysql_query($query)
          or die(
    mysql_error());

    // ...e li inserisce nell'array
    while($row mysql_fetch_array($result))
    {
        
    $flag $row['flags'];
        
    $priority[$flag] = $row['event_id']; 
    in questa riga

    $priority[$flag] = $row['event_id'];

    vorrei inserire anche $row[tipo].

    Si può fare? E se si, come?

  2. #2
    Codice PHP:
    $query "SELECT * FROM priorita ORDER BY flags";
    $result mysql_query($query)
          or die(
    mysql_error());

    // ...e li inserisce nell'array
    while($row mysql_fetch_array($result))
    {
        
    $flag $row['flags'];
        
    $priority[$flag][] = $row['event_id'];
        
    $priority[$flag][] = $row['tipo']; 
    Intendi una cosa di questo tipo?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Beh si,
    ho pensato ad una cosa del genere. Ma è corretto?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Il problema è che ho uno script che mi gestisce delle priorità nella pubblicazione in una homepage di determinati eventi. Eccolo

    Codice PHP:
    <?
    $priority 
    = array();

    // preleva dal db gli articoli prioritari...
    $query "SELECT * FROM priorita ORDER BY flags";
    $result mysql_query($query)
          or die(
    mysql_error());

    // ...e li inserisce nell'array
    while($row mysql_fetch_array($result))
    {
        
    $flag $row['flags'];
        
    $priority[$flag] = $row['event_id'];
    }

    // seleziona gli ultimi 10 articoli e li memorizza in un array
    $l_news = array();
    $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'];
    }

    // di seguito comincia a mandare in output codice html

    ?>
    <table cellpadding='2' cellspacing='0' border='1'>
        <tr>
        <?
        
    // 12 sono gli articoli prioritari, i primi 4 sono obbligatori
        // cominciamo a scrivere la riga delle intestazioni
        
    for($i =1$i <= 13$i ++)
        {
            
    // oltre il quinto articolo diamo la possibilita' di cancellare la priorita'
            
    if($i 12)
            {
                echo 
    "\t\t<th>[url='p_delete.php?id=$i']P $i[/url]</th>\n";
            }
            else
            {
                echo 
    "\t\t<th>P $i</th>\n";
            }
        }
        
    ?>
        </tr>
        <?
        
    // cicliamo l'array degli articoli e mandiamo in output cio' che server
        
    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[/b]</td>\n";
                    }
                    else
                    {
                        echo 
    "\t\t<td>[url='p_insert.php?event_id=$event_id&flags=$flag']$event_id[/url]</td>\n";
                    }
                }
                else
                {
                    echo 
    "\t\t<td>[url='p_insert.php?event_id=$event_id&flags=$flag']$event_id[/url]</td>\n";
                }
            }
            echo 
    "\t</tr>\n";
        }
        
    ?>
    Questo script pesca l'id dell'evento (event_id) dalla tabella priorità. In questa tabella però ho anche un altro campo, chiamato "tipo". Or bene, vorrei inserire anche questo campo all'interno dello script. In modo tale che poi in fase di stampa mi venga inserito, accanto ad "event_id", anche il campo "tipo".

    Come fare?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Spero che quel che voglio ottenere sia stato chiaro.....

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ho modificato lo script in questo modo:

    Codice PHP:
    <?
    // inizializza l'array in cui memorizzare gli articoli che sono prioritari
    $priority = array();
    $tipo = array();

    // preleva dal db gli articoli prioritari...
    $query "SELECT * FROM priorita ORDER BY flags";
    $result mysql_query($query)
          or die(
    mysql_error());

    // ...e li inserisce nell'array
    while($row mysql_fetch_array($result))
    {
        
    $flag $row['flags'];
        
    $priority[$flag] = $row['event_id'];
        
    $tipo[$flag] = $row['tipo']; 
    }

    // seleziona gli ultimi 10 articoli e li memorizza in un array
    $l_news = array();
    $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'];
    }

    // di seguito comincia a mandare in output codice html

    ?>
    <table cellpadding='2' cellspacing='0' border='1'>
        <tr>
        <?
        
    // 12 sono gli articoli prioritari, i primi 4 sono obbligatori
        // cominciamo a scrivere la riga delle intestazioni
        
    for($i =1$i <= 13$i ++)
        {
            
    // oltre il quinto articolo diamo la possibilita' di cancellare la priorita'
            
    if($i 12)
            {
                echo 
    "\t\t<th>[url='p_delete.php?id=$i']P $i[/url]</th>\n";
            }
            else
            {
                echo 
    "\t\t<th>P $i</th>\n";
            }
        }
        
    ?>
        </tr>
        <?
    // cicliamo l'array degli articoli e mandiamo in output cio' che server
       
    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[$flag]}[/b]</td>\n";
                   }
                   else
                   {
                       echo 
    "\t\t<td>[url='p_insert.php?event_id=$event_id&flags=$flag']$event_id {$tipo[$flag]}[/url]</td>\n";
                   }
               }
               else
               {
                   echo 
    "\t\t<td>[url='p_insert.php?event_id=$event_id&flags=$flag']$event_id {$tipo[$flag]}[/url]</td>\n";
               }
           }
           echo 
    "\t</tr>\n";
       }
        
    ?>
    Ma anche in questo modo non funziona. In pratica ho messo un altro array chiamato "tipo ()" e dentro ho inserito

    $flag = $row['flags'];
    $priority[$flag] = $row['event_id'];
    $tipo[$flag] = $row['tipo'];

    poi l'array "$tipo[$flag]" l'ho messo negli "echo" finali. Ma nulla, mi esce la tabella uguale a prima, con solo il campo "event_id". E inoltre mi da un notice:

    Undefined offset: 13 in c:\programmi\easyphp1-8\www\.............scelta.php on line 79

    cioè nel penultimo echo dello script....

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ho risolto il problema. Posto lo script:

    Codice PHP:
    <?
    // inizializza l'array in cui memorizzare gli articoli che sono prioritari
    $priority = array();

    // preleva dal db gli articoli prioritari...
    $query "SELECT * FROM priorita ORDER BY flags";
    $result mysql_query($query)
          or die(
    mysql_error());

    // ...e li inserisce nell'array
    while($row mysql_fetch_array($result))
    {
        
    $flag $row['flags'];
        
    $priority[$flag] = $row['event_id'];
    }

    // seleziona gli ultimi 10 articoli e li memorizza in un array
    $l_news = array();
    $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'];
    }

    // di seguito comincia a mandare in output codice html

    ?>
    <table cellpadding='2' cellspacing='0' border='1'>
        <tr>
        <?
        
    // 12 sono gli articoli prioritari, i primi 4 sono obbligatori
        // cominciamo a scrivere la riga delle intestazioni
        
    for($i =1$i <= 13$i ++)
        {
            
    // oltre il quinto articolo diamo la possibilita' di cancellare la priorita'
            
    if($i 12)
            {
                echo 
    "\t\t<th>[url='p_delete.php?id=$i']P $i[/url]</th>\n";
            }
            else
            {
                echo 
    "\t\t<th>P $i</th>\n";
            }
        }
        
    ?>
        </tr>
        <?
        
    // cicliamo l'array degli articoli e mandiamo in output cio' che server
        
    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";
        }
        
    ?>
    Ma ora ho un problema, e spero che qualcuno possa dagli uno sguardo. Me la sto cantando e suonando da solo.....

    Il problema è che questo script pesca i dati da una sola tabella. Ora ho un'altra tabella, che si chiama "comunicati". Nella tabella comunicati ho un id chiamato "press_id" ed anche il campo "tipo". Or bene, come posso fare per far sì che lo script inglobi questa nuova variabile da una seconda tabella? E che poi in fase di stampa mi dia anche i comunicati e non solo gli eventi. Grazie per chi avrà voglia, spero, di rispondere. Dopo tutto mi sembra uno script piuttosto utile!!

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    E' così complicato dare uno sguardo allo script? Eppure mi sembra tutto abbastanza chiaro...

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Da questo problema non ne vengo a capo, ho provato diverse soluzioni ma nulla. Non è che c'è qualcuno che può dare uno sguardo allo script ed alla richiesta?

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Ho provato ad inserire i nuovi campi, ma probabilmente commetto degli errori nella gestione del "foreach" e di tutto il ciclo If Else finale......

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.