2015-06-15 30 views
0

Im做,即時通訊試圖分成這樣的陣列的查詢:mysqli的上查詢添加空值

$sql = "SELECT *FROM questions"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
while($row = $result->fetch_assoc()) { 
$myString = $row["qID"] . "," . $row["question"] . "," . $row["answer"] . "%"; 
$myArray = explode('%', $myString); 

print_r($myArray); 
} 

} else { 
echo "0 results"; 
} 
$conn->close(); 

但是當我打印陣列的print_r($ myArray的);或循環槽我的結果如下:

Array (
    [0] => 1,Vem levde mellan 970-1022,2 
    [1] => 
) 
Array (
    [0] => 2,Vem levde mellan 1008-1050,3 
    [1] => 
) 

爲什麼數組檢索空值?每個數組都有2個索引[0]和[1],但[1]是空的。 [0]索引包含的信息只是我想要的方式,但空索引造成我的麻煩。

+0

這是**不** mysqli這樣做。 mysqli完全不在那裏。這是你建立一個字符串,並爆炸它。爆炸你剛剛建立的一個字符串有什麼意義? –

+0

進出口分裂他們,以統一處理他們的問題遊戲:) – darrrrUC

回答

1

問題是,你在char%處爆炸,而不是在char,。 我認爲你需要的是:

$myArray = array(); 
while($row = $result->fetch_assoc()) 
    $myArray[] = array($row["qID"],$row["question"],$row["answer"]); 

print_r($myArray); 
+0

乾杯,標記。 – darrrrUC

1

$ myString以%結尾。 然後你用%分解字符串。所以期望的輸出是最少有兩個索引的數組。

1

只是爲了充實我的評論上面,這是的mysqli做任何事情:

php > $x = "a,b,c%"; 
php > var_dump(explode('%', $x)); 
array(2) { 
    [0]=> 
    string(5) "a,b,c" 
    [1]=> 
    string(0) "" 
} 

這是爆炸()如果正在使用的分隔符出現在字符串的開始或結束正常行爲。