摆脱了分界线

时间:2011-03-10 15:08:37

标签: php foreach substr

您好我有以下问题我正在使用以下代码。

<?php

//DB CONNECTION

$ROWS = "id,firstname,lastname";

// explode at the comma and insert into an array
$test = explode("," , $ROWS);

//adds array test to the var sam
$sam = array($test);

// querys the database
$new = mysql_query("SELECT * FROM {$DB_TABLE}");

// while loop to loop through selected fields
while ($row = mysql_fetch_array($new)) {

    foreach ($sam[0] as $v) {

        echo $row[$v] . $DELIMITER . "<br />";

    }

echo "<br />";

}
?>

这将输出以下内容。

834(|)Step(|)Thompson(|)
835(|)Lucy(|)kim(|)
836(|)Iwan(|)Will(|)
837(|)Sarah (|)Good(|)

我正在努力的是我想摆脱最后的分隔符

所以它会是

834(|)Step(|)Thompson
835(|)Lucy(|)kim
836(|)Iwan(|)Will
837(|)Sarah (|)Good

我尝试过使用

// while loop to loop through selected fields
while ($row = mysql_fetch_array($new)) {

foreach ($sam[0] as $v) {

        $test = $row[$v] . $DELIMITER;

        echo substr($test, 0, -1);  
}

echo "<br />";


}

但是这摆脱了所有人的分隔符???

这将输出以下内容。

834Stephompson
835Lucykim
836IwanWill
837SarahGood

理想情况下,我希望每一行都可以存储在一起。

任何帮助请今天我有一个糟糕的一天,我的头完全被炒了???

5 个答案:

答案 0 :(得分:3)

尝试使用implode

while ($row = mysql_fetch_array($new)) {
    $myrows = array();
    foreach ($sam[0] as $v) {
        myrows[] = $row[$v];
    }
    echo implode($DELIMITER, $myrows).'<br />';
}

答案 1 :(得分:1)

方法1: 将每行的数据写入数组,然后使用implode

方法2: 设置一个标志以省略分隔符;


<?php
while (...)
{
    $tmp = 1;
    foreach (...)
    {
        if ($tmp)
        {
            $tmp = 0;
        }
        else
        {
            echo $DELIMETER;
        }
        echo $row[...];
    }
}

答案 2 :(得分:0)

您可以插入一个数组(表示为替代方式)所需的值,并避免从数据库中获取的每一行的foreach,但如果您真的想使用现在的代码,则可以执行以下操作:

while ($row = mysql_fetch_array($new)) {
    $values = array();
    foreach ($sam[0] as $v) { 
        $values[] = $row[$v];
    }
    echo implode($DELIMITER , $values) . '<br/>';
}

或替代

while ($row = mysql_fetch_array($new)) {
    $values = array($row['id'], $row['firstname'], $row['lastname']);
    echo implode('(|)',$values) . '<br/>';
}

答案 3 :(得分:0)

您可以尝试这样的事情

// querys the database
$new = mysql_query("SELECT * FROM {$DB_TABLE}");

// while loop to loop through selected fields
while ($row = mysql_fetch_array($new)) {

    echo $row[0];
    for($i = 1; $i < count($row); $i++) {
        echo $DELIMITER.$row[$i];
    }
    echo "<br />";
}

答案 4 :(得分:0)

感谢所有人们设法让它与以下内容一起使用的响应;)

// querys the database
$new = mysql_query("SELECT {$ROWS} FROM {$DB_TABLE}");

// while loop to loop through selected fields
while ($row = mysql_fetch_assoc($new)) {

    $tmp = array();

    $tmp[] = implode($DELIMITER, $row);

    echo $tmp[0] . "<br />";

}