Mysql
 sql >> Database >  >> RDS >> Mysql

Impossibile mostrare valori separati da virgole in una tabella

Tutti i tuoi loop sono sbagliati, per esempio

foreach($des_cc as $out) {
   $out = $rep; 
}

Il problema qui è che stai sovrascrivendo la variabile su ogni iterazione senza usare is. Quello che fa è finire con solo l'ultimo valore nella variabile. Anche in questo caso il tuo compito è arretrato. Dovresti avere:

foreach($des_cc as $out) {
   $rep = $out; 
}

A meno che tu non stia cercando di fare qualcosa di completamente diverso, ma comunque sia sbagliato. Ad esempio, potresti provare ad aggiornare il valore, ma anche in questo caso non è stato eseguito correttamente.

Comunque.

Quello che devi fare è all'interno del ciclo, devi inserire l'HTML che stai emettendo in modo da poter generare il valore su ogni iterazione del ciclo.

Quindi, solo per motivi di esempio, diciamo $des_cc è un array come questo:

$des_cc = [1,2,3,4,5,6];

Ora prendi il tuo giro

foreach($des_cc as $out) {
   $rep = $out; 
}

echo $rep;

Questo produrrà

6

Qual è l'ultimo valore assegnato a $rep . Ora abbiamo prodotto quella variabile all'interno del ciclo in questo modo:

foreach($des_cc as $out) {
   $rep = $out; 
   echo $rep;
}

Verrebbe restituito questo (supponendo che abbiamo aggiunto un ritorno di riga):

1
2
3
4
5
6

Lo stesso vale se metti quella variabile nel tuo HTML. Spero che abbia senso.

Alcuni altri esempi di questo errore nel tuo codice:

while($rowdes=mysql_fetch_array($sqdes)){ 
    $desid =  $rowdes['designation'];
} 

E

while($rowdes2=mysql_fetch_array($sqdes2))
{ 
    $desid2 =  $rowdes2['reporting_head'];
    $reportingheadid = $rowdes2['designation_id'];
} 

L'altra cosa che puoi fare è archiviare quei dati in un altro array, come questo

 $rep = []
 foreach($des_cc as $out) {
    $rep[] = $out; 
 }

Questo esempio fondamentalmente copia l'array in $rep un elemento alla volta. Non credo sia quello che vuoi, lo dico solo per completezza.