2011-01-09 7 views
1

Je le code suivantphp, mysql, tableaux - comment obtenir le nom de la ligne

while($row = $usafisRSP->fetch_assoc()) { 
    $id = $row['id']; 
    $Applicantid = $row['Applicantid']; 
    $unique_num = $row['unique_num']; 

    // ................. 

    $hidden_fields = array($Applicantid, $unique_num, $regs_t ....); 
    $hidden_values = array(); 

    foreach ($hidden_fields as $key => $value) { 
     $hidden_values[$value] = "$key = ".base64_decode($value)."<br>"; 
     echo $hidden_values[$value]; 
    } 
} 

et le résultat est quelque chose comme ça

 
0 = 116153840 
1 = 136676636 
2 = 2010-12-17T04:12:37.077 
3 = XQ376 
4 = MUKANTABANA 

Je voudrais remplacer 0, 1, 2, 3 etc avec des valeurs personnalisées comme "Id", "nom de l'application" pour faire le résultat comme

 
id = 116153840 
application name = 136676636 
etc .. 
comment puis-je faire cela?

Répondre

0

Remplacer la ligne $hidden_fields = array(... ce qui suit:

$hidden_keys = array('id', 'Applicantid', 'unique_num'); 
$hidden_fields = array_intersect_key($row, array_fill_keys($hidden_keys, NULL)); 

Si vous souhaitez supprimer tous les champs avec la valeur 0, utilisez

$hidden_fields = array_filter($hidden_fields, function($v) {return $v != 0;}); 

(cela omettre complètement les 0-entrées) ou

$hidden_fields = array_map($hidden_fields, function($v) {return ($v==0?'':$v);}); 

(cela va les laisser en blanc). Si vous utilisez une version plus ancienne que la version 5.3, vous devrez remplacer les fonctions anonymes par des appels à create_function.

+0

merci beaucoup pour la réponse. Pouvez-vous m'aider un peu plus? Je n'aimerais pas afficher le contenu d'une clé/valeur spécifique si la valeur = 0. J'ai le code suivant mais cela ne fonctionne pas ------ if (base64_decode ($ value) == 0) { $ hidden_values ​​[$ value] = ""; } – Michael

+0

@Michael mis à jour pour inclure cette exigence. N'hésitez pas à poser une autre question de stackoverflow pour des besoins supplémentaires, assurez-vous juste qu'elle ne commence pas par "Premièrement, lisez ma question précédente: ...";) – phihag

0

Je suppose que tous les champs de votre rangée ne doivent pas être des champs cachés. Sinon, vous pouvez simplement faire $hidden_fields = $row.

Je voudrais créer un tableau qui spécifie les champs cachés:

$HIDDEN = array(
    'id' => 'Id', 
    'Applicantid' => 'application name', 
    'unique_num' => 'whatever' 
); 

Et puis dans votre boucle while:

while(($row = $usafisRSP->fetch_assoc())){ 

    $hidden_fields = array(); 

    foreach$($HIDDEN as $field=>$name) { 
     $hidden_fields[$name] = $row[$field]; 
    } 

    //... 

    foreach($hidden_fields as $name => $value) { 
     $hidden_fields[$name] = $name . ' = ' . base64_decode($value); 
     echo $hidden_values[$name]; 
     // or just echo $name, ' = ',$hidden_fields[$value]; 
    } 
} 
0
foreach ($row as $key => $value) { 
    $hidden_values[$value] = "$key = ".base64_decode($value)."<br>"; 
    echo $hidden_values[$value]; 
} 

Cela pourrait vous donner quelque chose de pertinent. Grâce à l'accès aux clés de chaîne à partir du tableau de lignes qui contient les clés de chaîne

+0

Ceci placerait chaque champ dans '$ row' comme champ caché. –

Questions connexes