Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292

    controllare dei campi e restituire il valore

    Ciao ragazzi, vorrei essere aiutato da voi che avete sicuramente più esperienza di me a risolvere un problema. In poche parole poniamo il caso che nella tabella del mio bel db io abbia i seguenti campi:

    id, titolo_it, titolo_uk, titolo_fr, descrizione_it, descrizione_uk, descrizione_fr

    a questo punto dovrei fare in modo che se uno di questi campi sia riempito lui mi deve stampare il suo valore (dando priorità alla lingua italiana "it" ).


    esempio:

    if(($row['tiolo_it'] !=NULL) || ($row['descrizione_it'] !=NULL)) {
    echo $row['tiolo_it'];
    echo $row['descrizione_it'];
    } elseif(($row['tiolo_uk'] !=NULL) || ($row['descrizione_uk'] !=NULL)) {
    echo $row['tiolo_uk'];
    echo $row['descrizione_uk'];
    }
    .....

    in linea di massima il problema si risolverebbe così ma immaginate che ho dei campi 5 volte in più di questi che vi ho elencato, come potrei fare quindi per controllare questi campi senza fare 2000 if?

    Grazie

    M4tt86

  2. #2
    Crea un array con le varie lingue in ordine di priorità, poi esegui un ciclio su questo array, verifichi se i campi contengono dei dati ed eventualmente esegui un break.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Grazie filippo toso ma tutti i campi li devo mettere ad uno a uno?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    up

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    up

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    up

  7. #7
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    $lingue=array("it","en","fr");

    foreach($lingue as $lingua)
    if(($row['tiolo_'.$lingua] != NULL) || ($row['descrizione_'.$lingua] !=NULL))
    {
    echo $row['tiolo_'.$lingua];
    echo $row['descrizione_'.$lingua];
    }
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ciao Gunn,
    innanzitutto grazie per la tua risposta, io sono riuscito a creare queste du funzioni ch mi permettono di fare quello che mi serve. Il problema rimane che in questo modo devo controllare ogni singolo campo. non c'è un modo per controllarli tutti in una volta?


    Codice PHP:
    function array_push_before($src,$in,$pos){
        if(
    is_int($pos)) $R=array_merge(array_slice($src,0,$pos), $inarray_slice($src,$pos));
        else{
            foreach(
    $src as $k=>$v){
                if(
    $k==$pos)$R=array_merge($R,$in);
                
    $R[$k]=$v;
            }
        } return 
    $R;
    }

    function 
    controlla_priorita_lingue ($prefisso,$campo$array_lingue$lingua) {

    if(
    in_array($lingua$array_lingue)) {

    unset(
    $array_lingue[$lingua]);  

    $add_value = array ($lingua);

    $array_lingue array_push_before($add_value,$array_lingue,1);

    }

    foreach (
    $array_lingue as $key=>$value) {

    if(
    $prefisso[$campo.$value] != NULL) {

    return 
    $prefisso[$campo.$value];
    echo 
    $prefisso[$campo.$value];
    break;

    } else {

    continue;

    }

    }



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 © 2024 vBulletin Solutions, Inc. All rights reserved.