Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Não é possível mostrar valores separados por vírgulas em uma tabela


Todos os seus loops estão errados, por exemplo
foreach($des_cc as $out) {
   $out = $rep; 
}

O problema aqui é que você está sobrescrevendo a variável em cada iteração sem usar is. O que isso faz é que você acaba com apenas o último valor na variável. Também neste caso, sua atribuição também está para trás. Você devia ter:
foreach($des_cc as $out) {
   $rep = $out; 
}

A menos que você esteja tentando fazer algo totalmente diferente, mas independentemente disso está errado. Por exemplo, você pode estar tentando atualizar o valor, mas mesmo assim não é feito corretamente.

Qualquer maneira.

O que você precisa fazer é dentro do loop, você precisa colocar o HTML que você está gerando para que possa gerar o valor em cada iteração do loop.

Então, apenas como exemplo, digamos $des_cc é uma matriz assim:
$des_cc = [1,2,3,4,5,6];

Agora bem, pegue seu loop
foreach($des_cc as $out) {
   $rep = $out; 
}

echo $rep;

Isso vai sair
6

Qual é o último valor atribuído a $rep . Agora, tínhamos gerado essa variável dentro do loop assim:
foreach($des_cc as $out) {
   $rep = $out; 
   echo $rep;
}

Ele produziria isso (supondo que adicionamos um retorno de linha):
1
2
3
4
5
6

O mesmo vale se você colocar essa variável em seu HTML. Espero que isso faça sentido.

Alguns outros exemplos desse erro em seu código:
while($rowdes=mysql_fetch_array($sqdes)){ 
    $desid =  $rowdes['designation'];
} 

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

A outra coisa que você pode fazer é armazenar esses dados em outro array, como este
 $rep = []
 foreach($des_cc as $out) {
    $rep[] = $out; 
 }

Este exemplo basicamente copia o array em $rep um elemento de cada vez. Eu não acho que é isso que você quer, eu só mencionei isso para completar.