2011-03-10 53 views
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 

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

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

回答

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/>'; 
} 
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 />"; 
} 
+0

如果'$ row'是空的? – 2011-03-10 15:20:35

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: 每一行的数据写入到一个数组,然后使用implode

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


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

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 />"; 

}