1

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

<?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

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

任何帮助请我今天过得很糟糕,我的头完全炸了???

4

5 回答 5

3

尝试使用内爆

while ($row = mysql_fetch_array($new)) {
    $myrows = array();
    foreach ($sam[0] as $v) {
        myrows[] = $row[$v];
    }
    echo implode($DELIMITER, $myrows).'<br />';
}
于 2011-03-10T15:15:09.523 回答
1

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

方法二:设置一个标志,省略一次分隔符;


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

于 2011-03-10T15:16:40.623 回答
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 />";

}
于 2011-03-10T16:03:40.123 回答
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/>';
}
于 2011-03-10T15:14:45.403 回答
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 />";
}
于 2011-03-10T15:14:51.163 回答