txt σε mysql

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
panagiota_7
Δημοσιεύσεις: 9
Εγγραφή: 30 Δεκ 2007 23:56

txt σε mysql

Δημοσίευση από panagiota_7 » 31 Δεκ 2007 00:04

Λοιπόν έχω ένα big prob και ελπίζω να μου το λύσετε.Έχω όλη τη βάση γραμμένη στο notepad και θέλω να μου πείτε αν υπάρχει κάποιος τρόπος να την ανοίξω με το mysql χωρίς να χρειαστώ να την ξαναγράφω όλη.
Οι πίνακες της βάσης είναι σε ξεχωριστα .txt


Ελπίζω να μου απαντήσει κάποιος γρήγορα γιατί πραγματικά καίγομαι!

Χιλια thnx
Καλή Χρονιά - Χρόνια Πολλά!!!
Αφήνω πίσω τα χειρότερα...Προσμένω μόνο τα καλύτερα!

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

txt σε mysql

Δημοσίευση από cherouvim » 31 Δεκ 2007 00:32

Έχεις ένα export ή dump σε text file; Αν ναι, πρέπει να το κάνεις import στη βάση σου.

panagiota_7
Δημοσιεύσεις: 9
Εγγραφή: 30 Δεκ 2007 23:56

txt σε mysql

Δημοσίευση από panagiota_7 » 31 Δεκ 2007 00:39

Xmm...Όχι.Λοιπόν το θέμα ειναι ότι έχω να κάνω μία εργασία και μας έχει δώσει txt files με τη βαση δλδ΄ονόματα στηλών δεδομένα κλπ.Αυτά μπορώ κάπως χωρίς να τα ξαναγράψω να τα ανοίξω με mysql?
Αφήνω πίσω τα χειρότερα...Προσμένω μόνο τα καλύτερα!

lakritidis
Δημοσιεύσεις: 401
Εγγραφή: 04 Αύγ 2005 14:35
Τοποθεσία: Katerini
Επικοινωνία:

txt σε mysql

Δημοσίευση από lakritidis » 31 Δεκ 2007 12:21

Κώδικας: Επιλογή όλων

mysql -u <username> -p <password> <database> < filename
px

Κώδικας: Επιλογή όλων

mysql -u panagiota -p 123 ergasia_db < c&#58;\dump.sql

panagiota_7
Δημοσιεύσεις: 9
Εγγραφή: 30 Δεκ 2007 23:56

txt σε mysql

Δημοσίευση από panagiota_7 » 31 Δεκ 2007 15:49

Μου βγάζει συντακτικό λάθος, ενώ έχω βάλει σωστά και username & password.Στο filename θα βάλω το όνομα του text μου .sql ή .txt γιατί τα έχω κάνει και με τα δύο και δεν πιάνει τπτ...
Αφήνω πίσω τα χειρότερα...Προσμένω μόνο τα καλύτερα!

lakritidis
Δημοσιεύσεις: 401
Εγγραφή: 04 Αύγ 2005 14:35
Τοποθεσία: Katerini
Επικοινωνία:

txt σε mysql

Δημοσίευση από lakritidis » 31 Δεκ 2007 16:08

Το όνομα του αρχείου μπορεί να είναι οτιδήποτε, απλά θα πρέπει να δώσεις το πλήρες path του. (στο οποίο δεν θα υπάρχουν ελληνικοί χαρακτήρες).

Επίσης για να εκτελεστεί η εντολή θα πρέπει να βρίσκεσαι στο folder που είναι εγκατεστημένη η mysql.

Τι συντακτικό λάθος βγάζει;

panagiota_7
Δημοσιεύσεις: 9
Εγγραφή: 30 Δεκ 2007 23:56

txt σε mysql

Δημοσίευση από panagiota_7 » 31 Δεκ 2007 16:38

Κώδικας: Επιλογή όλων

mysql -u root -p 123 db2 < C&#58;\Program Files\MySQL\stores.sql

Λοιπόν αυτός είναι ο κώδικας που βάζω και μου βγάζει λάθος Νο.1064
Αφήνω πίσω τα χειρότερα...Προσμένω μόνο τα καλύτερα!

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

txt σε mysql

Δημοσίευση από cherouvim » 31 Δεκ 2007 16:50

Δώσε μας το stores.sql

panagiota_7
Δημοσιεύσεις: 9
Εγγραφή: 30 Δεκ 2007 23:56

txt σε mysql

Δημοσίευση από panagiota_7 » 31 Δεκ 2007 16:56

Αυτό είναι το πιο μικρό έχω και αλλα 3 με πάρα πολλά δεδομένα μέσα
Συνημμένα
stores.rar
stores.rar
(127 Ψηφιολέξεις) Μεταφορτώθηκε 336 φορές
Αφήνω πίσω τα χειρότερα...Προσμένω μόνο τα καλύτερα!

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

txt σε mysql

Δημοσίευση από cherouvim » 31 Δεκ 2007 17:16

Στείλε και τα άλλα.
Αυτό που ανέβασες πάντως είναι csv (comma separated values). Για να το κάνεις import νομίζω θα πρέπει να κάνεις κάτι τέτοιο:

Κώδικας: Επιλογή όλων

LOAD DATA LOCAL INFILE '/importfile.csv'
INTO TABLE test_table
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
&#40;field1, filed2, field3&#41;;

panagiota_7
Δημοσιεύσεις: 9
Εγγραφή: 30 Δεκ 2007 23:56

txt σε mysql

Δημοσίευση από panagiota_7 » 31 Δεκ 2007 17:24

Ορίστε άλλα 2 το τρίτο είναι μεγάλο αρχείο αλλά παρόμοιο με αυτά.
Συνημμένα
customers.rar
(37.62 KiB) Μεταφορτώθηκε 368 φορές
items.rar
(219.34 KiB) Μεταφορτώθηκε 418 φορές
Αφήνω πίσω τα χειρότερα...Προσμένω μόνο τα καλύτερα!

lakritidis
Δημοσιεύσεις: 401
Εγγραφή: 04 Αύγ 2005 14:35
Τοποθεσία: Katerini
Επικοινωνία:

txt σε mysql

Δημοσίευση από lakritidis » 31 Δεκ 2007 18:45

OK έτοιμο φαί

Ρίξε το solution.sql σε ένα φάκελο και εκτέλεσε το με τον τρόπο που σου έδειξα παραπάνω
Συνημμένα
solution.rar
(52.55 KiB) Μεταφορτώθηκε 317 φορές

panagiota_7
Δημοσιεύσεις: 9
Εγγραφή: 30 Δεκ 2007 23:56

txt σε mysql

Δημοσίευση από panagiota_7 » 02 Ιαν 2008 02:09

Φίλε μου πραγματικά χίλια ευχαριστώ με έσωσες....Έχω να κάνω 2 ερωτησούλες:
1)Ελληνικά δεδομένα η mysql δεν παίρνει έτσι?Γιατί μερικάδεδομένα είναι στα ελληνικά.
2)Πως μπορώ να μετατρέψω και το άλλο αρχείο txt στη μορφή που μου έδωσες εσυ???



Χίλια thnx και πάλι!
ΚΑΛΗ ΧΡΟΝΙΑ!
Αφήνω πίσω τα χειρότερα...Προσμένω μόνο τα καλύτερα!

lakritidis
Δημοσιεύσεις: 401
Εγγραφή: 04 Αύγ 2005 14:35
Τοποθεσία: Katerini
Επικοινωνία:

txt σε mysql

Δημοσίευση από lakritidis » 02 Ιαν 2008 10:34

1. Η MySQL φυσικα και παίρνει ελληνικά. Αν όμως έχεις mySQL 5 και άνω, δε θα δεις σωστά ελληνικά με το phpmyadmin. Αν βάλεις ένα άλλο mySQL client όπως το SQLyog, θα δεις ότι και τα ελληνικά εμφανίζονται σωστά.

Επίσης μπορείς να δεις τα ελληνικά αν γράψεις μια εφαρμογή (πχ σε php) και κάνεις κάποιο select query. Αρκεί πριν το query να δηλώσεις

Κώδικας: Επιλογή όλων

mysql_query&#40;'SET character_set_results="utf8"'&#41;;
mysql_query&#40;"SET CHARACTER SET utf8"&#41;;
mysql_query&#40;"SET NAMES 'utf8'"&#41;;
2. Η πιο σωστή λύση για import csv αρχείων se database είναι αυτή που προτείνει ο cherouvim. Το πρόβλημα είναι ότι με τη LOAD DATA INFILE εγώ ποτε δε μπόρεσα να εισάγω σωστά τα ελληνικά. Η δεύτερη λύση είναι να σκαρώσεις ένα προγραμματάκι που θα διαβάζει γραμμή-γραμμή τα αρχεία σου και θα ρίχνει τα data στους πίνακες.

Εγώ δημιούργησα τους πίνακες με το χερι και στη συνέχεια έγραψα αυτό το προγραμματάκι σε php που ρίχνει τα data απευθείας στα tables.

Κώδικας: Επιλογή όλων

<?php 
$row = 1;
$handle = fopen&#40;"http&#58;//localhost/test/customers.txt", "r"&#41;;
$engine_cache = mysql_connect&#40;'localhost', UYSERNAME, PASSWORD&#41; or trigger_error&#40;mysql_error&#40;&#41;, E_USER_ERROR&#41;; 
mysql_select_db&#40;'panagiota', $engine_cache&#41;;
mysql_query&#40;'SET character_set_results="utf8"'&#41;;
mysql_query&#40;"SET CHARACTER SET utf8"&#41;;
mysql_query&#40;"SET NAMES 'utf8'"&#41;;

while &#40;&#40;$data = fgetcsv&#40;$handle, 1000, ","&#41;&#41; !== FALSE&#41; &#123;
    $num = count&#40;$data&#41;;
    $row++;
	$insert_query_result = sprintf&#40;"
	INSERT INTO customers &#40;custCode, custBirthYear, custOccupation, custGender, custNumChildren, registrationDate&#41;
	VALUES &#40;
	'%d', '%s', '%s', '%d', '%d', '%d'&#41;
	", $data&#91;0&#93;, $data&#91;1&#93;, iconv&#40;'iso-8859-7', 'utf-8', $data&#91;2&#93;&#41;, $data&#91;3&#93;, $data&#91;4&#93;, $data&#91;5&#93;&#41;;
	$insert_query = mysql_query&#40;$insert_query_result, $engine_cache&#41; or die&#40;mysql_error&#40;&#41;&#41;;

&#125;
fclose&#40;$handle&#41;;

$handle = fopen&#40;"http&#58;//localhost/test/customers.txt", "r"&#41;;
while &#40;&#40;$data = fgetcsv&#40;$handle, 1000, ","&#41;&#41; !== FALSE&#41; &#123;
    $num = count&#40;$data&#41;;
    $row++;
	$insert_query_result = sprintf&#40;"
	INSERT INTO items &#40;itemID,itemGroupID,itemCategoryID,isPrivateLabel&#41;
	VALUES &#40;
	'%d', '%d', '%d', '%s'&#41;", $data&#91;0&#93;, $data&#91;1&#93;, $data&#91;2&#93;, $data&#91;3&#93;&#41;;
	$insert_query = mysql_query&#40;$insert_query_result, $engine_cache&#41; or die&#40;mysql_error&#40;&#41;&#41;;

&#125;
fclose&#40;$handle&#41;;

?>

panagiota_7
Δημοσιεύσεις: 9
Εγγραφή: 30 Δεκ 2007 23:56

txt σε mysql

Δημοσίευση από panagiota_7 » 02 Ιαν 2008 17:09

Sorry που σε πρήζω χρονιάρες μέρες αλλά επειδή είμαι άσχετη απο php μπορείς να μου πεις το προγραμματάκι που μου έδωσες παραπάνω πως το τρέχουμε???

Αν σου έστελνα το άλλο txt θα μπορούσες να με βοηθούσες πάλι...


Πραγματικά σου είμαι υπόχρεη!
Αφήνω πίσω τα χειρότερα...Προσμένω μόνο τα καλύτερα!

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες