2009-08-18 19 views
6

मैं एक फ़ंक्शन बनाने का प्रयास कर रहा हूं, जो एक MySQL क्वेरी लौटाएगा, जिसे मैं लूप कर सकता हूं और परिणाम संभाल सकता हूं, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। मैं यह भी सही तरीके से नहीं कर रहा हूं।mysql परिणाम लौटने के लिए एक php फ़ंक्शन बनाना

function GetAccounts($username){ 
require("dbconn.php"); 
$result = mysql_query("SELECT * FROM `accounts` WHERE `username` = '$username' ") or trigger_error(mysql_error()); 
return "$result"; 
} 

$result = GetAccounts($username); 
while($row = mysql_fetch_array($result)){ 
foreach($row AS $key => $value) { $row[$key] = stripslashes($value); } 
$theusername = $row['theusername']; 
$thepassword = $row['thepassword']; 
echo $theusername; 
} 

त्रुटि मैं प्राप्त

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource 

मैं समारोह में ऊपर के सभी लोड हो रहा है की कोशिश की है, लेकिन केवल एक ही परिणाम हर बार वापस जाने के लिए हो सकता है। चूंकि प्रत्येक परिणाम को संभालने की बीमार आवश्यकता के बाद, मैं उपरोक्त तरीके से "सोचता हूं" यह है कि मैं इसे कैसे करना चाहता हूं, लेकिन अगर कोई बेहतर तरीका है, या मैं गलत क्या कर रहा हूं तो मुझे बताएं।

जब मैं उपयोगकर्ता नाम के साथ फ़ंक्शन को प्रतिबिंबित करता हूं, तो मुझे निम्न मिलता है;

Resource id #5 

उत्तर

9

लिंक चर $result के चारों ओर डबल कोट्स निकालें।

function GetAccounts($username){ 
    require("dbconn.php"); 
    $result = mysql_query("SELECT * FROM `accounts` WHERE `username` = '$username' ") or trigger_error(mysql_error()); 
    return $result; 
} 
+0

यह बहुत अच्छा काम करता है, धन्यवाद। वास्तव में क्या हो रहा था? परिणाम परिवर्तनीय उद्धरण क्यों किया यह गड़बड़ है? – mrpatg

+2

नीचे टॉम का जवाब देखें। क्योंकि डबल कोट्स का उपयोग करना मतलब है कि $ परिणाम स्ट्रिंग में डाला गया था। – Pete

9

दोहरे उद्धरण चिह्नों के भीतर $result लाना मतलब है कि यह एक स्ट्रिंग के लिए डाली जा, और फिर प्रकार 'संसाधन' का नहीं रह गया है। इसके बजाए प्रयास करें:

return $result; 
+2

+1, स्पष्टीकरण के लिए धन्यवाद – Pete

संबंधित मुद्दे