Autor Zpráva
a
Profil *
zdar prosím chci zorabzit na stránce data z učetnického programu a on to uklada ty data do nějakeho souboru *.csv nebo *.vcs nebo jak to je a nevíte jak nebo mě odporučte na něco co mi pomuže jak to vycucnout převezt nebo tak? diky
a
Profil *
prej pomocí scriptu a je to csv :-D
je todle k něčemu dobré?

Mysql-connector-java-3.1.10 is a JDBC connector for MYSQL database. MYSQL provides LOAD DATA INFILE utility to import data from files like csv, txt or xls into database tables.

The example below imports data from .txt file into table.

temp.txt file is a tab separated file:

"1 string" 100
"2 string" 102
"3 string" 104
"4 string" 106

testtable structure
CREATE TABLE testtable
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
text varchar(45) NOT NULL,
price integer not null);

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class automateImport
{
public static void main(String[] args)
{
DBase db = new DBase();
Connection conn = db.connect(
"jdbc:mysql://localhost:3306/test","root","caspian");
db.importData(conn,args[0]);
}

}

class DBase
{
public DBase()
{
}

public Connection connect(String db_connect_str,
String db_userid, String db_password)
{
Connection conn;
try
{
Class.forName(
"com.mysql.jdbc.Driver").newInstance();

conn = DriverManager.getConnection(db_connect_str,
db_userid, db_password);

}
catch(Exception e)
{
e.printStackTrace();
conn = null;
}

return conn;
}

public void importData(Connection conn,String filename)
{
Statement stmt;
String query;

try
{
stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);

query = "LOAD DATA INFILE '"+filename+
"' INTO TABLE testtable (text,price);";

stmt.executeUpdate(query);

}
catch(Exception e)
{
e.printStackTrace();
stmt = null;
}
}
};

If you want to import a CSV file, you can use the following query:

query = "LOAD DATA INFILE '"+filename+"' INTO TABLE testtable FIELDS
TERMINATED BY ',' (text,price)";


jsem to našel ale nevím jeslit by to stačil oani jak to fiči ani jak to zprovoznit ani co stim prakticky diky zarady :-)
Leo
Profil
No spis bych volil treba PHP, Leo
nightfish
Profil
CSV je comma separated values
tedy hodnoty oddělené čárkou
nejjednodušší bude načítat řádek po řádku
pro každý řádek zavolat explode(",",$radek)
a vzniklé pole následně vypsat

jinak mysql-java-connector je věc k javě, pro výpis csv souboru na web java a mysql netřeba, i když využít se samozřejmě dají....
Leo
Profil
A nebo primo

http://mirrors.inway.cz/manual/en/function.fgetcsv.php

Leo
a
Profil *
potřeboval bych to hodit do mysql db nevíte kde se o tom dočtu co a jak stím? nebo nemáte nějaký funkční script?

diky
havs
Profil
jde to dotazem přes LOAD DATA, ale to bývá většinou na hostingu blokované
možná si napsat PHP cyklus do insertu, mě se to kdysi povedlo nějak takhle:

$soubor = file_get_contents("import.csv");
$pole = explode("\r\n", $soubor);
$pocet = count($pole);

foreach($pole as $key => $radek) {
if ($radek!="" && $key<($pocet-2)) {
$insert .= "('', '".str_replace(";", "', '", $radek)."'), ";
}
elseif ($radek!="") {
$insert .= "('', '".str_replace(";", "', '", $radek)."')";
}
}
mysql_query("INSERT INTO $tb values$insert");
a
Profil *
prosímtě to se mi vloží do db a jaké budou názvy sloupců?

nebo v csv jsou taky nějaké názvy sloupců? co s emi tam dosadí nebo co a jak ? já totiž se v csv neorientuju vubec :-D jak by měla vypadat tabulka?

diky
havs
Profil
Hm, to je jen insert a je důležité pořadí hodnot, muselo by se to zkombinovat s vytvořením tabulky, monitoringem počtu sloupců v csv příp. vymazáním starého obsahu, podle toho co je potřeba.

Jde o to, jestli se to vyplatí programovat, nebo jestli by nebyl lepší import přes phpMyAdmin. Tabulka se tvoří podobně, jako v okně SQL, např:

MySQL_Query("Create table diskuse(
id int not null primary key auto_increment,
text varchar(255),
autor varchar(255),
email varchar(255),
datum varchar(255))");
a
Profil *
a jak se to dá importovat přimo přes phpmyadmina?

takže to je pouze vložení ten script a jak to pozná do kterého sloupce se vloží které informace? veme to popořadě myslím ten script kdybych už měl třeba přednastavenou tu tabulku?
tak by to vkládalo každý sloupec vtom csv do sloupce v mysql db postupně?

nebo jakto celé udělat_? jsem celkem amater :-D
havs
Profil
ono to vytvoří takovéhle query, prostě to řádku z csv napíše začátek a konec a středníky zamění za ', '
na začátku je počítáno se sloupcem pro autom. číslování - ' ' bez hodnoty
záleží jen na tom, aby tabulka měla odpovídající počet sloupců, tady jako csv + 1

mysql_query("INSERT INTO $tb values
('', 'nějaký text', 'ivo Uhlmann', 'bon@uhlm.de', 'něco'),
('', 'nějaký text', 'Ignác Prouk', 'Qui@skoc.ka', 'další'),
a další řádky ....
");

Import csv:
v pma je import textovým odkazem až úplně dole při zobrazení tabulky
(Vložit textové soubory do tabulky)
a
Profil *
to znamená že já si pouze vytvořím sloupce v tabulce přesně stejně jako jsou v csv + si dám na začátek sloupec ID (kde se mi bude to samo číslovat)

prosímtě a jak smažu v php informace z celé tabulky? já to budu vždy asi importovat do db a předtím to smažu

diky moc otestuju to o víknedu a kdyby mi to nešlo obrátím se na tebe pokud budeš tak ochoten ale už to chapu tak by to mělo být ok : - )
Anonymní
Profil *
co mám špatně? nic to nedělá : - /

<?

if($_GET['ok'] == "ok"){
$tb = "csv_polozky"; // Tabulka
$soubor = file_get_contents("import_csv/immax.csv");
$pole = explode("\r\n", $soubor);
$pocet = count($pole);

foreach($pole as $key => $radek) {
if ($radek!="" && $key<($pocet-2)) {
$insert .= "('', '".str_replace(";", "', '", $radek)."'), ";
}
elseif ($radek!="") {
$insert .= "('', '".str_replace(";", "', '", $radek)."')";
}
}
$sql = "INSERT INTO ".$db->table_name($tb)." values $insert";
$db->query($sql);

echo "Obsah byl přidán! \n";
}else{

echo "Po stisknutí se do databáze přidá obsah souboru csv. \n";

}

?>
Anonymní
Profil *
? :-/
Anonymní
Profil *
mi to nejde tam nahrát ani přez phpmyadmina : - / mi to hlásí chybu furt

#1045 - P-B��stup pro u�ivatele 'immax.ss.cz'@'%' (s heslem ANO)

coto je? : - / mi se to csv asi do mysql db nepodaří dostat no : - /
Toto téma je uzamčeno. Odpověď nelze zaslat.