का उपयोग कर सीएसवी डेटा आयात करना मुझे CSV से डेटा आयात करने का प्रयास करने में कोई समस्या है और इस पर कुछ प्रश्न हैं कि मैंने अभी तक स्वयं को हल करने में कामयाब नहीं रहा है।PHP/MySQL
सबसे पहले यहाँ मदद करने के लिए परिप्रेक्ष्य में चीजों को डाल मेरी कोड है (यह थोड़ा ऊपर tidied, सीएसएस और डीबी कनेक्शन को हटाने):
<body>
<div id="container">
<div id="form">
<?php
$deleterecords = "TRUNCATE TABLE tablename"; //empty the table of its current records
mysql_query($deleterecords);
//Upload File
if (isset($_POST['submit'])) {
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded
successfully." . "</h1>";
echo "<h2>Displaying contents:</h2>";
readfile($_FILES['filename']['tmp_name']);
}
//Import uploaded file to Database
$handle = fopen($_FILES['filename']['tmp_name'], "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$import="INSERT into importing(text,number)values('$data[0]','$data[1]')";
mysql_query($import) or die(mysql_error());
}
fclose($handle);
print "Import done";
//view upload form
} else {
print "Upload new csv by browsing to file and clicking on Upload<br />\n";
print "<form enctype='multipart/form-data' action='upload.php' method='post'>";
print "File name to import:<br />\n";
print "<input size='50' type='file' name='filename'><br />\n";
print "<input type='submit' name='submit' value='Upload'></form>";
}
?>
</div>
</div>
</body>
यह मूल रूप से एक उदाहरण पर आधारित एक फिल्म मैं कई कई प्रयासों के बाद पाया है है विभिन्न तरीकों से।
मेरे सीएसवी डेटा के दो स्तंभ हैं, पहला नियम टेक्स्ट जा रहा है और दूसरी पूर्णांकों डेटाबेस में टेबल भी दो कॉलम, पहले कहा जाता है "पाठ" और दूसरा "संख्या"
तो है सवाल मैं कर रहे हैं:
- पाठ अपलोड किया जा रहा सिर्फ हर क्षेत्र में 0 के रूप में प्रदर्शित किया जा रहा है और यही कारण है
- मैं "में" संलग्न समाप्त डेटा के बारे में पढ़ रखने मुझे यकीन है कि नहीं हूँ, अगर ऐसा होता मैं इसे कैसे क्रमबद्ध करूं?
- मैं हेडर आदि के लिए सीएसवी की पहली एक्स लाइनों को कैसे अनदेखा कर सकता हूं?
- क्या इस प्रक्रिया में डेटा प्रारूप बदल गया है या क्या यह मेरे लिए ग्राफ में उपयोग करने के लिए तैयार है? जैसे एक बार दशमलव में डेटाबेस में रखा दशमलव दशमलव होगा?
मुझे लगता है कि सबकुछ शामिल है, किसी भी मदद के लिए अग्रिम धन्यवाद!
संपादित करें:
बस 10,000 रिकॉर्ड अपलोड करने का एक परीक्षण किया है और त्रुटि मिली:
"गंभीर त्रुटि: 30 सेकंड की अधिकतम निष्पादन समय से अधिक हो गई"
किसी भी विचार?
आप एक बड़ी फ़ाइल अपलोड कर रहे हैं, यह भी पर एक नजर है [लोड डाटा INFILE] (http://dev.mysql.com/doc/refman/5.1/en/load-data.html) के रूप में यह बहुत तेज़ है। 'लोड डेटा इन्फाइल' /tmp/test.txt 'टैबलेट परीक्षण IGNORE 1 लाइनों में; ' – Fluffeh
@Fluffeh मैंने उस विधि का उपयोग करने का प्रयास किया लेकिन किसी कारण से यह काम नहीं करेगा जब मैंने इसे PHP में शामिल किया था। गति निश्चित रूप से उपयोगी होगी क्योंकि यह अंत में एक बड़ी फाइल होगी। – Pidge
मेरा अद्यतन उत्तर देखें। – jit