2011-03-10 51 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 />"; 

}