Visualizzare 2 bandiere

Alex_70

Utente Attivo
13 Nov 2018
361
14
18
HELL
Salve a tutti,

con questo codice riesco a visualizzare una bandiera presa dal campo testo "nationality" e passato nello switch

vorrei visualizzare un'altra bandiera (o tante) in caso nel campo testo io scrivo cosi

American, Italian

la virgola e' il deliminatore

come fare?

ecco il mio codice attuale

PHP:
<?php
    //ciclo switch per visualizzare bandiera
   
    $country = $row ['nationality'];
   
    switch ($country)
       {  
       case 'American':  
       $country = '<img src="image_upload/country/us.gif"></img>' ;
       break;

       case 'Scottish':  
       $country = '<img src="image_upload/country/scotland.gif"></img>' ;
       break;      
     
       case 'Russian':
       $country = '<img src="image_upload/country/ru.gif"></img>' ;  
       break;
     
       case 'Italian':
       $country = '<img src="image_upload/country/it.gif"></img>' ;  
       break;

     default:
       $country = '<img src="image_upload/country/nomatch.gif"></img>' ;
         
       }
     
    ?>
flag.png


Grazie
 

Tommy03

Utente Attivo
6 Giu 2018
440
45
28
17
Bassano del Grappa (VI)
Secondo me se il testo da cui prendi le nazionalità è uno solo e ne può contenere piè di una (es. "Italian, American, Scottish"), potresti usare explode e poi un foreach, circa così:
PHP:
$stringa = "Italian, American, Scottish";
$singolo = explode(",", $stringa);
foreach($singolo as $naz){
$naz = trim($naz);
switch($naz){
...
} 
}
Fammi sapere
 

Alex_70

Utente Attivo
13 Nov 2018
361
14
18
HELL
Ciao Tommy03, grazie

onestamente pero' non ho capito :confused: scusa ma ancora ho molto d'imparare

il testo e' prelevato dal campo nationality

$country = $row ['nationality'];

il tuo codice come lo adatto con il mio?

oppure devo eliminare lo switch?
 

Tommy03

Utente Attivo
6 Giu 2018
440
45
28
17
Bassano del Grappa (VI)
Ciao, il campo del database è uno solo e può contenere più nazionalità giusto?
Se si, ad esempio facciamo finta che $country sia "Italian, American".
PHP:
$country = $row['nationality']; // "Italian, American"
$singolo_paese = explode(",", $country);
foreach($singolo_paese as $nationality){
$nationality = trim($nationality);
switch ($nationality)
       {
case 'American':
echo '<img src="image_upload/country/us.gif"></img>' ;
break;
case 'Scottish':
echo '<img src="image_upload/country/scotland.gif"></img>' ;
break;
case 'Russian':
echo '<img src="image_upload/country/ru.gif"></img>' ;
break;
case 'Italian':
echo '<img src="image_upload/country/it.gif"></img>' ;
break;
default:
echo '<img src="image_upload/country/nomatch.gif"></img>' ;
}
}
Con questo codice dovrebbe mostrare la bandiera italiana e quella americana
 

Alex_70

Utente Attivo
13 Nov 2018
361
14
18
HELL
perfetto, adesso vedo le 2 bandiere, ma non e' come vorrei

questo e' l'otupt, nazionality viene preso esternamente

PHP:
         <?php
           
          include ("nationality.php");
               
            ?>
    

          <?php

             if(!empty($row['nationality'])) { echo "<p class=\"bioheading\">Nationality</p><p  class=\"biodata\">" . $row['nationality'] . "&nbsp;" . $nationality . "</p>"; }

            ?>
ho inserito la variabile $nationality ma non visualizzo le bandiere a lato del campo

flag2.png

se possibile il risultato dovrebbe essere cosi

American + bandiera, Italian + bandiera
 
Ultima modifica:

Tommy03

Utente Attivo
6 Giu 2018
440
45
28
17
Bassano del Grappa (VI)
Ciao, scusa il ritardo.
Per mettere immagine + testo devi mettere così, poi se vuoi allinearli tuuti è una questione di CSS e magari dai un'occhiata a vertical-align.
PHP:
$country = $row['nationality']; // "Italian, American"
$singolo_paese = explode(",", $country);
foreach($singolo_paese as $nationality){
$nationality = trim($nationality);
switch ($nationality)
       {
case 'American':
echo '<img src="image_upload/country/us.gif"></img><p>American</p>' ;
break;
case 'Scottish':
echo '<img src="image_upload/country/scotland.gif"></img><p>Scottish</p>' ;
break;
case 'Russian':
echo '<img src="image_upload/country/ru.gif"></img><p>Russian</p>' ;
break;
case 'Italian':
echo '<img src="image_upload/country/it.gif"></img><p>Italian</p>' ;
break;
default:
echo '<img src="image_upload/country/nomatch.gif"></img><p>Niente</p>' ;
}
}
 
  • Like
Reactions: Alex_70

Alex_70

Utente Attivo
13 Nov 2018
361
14
18
HELL
Tommy03

funziona benissimo adesso, io non penso che riuscivo a completarlo, adesso ho imparato qualcosa di nuovo ;)

sei stato molto gentile e disponibile, GRAZIE :)

ecco il risultato finale

flag3.png


ps: Linda Blair non e' di nazionalita' italiana :) era solo per il test del codice
 
  • Like
Reactions: Tommy03