2012-06-20 16 views
6

यह बहुत सीधे आगे है। संपादित करें: अद्यतन प्रश्न और चौथी गूंज जोड़ा गया।MySQL सही डेटा नहीं ला रहा है? (PHP)

यहाँ PHP कोड है:

<?php 

$ratings="3"; 
$item="Inception"; 

$query="SELECT * FROM items WHERE item = '". $item ."' LIMIT 1"; 

echo $query; 

echo "<br />"; 

$result=mysql_query($query); 

echo $result; 

echo "<br />"; 

while ($row = mysql_fetch_array($result)) { 
    $item_id = $row['item_id']; 
    echo $item_id; 
    echo "<br />"; 
} 

    $query_two = "INSERT INTO ratings (rating, item_id), VALUES (' {$ratings} ', ' {$item_id} ')"; 

    echo $query_two; 
    $sql = mysql_query($query_two); 
    mysql_close(); 
?> 

यहाँ सब गूंज के साथ वेब उत्पादन होता है:

SELECT * FROM items WHERE item = 'Inception' LIMIT 1 
Resource id #7 


INSERT INTO ratings (rating, item_id), VALUES (' 3 ', ' ') 

कैसे आ मेरी $ ITEM_ID खाली है? (संसाधन आईडी के नीचे तीसरी पंक्ति)

+0

कि संसाधन 'गूंज $ से है नतीजा; ', आपको क्या लगता था कि वहां क्या होगा? – Wrikken

+0

मैं गलत कोण से सवाल पूछ रहा था। और अभी मेरे अपने सवाल का जवाब दिया। $ Item_id खाली क्यों है? क्योंकि यह $ item_id होना चाहिए - एक टाइपो। लेकिन हर किसी ने मेरे मूल प्रश्न का उत्तर दिया। धन्यवाद! – KickingLettuce

उत्तर

5

कोड के इस भाग को यह पैदा करता है:

$result=mysql_query($query); 

echo $result; 

यह Resource... से पता चलता है, क्योंकि यह resource प्रकार का है, यह सिर्फ क्वेरी के लिए विशेष हैंडलर का एक प्रकार है, यह सामान्य प्रकार की तरह (स्ट्रिंग या उदाहरण के लिए int) नहीं कर रहा है , इसलिए प्रिंट करने के लिए इसमें कुछ भी पठनीय नहीं है।

यदि आप क्वेरी से डेटा प्रिंट करना चाहते हैं तो आपको सबसे पहले इसे प्राप्त करना होगा।

यह भी ध्यान दें कि उन mysql_* कार्यों को बहिष्कृत कर दिया गया है, यह उनका उपयोग करने के लिए निराश है। PHP मैनुअल से नोट:

इस एक्सटेंशन का उपयोग निराश हो गया है। इसके बजाए, MySQLi या PDO_MySQL एक्सटेंशन का उपयोग किया जाना चाहिए। MySQL भी देखें: अधिक जानकारी के लिए एक एपीआई गाइड और संबंधित एफएक्यू चुनना। इस समारोह करने के लिए विकल्प शामिल हैं:

mysqli_query()

पीडीओ :: क्वेरी()

4

डेटाबेस से आईडी के साथ इसका कोई संबंध नहीं है।

यह (Result#7) कहता है कि यह परिणाम संसाधन आपके PHP स्क्रिप्ट निष्पादन द्वारा बनाए जाने वाला सातवां संसाधन है।

2

संसाधन ID वास्तविक प्रक्रिया/उद्देश्य यह है कि MySQL क्वेरी है से आ रही है।

$row = mysql_fetch_array($query); 

echo $row['item'] 
2

आप परिणाम संसाधन के साथ कुछ करने की जरूरत है:

परिणाम आप की जरूरत वापस जाने के लिए। इस प्रयास करें:

$result=mysql_query($query); 

//echo $result; 

$result_array = mysql_fetch_assoc($result); 

print_r($result_array); 

संपादित करें: मैं आप अपने प्रश्न अद्यतन देखें।

आपको अपनी item='Inception' क्वेरी सीधे MySQL में चलाना चाहिए ताकि यह पुष्टि हो सके कि परिणाम आप अपेक्षा करते हैं।

3

इसके अलावा

$query_two = "INSERT INTO ratings (rating, item_id), VALUES (' {$ratings} ', ' {$item_id} ')"; 

होना चाहिए

$query_two = "INSERT INTO ratings (rating, item_id) VALUES (' {$ratings} ', ' {$item_id} ')"; 

आप अल्पविराम हैVALUES से पहले।

इसके अलावा, ऐसा लगता है कि $item_id खाली है। कृपया डीबी जांचें कि क्या आपके पास item = 'Inception' के लिए डेटा है।

संबंधित, Result#7 कृपया अन्य उत्तरों का पालन करें।

+0

अच्छा पकड़, धन्यवाद! – KickingLettuce

+0

रिक्त 'item_id' के लिए एक और संभावित कारण: क्वेरी स्थिति से मेल खाने वाली कोई पंक्ति नहीं हो सकती है। – bfavaretto

1

आप उस परिणाम को सरलता से प्रतिबिंबित नहीं कर सकते हैं।

while ($row = mysql_fetch_array($query)) { 
    echo $row['a_column'] . "<br />"; 
} 

या किसी वस्तु:: आप उदाहरण के लिए एक सरणी के लिए परिणाम लाने के लिए की जरूरत है

while ($variable = mysql_fetch_object($query) { 
$value = $variable->a_column; 
} 
echo $value; 

वहाँ और अधिक तरीके हैं, लेकिन यह सिर्फ दो उदाहरण

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