ugrás a tartalomhoz

excel es mysql

enzo · 2003. Júl. 7. (H), 14.09
hogyan lehet egy excel fajl tartalmat (2 oszlop) mysql-be atvinni ?
 
8

nem jött össze

Anonymous · 2004. Már. 25. (Cs), 23.15
Én megpróbáltam a Te kódodat , az alábbi formában :
  1. <?php  
  2. $filename = "proba.csv";  
  3. function import_csv($filename) {  
  4.   
  5. for($i = 0; $i < sizeof($file); $i++) {  
  6. if ($i != 0) {   
  7. $fields = explode(";"$file[$i]);  
  8. $update = update_product($fields[0], $fields[1], $fields[2]);  
  9. }  
  10. }  
  11. }  
  12.   
  13. function update_product($elso$masodik$harmadik) {  
  14.   
  15. mysql_connect("host""user""pass");  
  16. mysql_select_db(database);   
  17. $sql_insert=mysql_query("UPDATE tabla SET elso='$elso', masodik='$masodik' WHERE harmadik='$harmadik'");  
  18.   
  19.   
  20. }  
  21.   
  22. ?>  
Hibaüzenetet nem kapok , az a gond , hogy semmit se kapok , tehát az adatbázisban semmit nem ír felül .
Segítsetek légyszi , hogy mi a hiba !
10

Re:

T.G · 2004. Már. 28. (V), 01.30
félve megkérdezem: ugye meghívod valahol azt a függvényt?
9

segíts

Anonymous · 2004. Már. 27. (Szo), 11.44
meg tudná vki mondani , mi a hiba ?
11

bocs

Anonymous · 2004. Ápr. 4. (V), 19.42
bocsi , multkor nem jot vagolapoztam be .
ne harapjatok le a fejem, ha valami nagy hibat vetettem , mert még kezdő vagyok :( ..

<?php
function import_csv($filename) {

for($i = 0; $i < sizeof($file); $i++) {
if ($i != 0) {
$fields = explode(";", $file[$i]);
update_product($fields[0], $fields[1], $fields[2]);
}
}
}
if(import_csv("proba.csv"))
{
print("Sikerült a fájl megnyitása");
}
else
{
print("Hiba miatt nem futott le az import csv függvény");
};
function update_product($elso, $masodik, $harmadik) {

mysql_connect("127.0.0.1", "inicial", "kacsa");
mysql_select_db(inicial);
// Felülírjuk
mysql_query("UPDATE excel SET elso='$elso', masodik='$masodik', harmadik='$harmadik'");
}
if(update_product($fields[0], $fields[1], $fields[2]))
{
print("Sikerült az adatbázistábla felülírása!");
}
else
{
print("Nem sikerült a felülírás");
};
?>

es termeszetesen az alabbi uzenetet kapom :

Hiba miatt nem futott le az import csv függvényNem sikerült a felülírás

Segítséget kérnék!
12

help

Anonymous · 2004. Ápr. 6. (K), 08.29
segítenétek ?
13

re: help

Bártházi András · 2004. Ápr. 6. (K), 09.31
Persze, csak mondjad el, hogy mi a hiba, és egy kicsit légy önálló is. Annyira gusztustalan a kódod, hogy ezt ember nem látja át. Nem árt néha behúzni, meg a függvényeket a végére rakni és nem össze-vissza, stb. Sokkal jobban átlátod magad is.
  1. <?php  
  2.   
  3. if (import_csv("proba.csv")) {  
  4.   print("Sikerült a fájl megnyitása");  
  5. else {  
  6.   print("Hiba miatt nem futott le az import csv függvény");  
  7. };  
  8.   
  9. if (update_product($fields[0], $fields[1], $fields[2])) {  
  10.   print("Sikerült az adatbázistábla felülírása!");  
  11. else {  
  12.   print("Nem sikerült a felülírás");  
  13. };  
  14.   
  15. function import_csv($filename) {  
  16.   for($i = 0; $i < sizeof($file); $i++) {  
  17.     if ($i != 0) {  
  18.       $fields = explode(";"$file[$i]);  
  19.       update_product($fields[0], $fields[1], $fields[2]);  
  20.     }  
  21.   }  
  22. }  
  23.   
  24. function update_product($elso$masodik$harmadik) {  
  25.   mysql_connect("127.0.0.1""inicial""kacsa");  
  26.   mysql_select_db(inicial);  
  27.   // Felülírjuk  
  28.   mysql_query("UPDATE excel SET elso='$elso', masodik='$masodik', harmadik='$harmadik'");  
  29. }  
  30.   
  31. ?>  
Például nem értem, hogy minek neked a második if? Aztán az import_csv-ben található fájlkezelés alapjaiban rossz. Az adatbázist megnyitod, de nem zárod le, illetve az se jó koncepció, hogy minden egyes beszúrásnál megnyitod.

Nem fogom helyetted megírni, de például ez segíthet: http://hu.php.net/file

Ennek alapján így kell megírni az import_csv részt (vagyis egy igen fontos sor bizony kimaradt...):
  1. <?  
  2.   
  3. function import_csv($filename) {  
  4.   $file = file($filename);  
  5.   for($i = 0; $i < sizeof($file); $i++) {  
  6.     if ($i != 0) {  
  7.       $fields = explode(";"$file[$i]);  
  8.       update_product($fields[0], $fields[1], $fields[2]);  
  9.     }  
  10.   }  
  11. }  
  12. ?>  
A második if-et pedig szerintem felejtsd el.

-boogie-
14

így próbáltam :

Anonymous · 2004. Ápr. 6. (K), 11.53
Ezzel a kóddal próbáltam meg , de ismét hibaüzenetet kaptam :
<?php
function import_csv($filename) {
$file = file($filename);
for($i = 0; $i < sizeof($file); $i++) {
if ($i != 0) {
$fields = explode(";", $file[$i]);
$update = update_product($fields[0], $fields[1], $fields[2]);
}
}
};
function update_product($elso, $masodik, $harmadik)
{
$kapcsolat = mysql_connect("host", "db", "****");
if (!$kapcsolat) die("Nem sikerült kapcsolódni az adatbázishoz!");
mysql_select_db(db);
// Felülírjuk
mysql_query("UPDATE tabla SET elso='$elso', masodik='$masodik', harmadik='$harmadik'");
mysql_close($kapcsolat);
};
if (import_csv("proba.csv"))
{
print("Sikerült a fájl megnyitása");
}
else
{
print("Hiba miatt nem futott le az import csv függvény");
};
?>

És ismét megkaptam a hibaüzenetet :

Hiba miatt nem futott le az import csv függvény

Az lehet a baj , hogy mikor az if-ben meghívom az import_csv függvényt , csak annyit adok meg , hogy proba.csv , vagy pedig teljes elérési út kell ( pl. i:/valami/valami/proba.csv ) ?
Ha ez a baj , hogy tudom megszerezni a teljes elérési utat az atw szerveren ?

Előre is kösz a segítséget !
15

Sajnos nem tudok neked segít

Bártházi András · 2004. Ápr. 6. (K), 16.19
Sajnos nem tudok neked segíteni abban, hogy minden sort végignézek, hol lehet vajon a hiba vele? Természetesen, ha nem a php könyvtárába töltöd fel a CSV-t, akkor nem elég relatíve megadni. Írass ki echo-val infókat ezer helyen a programodban, és nézzed meg, hogy betölti-e a fájlt, ha igen, mennyi sora van, ha megvan minden sora, akkor sikerül-e darabolni, ha sikerül, akkor jók-e a változó értékek, s ha ez is igaz, akkor jó-e az adatbázis jelszó, eljut-e oda a program, stb.

Ha ez nem megy, és nem elég ennyi segítség, akkor javaslom, hogy egy kész programot használj a feladatra (lásd fentebb).

-boogie-
16

ATW az ingyenes szerver?

Anonymous · 2004. Ápr. 6. (K), 17.02
Szia!

Csak egy apró kérdés a pálya széléről: az ATW ingyenes vagy fizetős szerver? Engedélyezik ott a fájlműveleteket???

A másik megjegyzésem, hogy (amint Boogie is írta), te egy 10.000 soros CSV esetén kereken tízezerszer kapcsolódsz a mysql kiszolgálóhoz, majd az update után bontod a kapcsolatot. Ha nem pár tíz soros a CSV fájlod, azért ezt ne nagyon csináld, itt is lehet hiba oka a timeout, stb. Azt a mysql_connect és mysql_close részt rakd már ki a függvényen kívülre, légyszi.

És mi a hibaüzenet? Amit a php visszaad, nem amit te íratsz ki az ifből.

Robi
17

amit én iratok ki ifből .

Anonymous · 2004. Ápr. 6. (K), 20.40
amit én iratok ki ifből .
1

Re: excel es mysql

Pal_ur · 2003. Júl. 7. (H), 15.50
Szerintem csinálj belőle cvs-fájlt, utána pl. phpmyadmin-nel grafikus felületen keresztül is be tudod olvasni... Ugyanezt az újabb phpmyadminok XML-en kereztül is tudják.
2

Re: excel es mysql

parocgab · 2003. Júl. 8. (K), 07.45
Nekem igazából így nem sikerült. Az oszlop végére berakott egy "\r" karaktert, amit nem lehetett látni, csak ha grafikusan nézted az adatbázis tartalmát. Viszont a program dolgozott vele, főleg ha össze kellett hasonlítani valamivel. Sose passzolt. Nekem a megoldás a következő volt: Access-be beimportáltam az excel táblát, majd a MySQL-Fronttal az access adatbázisból ODBC-n keresztül importáltam. Ez pár ezer sor volt, öt oszloppal. Ez viszont stabilan működött.

Gábor
3

Re: excel es mysql

Granc Róbert · 2003. Júl. 8. (K), 11.22
En is inkabb a CSV-t (Pal_ur: nem cvs, hanem csv! :D )-t ajanlom, a "\r"-nek nem igazan kellene belezavarnia, mar tobbszor sikerult a konvertalas gond nelkul.

R.
4

Re: excel es mysql

enzo · 2003. Júl. 10. (Cs), 10.04
leirnad egy picit reszletesebben?
addig eljutottam, hogy csv-be mentettem az excell fajlt, de a phpmyadminnal elakadtam.

elore is koszi
5

Re: excel es mysql

Granc Róbert · 2003. Júl. 11. (P), 14.51
Mea maxima culpa, a phpMyAdminban nem találok CSV-import funkciót. Pedig úgy emlékeztem, mintha azzal csináltam volna. A parocgab által már említett MySQL-Frontban viszont van ilyen: "Im-/Export" menü, "Import textfile" menüpont.
Letöltés: http://mysqlfront.venturemedia.de/index.php?act=ST&f=2&t=328

Robi
6

Re: excel es mysql

Pal_ur · 2003. Júl. 11. (P), 17.30
Sorry.

Nem teljesen vagyok beszámítható, bocsi.
Természetesen csv.

A kellően új phpmyadmin-okban (2.5-től) már van ilyen funkció. A 'Struktúra' menüpontban, alul, szövegfájl beszúrása...
7

Re: excel es mysql

paja · 2003. Júl. 18. (P), 16.55
Szevaztok!

Egy kis segítség, hátha nem késő még.... :)

function import_csv($filename) {

// Ciklus, hogy minden sort beolvassunk a file-ból
for($i = 0; $i < sizeof($file); $i++) {
// Az első sort kihagyjuk ...:)
if ($i != 0) {
// A sorok tartalmát szétszedi a ; alapján
$fields = explode(";", $file[$i]);
$update = update_product($fields[0], $fields[1], $fields[2], $fields[3], $fields[4], $fields[5], $fields[6]);
}
}
}


function update_product($id, $part_number, $name, $price, $akcio, $aktiv, $db) {

mysql_connect(dbhost,dbuser,dbpass);
mysql_select_db(dbname);
// Felülírjuk a termékeket
$sql_insert=mysql_query("UPDATE product_data SET part_number='$part_number', name='$name', activ='$aktiv', akcio='$akcio', darab='$db', price='$price' WHERE id='$id'");


}


Én egy általam készített webshop-hoz írtam ezt a kódot. A megrendelő kérése volt, hogy excelből lehessen frissíteni a termékeket.
Ha vmi nem világos, akkor dobj egy e-mail-t!

paja