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 :
<?php
$filename = "proba.csv";
function import_csv($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) {

mysql_connect("host", "user", "pass");
mysql_select_db(database); 
$sql_insert=mysql_query("UPDATE tabla SET elso='$elso', masodik='$masodik' WHERE harmadik='$harmadik'");


}

?>
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.
<?php

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");
};

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");
};

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]);
    }
  }
}

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'");
}

?>
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...):
<?

function import_csv($filename) {
  $file = file($filename);
  for($i = 0; $i < sizeof($file); $i++) {
    if ($i != 0) {
      $fields = explode(";", $file[$i]);
      update_product($fields[0], $fields[1], $fields[2]);
    }
  }
}
?>
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