Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql_fetch_array और php में लूप करते समय

आप मूल रूप से गलत समझ रहे हैं कि ये चीजें कैसे काम करती हैं।

mysql_fetch_array . में "सरणी" सभी रिकॉर्ड की एक सरणी नहीं है, बल्कि वर्तमान रिकॉर्ड के भीतर डेटा की एक सरणी है।

आपके मामले में, आप केवल एक ही फ़ील्ड ला रहे हैं, इसलिए सरणी में केवल एक ही तत्व होगा (यानी $row[0] ), लेकिन सिद्धांत एक ही है -- यह एकल रिकॉर्ड की एक सरणी है जिसे आपने अभी पढ़ा है।

किसी एक समय में केवल वर्तमान रिकॉर्ड का डेटा ही ऐरे में होता है। while लूप के लिए है; यह प्रत्येक रिकॉर्ड को एक के बाद एक लोड करता है।

यदि आप एक ऐसा सरणी बनाना चाहते हैं जिसमें सारा डेटा हो, तो आपको इसे इस तरह करना होगा:

$fullData = array()
while($row = mysql_fetch_array($tableIndex) ){
    $fullData[] = $row[0];
}

यह आपके द्वारा पढ़े जा रहे सभी डेटा को एक बड़ी सरणी में डाल देगा, जिसकी आप अपेक्षा कर रहे हैं। अब आप वह कर सकते हैं जो आप प्रश्न में करना चाहते थे:

echo $fullData[0].'<br>';
echo $fullData[1].'<br>';
echo $fullData[2].'<br>';

आशा है कि यह मदद करता है।

यहां यह ध्यान देने योग्य है कि mysql_xxx() कार्यों का परिवार बहिष्कृत और अप्रचलित माना जाता है। यदि आप केवल PHP सीख रहे हैं (जो ऐसा प्रतीत होता है), तो मैं दृढ़ता से अनुशंसा करता हूं कि आप इन कार्यों को सीखना बंद कर दें, और PDO सीखें। इसके बजाय पुस्तकालय। यह अधिक आधुनिक है और इसमें बहुत सारी विशेषताएं हैं जो mysql कार्य प्रदान नहीं कर सकते। इसके अलावा, PHP के भविष्य के संस्करण mysql . को हटा देंगे पूरी तरह से काम करता है, इसलिए आपको किसी बिंदु पर स्विच करना होगा -- यह अभी भी हो सकता है, जबकि आप अभी भी सीख रहे हैं।

साथ ही (प्रश्न के लिए प्रासंगिक चीजों को रखने के लिए), पीडीओ लाइब्रेरी में एक विशेषता है जो वास्तव में वही करती है जो आप एक ही फ़ंक्शन में खोज रहे हैं:PDO::fetchAll() . इस पद्धति का उपयोग करने का अर्थ है कि आप कर सकते हैं सभी डेटा को एक बड़ी सरणी में एक पंक्ति में लाने के लिए थोड़ी देर लूप करने की आवश्यकता नहीं है। कोड कुछ इस तरह दिखेगा:

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetchAll();

(उदाहरण PDO::fetchAll के लिए PHP मैन्युअल से लिया गया है )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक टेबल कॉलम से मूल्य कैसे प्राप्त करें जब एक ही नाम के दो कॉलम एक एसक्यूएल में शामिल हों

  2. एक से अधिक तालिकाओं के लिए 50 फ़ील्ड प्रपत्र सबमिट करना; नियमित पोस्ट, AJAX पोस्ट या अन्य?

  3. MySql में संग्रहीत कार्यविधि में अल्पविराम से अलग किए गए मान कैसे पास करें?

  4. php यादृच्छिक mysql डेटा

  5. दो Django ऐप्स के बीच एक मॉडल को कैसे स्थानांतरित करें (Django 1.7)