Php For循环正在通过电子邮件发送表中每行一个字符

Php For循环正在通过电子邮件发送表中每行一个字符,php,html,mysql,Php,Html,Mysql,我在这个问题上纠缠了一段时间。我的要求是通过电子邮件将数据从mySQL发送到客户端。我从公司代码库中的另一个页面获取代码,当它通过电子邮件发送时就可以正常工作 我遇到的问题是,它每行只发送一个字符 这是我的密码: $message = " <br /><hr /><br /><table style='font-size: 12px; width:100%'> <tr>

我在这个问题上纠缠了一段时间。我的要求是通过电子邮件将数据从mySQL发送到客户端。我从公司代码库中的另一个页面获取代码,当它通过电子邮件发送时就可以正常工作

我遇到的问题是,它每行只发送一个字符

这是我的密码:

$message = "
                <br /><hr /><br /><table style='font-size: 12px; width:100%'>
                <tr>
                    <td td width='25%'><strong>Oligo Name</strong></td>
                    <td width='10%'><strong>Base</strong></td>
                    <td width='10%'><strong>Scale</strong></td>
                    <td width='10%'><strong>Mod</strong></td>
                    <td width='10%'><strong>Mod Position</strong></td>
                    <td style='word-break: break-all; width: 500px;'><strong>Oligo Sequence</strong></td>
                    <td width='15%' style='text-align: right'><strong>Price</strong></td>
                </tr>";
                $SampleID = 0;
                $maxrow = $OligoQty;
                for ($i; $i < $maxrow; $i++) {
                    if(trim($SampleName) == '' && trim($Sequence) == '')
                            continue;
                            // $SampleID++; 
                    $bases = preg_replace('/\s+/', '', $Sequence); 
                    $seq_length = strlen($bases);
                    $message .= "
                                <tr>
                                <td width='200'>{$SampleIDS} . {$SampleName[$i]}</td>
                                <td width='40'>{$sequence_length[$i]}</td>
                                <td width='40'>{$SampleScale[$i]}</td>
                                <td width='40'>{$modification[$i]}</td>
                                <td width='40'>{$mod_position[$i]}</td>
                                <td style='word-break: break-all; width: 500px;'>{$Sequence[$i]}</td>
                            </tr>";
                                </tr>";
                }
$message=”



Oligo名称 基础 比例 Mod 模块位置 寡核苷酸序列 价格 "; $SampleID=0; $maxrow=$Qty; 对于($i;$i<$maxrow;$i++){ if(trim($SampleName)=''&&trim($Sequence)='') 继续; //$SampleID++; $bases=preg_replace('/\s+/','.$Sequence); $seq_length=strlen($base); $message.=” {$SampleIDS}.{$SampleName[$i]} {$sequence_length[$i]} {$SampleScale[$i]} {$modification[$i]} {$mod_位置[$i]} {$Sequence[$i]} "; "; }
当我删除for循环时,它会完美地打印出行:


我相信我的for循环有问题,导致它这样做,我不知道为什么。我将$maxrow硬编码为2,这就是为什么我的电子邮件有2行。如果有任何帮助,将不胜感激!

嗯,看起来有点奇怪-你应该在数组上循环。我认为你的值需要使用$I someplace、 更像$SampleID[$i]。这些变量是从哪里来的?Hello@dgig,is通常有[$i]在这些变量之后。我删除了这些变量,以显示在没有for循环的情况下会是什么样子。不管怎样,我仍然每行获得一个字符。请看,那么您所做的是在字符串上循环,而不是在数组上循环。
$SampleScale
不是数组-php将允许您调用
$SampleScale[3]
在一个字符串上,打印出第四个字符,这是您看到的。删除循环和
[$i]
s,您会得到什么结果?正如我在问题中提到的,我知道删除循环和[$i]可以使它工作(这是我问题中的最后一张图片)。你的评论确实帮助我理解了它是在字符串中循环的!这确实帮助了我,因为我正在将代码与另一个具有相同代码的页面进行比较。我很感激。好的。非常好,祝你好运。