sql >> Databáze >  >> RDS >> Mysql

V tabulce nelze zobrazit hodnoty oddělené čárkami

Všechny vaše smyčky jsou špatné, například

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

Problém je v tom, že přepisujete proměnnou při každé iteraci bez použití is. To znamená, že skončíte s pouze poslední hodnotou v proměnné. I v tomto případě je váš úkol také obrácený. Měli byste mít:

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

Pokud se nesnažíte udělat něco úplně jiného, ​​ale bez ohledu na to je to špatně. Můžete se například pokoušet aktualizovat hodnotu, ale i tak to není správně.

Každopádně.

Co musíte udělat, je uvnitř smyčky, musíte vložit HTML, který vydáváte, abyste mohli vypsat hodnotu při každé iteraci smyčky.

Takže jen pro příklady, řekněme $des_cc je pole jako toto:

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

Nyní si vezměte smyčku

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

echo $rep;

Tím se vypíše

6

Což je poslední hodnota přiřazená k $rep . Nyní bychom tuto proměnnou vypsali do smyčky takto:

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

Vypíše toto (za předpokladu, že jsme přidali návrat řádku):

1
2
3
4
5
6

Totéž platí, pokud tuto proměnnou vložíte do HTML. Doufám, že to dává smysl.

Několik dalších příkladů této chyby ve vašem kódu:

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

AND

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

Další věc, kterou můžete udělat, je uložit tato data do jiného pole, jako je toto

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

Tento příklad v podstatě zkopíruje pole do $rep jeden prvek po druhém. Nemyslím si, že to je to, co chcete, uvádím to pouze pro úplnost.




  1. Vyrovnávání zátěže s ProxySQL pro Percona XtraDB Cluster

  2. STRING_SPLIT() v SQL Server 2016:Následná akce #2

  3. Skrýt duplicitní výsledky v dotazu MySQL

  4. jak vyčistit/vyprázdnit fond vyrovnávací paměti mysql innodb?