2014-08-28 12 views
0

我有PAR_ID和列(par1-5)1表長達5,但我想有我下面的PHP函數來呼應任意數量的列如何從MySQL數據庫除了第一個在PHP中回顯列1 ... n?

//-------------------------------------- get about ---------------------------------------------- 
function getAbout($option){ 
    $div = array(); 
    $sql_st = "undefined"; 

    if($option == "about") 
     $sql_st = "SELECT * FROM `about` where par_id='1'"; 

    // connect to database 
    mysql_connect($_SESSION['dbSever'],$_SESSION['dbUser'],$_SESSION['dbPass']) or die(mysql_error()); 
    mysql_select_db($_SESSION['tblName']) or die(mysql_error()); 

    $result = mysql_query($sql_st) or die(mysql_error()."<br/>".$sql_st); 
    $num_rows = mysql_num_rows($result); 

    while ($row = mysql_fetch_array($result)){  
     // not sure what to do here 
    } 
    // disconnect 
    mysql_close(); 

    return $div; 
} 
+1

[**請不要在新代碼中使用'mysql_ *'函數**](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in- PHP)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli) - [這篇文章](http://php.net/manual/en/mysqlinfo。 api.choosing.php)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 – misterManSam 2014-08-28 13:01:09

+0

謝謝。我會記住 – PiboRock 2014-08-28 13:04:58

回答

1

從你的問題標題我假設你有一個ID可能在你的第一列,你想保持打印。你可以嘗試這樣的:

$numberOfColumns = mysql_num_fields($result); 
while ($row = mysql_fetch_array($result)){  
    for ($i = 1; $i < $numberOfColumns; $i++){ 
     echo $row[$i]; 
    } 
} 

for循環的$i迭代器與1值開始,因爲PHP處理(如多語言)陣列作爲從零開始,這意味着第一個元素是由$row[0]引用(就像在這個例子中那樣) - 通過在一個循環處開始循環,併爲數組中的儘可能多的元素進行操作,可以有效地抓取除第一個元素之外的所有元素。

+0

非常感謝Gabor! – PiboRock 2014-08-28 13:15:25

1

A的非常簡單的人會有一個標誌,像這樣:

$skippedFirstRow = false; 
while ($row = mysql_fetch_array($result)){  
    if(!$skippedFirstRow) { 
    //do whatever you want here 
    } 
    $skippedFirstRow = true; 
} 

但是,請記住,這僅僅是一個快速黑客你想要的東西,並考慮你的代碼,但它不是一個完美的解決方案。

+0

感謝cgf!這是很好的知道 – PiboRock 2014-08-28 13:14:36

相關問題