2014-01-27 30 views
0

嗨,我卡在這個回聲陣列的一部分。只獲得第一項。 請幫忙!所有的幫助將不勝感激!只有獲得第一項數組在php mysqli

session_start(); 
$session = $_SESSION['sessionId']; 

$link = mysqli_connect("localhost", "ideajackpot", "random!", "ideajackpot"); 

if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$result = "SELECT title FROM title WHERE session_id LIKE $session"; 

$flickrItems = mysqli_query($link, $result); 
$flickrArray = mysqli_fetch_array($flickrItems); 


mysqli_close($link); 

foreach($flickrArray as $result) { 
    echo $result.' '; 
} 

回答

4

由於您只需要調用mysqli_fetch_array()一次,您只能獲取SQL查詢的第一行。您可以通過結果需要循環將您的所有返回的行:

while ($flickrArray = mysqli_fetch_array($flickrItems); 
    echo $flickrArray['title'].' '; 
} 
+0

我改成了回聲$ flickrArray [0]「。 「; 現在它的工作謝謝! –

+0

這也可以工作。 –

+0

雖然我很好奇。這行'WHERE session_id LIKE $ session'不應該是'WHERE session_id ='$ session''?以另一種方式做它會需要'%'符號,不是嗎? –

1

你可以嘗試也面向對象的形式給出:

$link = new mysqli("localhost", "ideajackpot", "random!", "ideajackpot") 

    $flickrItems = $link->query("SELECT title FROM title WHERE session_id LIKE $session"); 

    while ($flickrItem = $flickrItems->fetch_assoc()){ 
     $result[] = $flickrItem; 
    } 

    var_dump($result); 
+0

謝謝我會牢記這一點 –

1

如果你只想第一,或者取,數組中的最後一項,爲什麼不爲此創建一些小函數。

/** 
* Return first element in array. 
* 
* @param array $array 
* @return mixed 
*/ 
function array_first(array $array) 
{ 
    reset($array); 

    return current($array); 
} 

/** 
* Return last element in array. 
* 
* @param array $array 
* @return mixed 
*/ 
function array_last(array $array) 
{ 
    reset($array); 

    return end($array); 
} 

用法:

$foo = [1, 2, 3]; 

var_dump(array_last($foo));