2012-07-03 26 views
0

如何從mysql查詢中選擇一行並將其保存到變量。這是我目前使用的完整代碼:從mysql查詢中選擇單行並將其保存到變量

<?php 
    header('Content-Type: text/html; charset=utf-8'); 
    include 'config.php'; 

    // Connect to server and select databse. 
    mysql_connect("$dbhost", "$dbuser", "$dbpass")or die("cannot connect"); 
    mysql_select_db("$dbname")or die("cannot select DB"); 


    $IND=$_POST['id']; 


    $IND = stripslashes($IND); 
    $IND = mysql_real_escape_string($IND); 

    $sql = "select * from table where IND='$IND'"; 
    $result=mysql_query($sql); 

     $row = mysql_fetch_array($result); 
     $number = $row['number']; 


    // Mysql_num_row is counting table row 
    $count=mysql_num_rows($result); 

    if ($count == 1) { 
     $message = mysql_fetch_assoc($result); 
     $message['status'] = 'ok'; 
     $message = array($message); 


    } else { 
     $message = mysql_fetch_assoc($result); 
     $message['status'] = 'error'; 
     $message = array($message); 
    } 


    header('Content-Type: application/json'); 
     print '{"key":'. json_encode($message) .'}'; 
?> 

但是當我使用$row = mysql_fetch_array($result); $number = $row['number'];顯示未定義的JSON編碼$消息。

那麼如何從mysql查詢中選擇一條記錄,並讓我的代碼的其餘部分也可以工作呢?

+0

註釋掉'header'行,並執行一個'var_dump($ message)',它說什麼? – SuperSaiyan

+0

使用print_R($ row)來查看有多少行是他們多於1 –

+0

nope,它們不會超過1. $ message只顯示「{」key「:[{」status「:」ok「}] }'但不包含來自查詢 – user1256852

回答

0

聲明變量$messagearray,然後assign條件中的值爲if。嘗試如下:

$message=array(); 
$count=mysql_num_rows($result); 

    if ($count == 1) { 
     $message = mysql_fetch_assoc($result); 
     $message['status'] = 'ok'; 
     $message = array($message); 


    } else { 
     $message = mysql_fetch_assoc($result); 
     $message['status'] = 'error'; 
     $message = array($message); 
    } 
+0

這也不起作用 – user1256852

相關問題