2012-11-04 74 views
1

我有一個select語句,我想從表中獲取所有行,但似乎有心理障礙 - 這應該是基本的東西,但似乎無法使其工作。基本mysqli選擇

表'postage_price'中只有兩行 - 和兩列:price |裁判

Select語句如下:

$get_postage="SELECT price FROM postage_price ORDER BY ref DESC"; 
$get_postage_result=mysqli_query($dbc, $get_postage) or die("Could not get postage"); 
while($post_row=mysqli_fetch_array($dbc, $get_postage_result)) 
{ 
$post1[]=$post_row; 
} 

我再嘗試呼應的結果出來:

echo $post1['0']; 
echo $post1['1']; 

這是不顯示任何。我的頭痛也無濟於事。

+0

它沒有顯示任何東西或顯示'ArrayArray' –

+0

什麼都沒有? - 所有我需要的是將價格列中的兩個值放入一個數組中,然後在頁面中進一步列出這些值。 – Sideshow

回答

1
while($post_row = mysqli_fetch_array($dbc, $get_postage_result)) 
{ 
    $post1[] = $post_row['price']; 
} 

正如你看到的:$post_row在這一行:= mysqli_fetch_array($dbc, $get_postage_result)是一個數組。您正試圖將整個數組值保存到塊中的另一個數組中。 :)

編輯

while($post_row = mysqli_fetch_array($get_postage_result)) 
... 
+1

不正確 - 但您已向我顯示了我的明顯錯誤 - The mysqli_fetch_array中的$ dbc不應該在那裏。我知道這是一個基本的錯誤,正在停止這項工作:)也許我今天早上開始工作得太早了...... – Sideshow

+0

@Sideshow:Gotcha!哈哈,我的壞。感謝您的糾正... –

+0

不,這是我一直以來的錯誤 - 在週日的代碼應該是非法的:) – Sideshow

0

您正在將1和0作爲字符串索引傳遞,這隻有在數據庫中有一個名爲0或1的列時纔有效。您需要將它們作爲數字索引傳遞。

嘗試:

print_r($post1[0]); 
print_r($post1[1]); 

print_r($post['price']); 
print_r($post['ref']); 
1

你有$post1[]=$post_row;$post_row本身是一個數組。因此,您可以通過以下方式訪問發佈數據:$post1[NUMBER][0]其中NUMBER是$ post1數組索引,而[0]是由mysqli_fetch_array返回的$ post_row的0索引。

也許你想在你的代碼中使用$post1[]=$post_row[0];來避免擁有數組數組。

0

如果事情沒有在PHP腳本的工作,你可以做的第一件事就是獲得更多的知識。你寫的是

echo $post1['0']; 
echo $post1['1']; 

什麼也沒有顯示。只有這些值爲NULLFALSE或空字符串,情況纔會如此。

那麼下一步將是要麼看看$post1第一

var_dump($post1); 

傾倒的變量。

另一步是啓用了錯誤的顯示,並在你的腳本的頂部最高水平的報告,以便你到知道潛在的問題是:

ini_set('display_errors', 1); error_reporting(~0); 

你也可以使用PHP 5.4(在第一部分與舊版PHP 5一起工作。3爲好,foreach沒有,但你可以做query()回報的東西做),並簡化你的腳本一點,像這樣:

class MyDB extends mysqli 
{ 
    private $throwOnError = true; # That is the die() style you do. 

    public function query($query, $resultmode = MYSQLI_STORE_RESULT) { 
     $result = parent::query($query, $resultmode); 
     if (!$result && $this->throwOnError) { 
      throw new RuntimeException(sprintf('Query "%s" failed: (#%d) %s', $query, $this->errno, $this->error)); 
     } 
     return $result; 
    } 
} 

$connection = new MyDB('localhost', 'testuser', 'test', 'test'); 
$query  = 'SELECT `option` FROM config'; 
$result  = $connection->query($query); 
foreach ($result as $row) { 
    var_dump($row); 
} 
0

與所有你的幫助我發現錯誤 - 它是在mysqli_fetch_array我有$ dbc這不是必需的。而不是

$get_postage="SELECT price FROM postage_price ORDER BY ref DESC"; 
$get_postage_result=mysqli_query($dbc, $get_postage) or die("Could not get postage"); 
while($post_row=mysqli_fetch_array($get_postage_result)) 
{ 
$post1[]=$post_row['price']; 
} 

$get_postage="SELECT price FROM postage_price ORDER BY ref DESC"; 
$get_postage_result=mysqli_query($dbc, $get_postage) or die("Could not get postage"); 
while($post_row=mysqli_fetch_array($dbc, $get_postage_result)) 
{ 
$post1[]=$post_row['price']; 
} 

糟糕的一天對我來說:(

感謝所有