2013-09-22 29 views
1

我連接到數據庫,並且所有的都是正確的,我做了選擇,所有都是正確的。但是,當我試圖獲取所有行時,問題就出現了。我試圖與所有mysql_fetch ...(陣列,assoc命令...)獲取所有行,並只顯示一個

$registros = mysql_query("SELECT * FROM 22bf654e4dfa688d0ec6add2f6f7bf76", $con); 
$reg = mysql_fetch_array($registros); 

if(($reg) 
{ 
    echo $reg; 

} 
+0

我會建議[基本MySQL/PHP教程](http://devzone.zend.com/12/php-101-part-8-databases-and-other-animals_part-1/)。 –

+0

haha​​ahah xD是的表是這個名字..我知道是奇怪的,但是是一個表爲每個用戶自動創建...我試着用你把Joachim,但它不工作 – kartGIS

+0

每個用戶1桌?這聽起來像一個非常糟糕的主意 – 2013-09-22 21:37:09

回答

4

記住mysql_庫已被廢棄,你應該使用PDO或MySQLi。

使用PDO的代碼是這樣的:

<?php 
// Your database info 
$db_host = ''; 
$db_user = ''; 
$db_pass = ''; 
$db_name = ''; 

$con = new PDO("mysql:host={$db_host};dbname={$db_name}", $db_user, $db_pass); 
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$sql = "SELECT * FROM 22bf654e4dfa688d0ec6add2f6f7bf76"; 
$result = $con->prepare($sql); 
$result->execute(); 

$reg = $result->fetchALL(PDO::FETCH_ASSOC); 
$con = NULL;   
print_r($reg); 
// To show just one row you can use: 
print_r($reg[0]); 
// So let's say you have a field called "name", then u could use: 
echo $reg[0]['name']; 

你需要遍歷的結果,這將所有的數據存儲到一個數組$reg

<?php 
// your database info here 
$db_host = ''; 
$db_user = ''; 
$db_pass = ''; 
$db_name = ''; 

$conn = mysql_connect($db_host, $db_user, $db_pass);  
if (!$conn) 
{ 
    die("Unable to connect to DB: " . mysql_error()); 
} 

if (!mysql_select_db($db_name)) 
{ 
    die("Unable to select {$db_name}: " . mysql_error()); 
} 

$sql = "SELECT * FROM 22bf654e4dfa688d0ec6add2f6f7bf76";  
$registros = mysql_query($sql); 
if (!$registros) 
{ 
    die("Error: " . mysql_error()); 
} 
$reg = array(); 
while ($row = mysql_fetch_assoc($registros)) 
{ 
    $reg[] = $row; 
} 

print_r($reg); 
// To show just one row you can use: 
print_r($reg[0]); 
// So let's say you have a field called "name", then u could use: 
echo $reg[0]['name']; 
+0

不得不認爲'22bf654e4dfa688d0ec6add2f6f7bf76'不是表名,而是一個行ID? – 2013-09-22 21:10:12

+1

@Dagon應用程序將會死亡,並告訴他錯誤,希望他會告訴我們,這樣我們就可以指出他正確的方向。 – Prix

+0

申請謀殺是罪 – 2013-09-22 21:12:56

1

您應該使用mysqli代替mysql,但是這完全是另外一個答案。

while($row = mysql_fetch_array($result)) { 
    echo $row['column-name-here']; 
} 

這將遍歷查詢中的所有結果。如果你只有1個結果,那隻能說明1.如果你只想要1分的結果,那麼在您的查詢指定要像

SELECT * FROM table WHERE something = something; 
0

$ reg是所有行的數組;要在每次迭代中使用的foreach來遍歷它,然後print_r的,而不是回聲的,因爲這將是列該行

如果你只是想在第一行的一個數組, print_r($reg[0])

但更好的是在查詢中使用where子句或限制語句以獲得更好的性能。不要返回比您需要的數據更多的數據。

相關問題