Adatbázis feltöltése csv fájl segítségével.

Általános kérdések a Webshop Hun1 Smarty programról.
kicsiati
Hozzászólások: 26
Csatlakozott: vas. feb. 21, 2010 9:20 am
Kapcsolat:

Adatbázis feltöltése csv fájl segítségével.

Hozzászólás Szerző: kicsiati »

A következő a gondom.
Letöltöttem a biankó termekek.csv fájlt. Beírtam az adatokat, elmentettem csv pontosvesszővel tagolt fájlként. Az excel panaszkodott, hogy nem kompatibilis a pontosvesszővel ellátott szolgáltatással, ennek ellenére elmentette. Ezt a fájlt feltöltöttem a szerverre. Fel is ment, az adatbázis frissítése is megtörtént. Semmi hibajelzést nem kaptam.
Viszont mégsem töltötte fel a terméket. A kellő mappák attribútumát átállítottam 777-re. Próbáltam office 2000, és office 2007-el is.

kicsiati
Hozzászólások: 26
Csatlakozott: vas. feb. 21, 2010 9:20 am
Kapcsolat:

Re: Adatbázis feltöltése csv fájl segítségével.

Hozzászólás Szerző: kicsiati »

Mostanra sikerült elérnem, hogy végre feltölti a terméket, viszont a képeket nem akarja megjeleníteni. Az elérési út jó, nincs benne különleges karakter, az attribútuma 777.

Most már csak a nagy képekkel van gondom. A kis képeket megjeleníti.

kicsiati
Hozzászólások: 26
Csatlakozott: vas. feb. 21, 2010 9:20 am
Kapcsolat:

Re: Adatbázis feltöltése csv fájl segítségével.

Hozzászólás Szerző: kicsiati »

Végülis nem tudom mi volt a baj, de sikerült feltöltenem az adatokat.

Avatar
mezofi
Site Admin
Hozzászólások: 933
Csatlakozott: csüt. okt. 16, 2008 7:30 am
Kapcsolat:

Re: Adatbázis feltöltése csv fájl segítségével.

Hozzászólás Szerző: mezofi »

Szuper

pinkfog
Hozzászólások: 13
Csatlakozott: kedd aug. 11, 2009 6:27 pm
Kapcsolat:

Re: Adatbázis feltöltése csv fájl segítségével.

Hozzászólás Szerző: pinkfog »

Kedves István!

Igaz, hogy az én gondom nem feltöltés, hanem le...
Szeretném letölteni (majd rendszeresen) a shopban lévő termékeket, úgy hogy a cikkszám is benne legyen.
Az árgép részére készíthető csv letöltése kitűnően működik, de abban nincs cikkszám, amire azért lenne szükségem, hogy egy függvény segítségével összetudjam hasonlítani a shop termékeit egy nagykereskedés adott készletlistájával. Ehhez lenne fontos a cikkszámos listázhatóság. Jelenleg kb 1200 termék van, de ez ha időm engedi felmenne 5000-re is, amit manuálisan már lehetetlen összehasonlítgatni.
A lényeg, hogy nem működik a csv file letöltési lehetőség, csak az oszlopok elnevezését írja ki. Mit tegyek?
Kérlek, hogy egy laikus számára írd meg légy szíves, hogy mi a megoldás. Nekem az is jó, ha a az árgépes csv file-t megtoldjuk egy cikkszám oszloppal.
Lenne még egy kérdésem, bár az exceles, de biztos tudsz segíteni. van olyan lehetőség, hogy a sorokból eltüntessek bizonyos karaktereket, tehát ha beírom pl. hogy js, akkor minden adatból eltünteti a js-eket, de nem emlékszem hol, Nme tudod véletlenüL

Köszi a segítséget előre is!

Üdv Erika

Avatar
mezofi
Site Admin
Hozzászólások: 933
Csatlakozott: csüt. okt. 16, 2008 7:30 am
Kapcsolat:

Re: Adatbázis feltöltése csv fájl segítségével.

Hozzászólás Szerző: mezofi »

m működik a csv file letöltési lehetőség, csak az oszlopok elnevezését írja ki. Mit tegyek?
Ott mást nem is kell kiírnia, erre lett tervezve, hogy legyen biankó csv. :D

Excelhez nem értek így ebben nem tudok segíteni. :(

Hozzunk létre egy xls mentést, azt meg tudod nyitani Excelben

A shop/admin/language/hungarian/termek.php-be tedd ezt bele, a nyitó és záró php tagok közé:

Kód: Egész kijelölése

define("XLS_BE","XLS-be mentés");

A shop/admin/kategoria.php-be tedd ezt bele (kb a 44. sorba)

Kód: Egész kijelölése

// Ha xls kell
if(isset($_GET["action"]) && trim($_GET["action"]) == "xls_create" ){
	xlsCreate();
}

A shop/include/kategoria/term_exp.php-be tedd ezt bele (kb a 37. sorba):

Kód: Egész kijelölése

<div style="margin: 10px; cursor:pointer;"><form name="xlsForm" method="post" action="kategoria.php?left=katalogus&center=term_exp&action=xls_create" style="margin:0px; padding:0px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color:#333333; margin-left:10px;">
<?php echo ARFORMA; ?>:&nbsp;<select name="arforma_id" class="inputok" style="margin: 10px 0px;">
<?php while($act = mysql_fetch_assoc($result)){
		echo '<option value="'. $act["arforma_id"] .'">'. $act["arforma"] .'</option>';
}?>
</select><br />
<input type="submit" name="xls_export" value="<?php echo XLS_BE; ?>" title="<?php echo XLS_BE; ?>" class="submit_btn" />
    </form></div>
<hr />
Alatta ez lesz akkor:

Kód: Egész kijelölése

<div style="margin: 10px; cursor:pointer;"><input type="button" name="xml_export" value="<?php echo XML_BE; ?>" title="<?php echo XML_BE; ?>" onClick="xmlCreate('<?php echo XML_SUCCESFUL; ?>');" class="submit_btn" /></div>.............

Most már csak elő kell állítani az xls fájlt.

Az admin/functions/general.php végére illeszd be ezt a függvényt, de még a záró ?> tag elé:

Kód: Egész kijelölése

//XLS eloállítása
function xlsCreate(){

$fejlec = "<table border='0'><tr style='background-color:#FF0; font-weight:bold;' ><td>". TERMEK_KOD ."</td><td>".TERMEK_NEVE . "</td><td>". BRUTTO . "</td><td>". TERMEK_LINK. "</td><td>". TERMEK_LEIRASA . "</td><td>". TERMEK_FOTO . "</td><td>". GYARTO . "</td><td>". KATEGORIA_NEV . "</td></tr>";

//Bruttó vagy nettó árformát kaptunk?
// Árforma kiolvasása
$sql = "SELECT af.forma
		FROM ". ARFORMA_TABLE. " as af 
		WHERE af.arforma_id = ". tep_db_input($_POST["arforma_id"]);
$result = mysql_query2(__LINE__, __FILE__, $sql);

	if(mysql_num_rows($result) > 0){
	$arformaArray = mysql_fetch_assoc($result); 
	
	
	if($arformaArray["forma"] == "brutto"){
	//Bruttó árak vannak
	// Olvassuk ki az adatokat
	$sql ="SELECT nl.name, a.ar, t.id, nl.description,t.image_address, g.gyarto_neve, kl.nev, t.kod
		FROM ".TERMEK_TABLE." as t 
		INNER JOIN ".TERMEK_TO_KATEGORIA_TABLE." as ttk ON ttk.termek_id = t.id
		INNER JOIN ". GYARTOK_TABLE ." as g ON t.gyarto = g.id
		INNER JOIN ". KATEGORIA_LEIRAS_TABLE." as kl ON kl.kat_id = ttk.termek_kategoria_id
		INNER JOIN ".ARAK_TABLE." as a ON t.id = a.termek_id
		LEFT JOIN ".NEV_LEIRAS_TABLE." as nl ON nl.termek_id = t.id
		WHERE t.status = 'igen' 
		AND nl.language_id= ". tep_db_input($_SESSION["admin"]["nyelv_id"]) ."
		AND a.arforma_id = 1
		GROUP BY t.id
		ORDER BY nl.name ";
	}else{
	// Az árak nettó módon vannak megadva
	// Olvassuk ki az adatokat
	$sql ="SELECT nl.name, FORMAT(((afa.szint/100)+1)*a.ar,4) as ar, t.id, nl.description,t.image_address, g.gyarto_neve, kl.nev, t.kod
		FROM ".TERMEK_TABLE." as t
		INNER JOIN ". AFA_TABLE ." as afa ON t.afa_id = afa.afa_id
		INNER JOIN ".TERMEK_TO_KATEGORIA_TABLE." as ttk ON ttk.termek_id = t.id
		INNER JOIN ". GYARTOK_TABLE ." as g ON t.gyarto = g.id
		INNER JOIN ". KATEGORIA_LEIRAS_TABLE." as kl ON kl.kat_id = ttk.termek_kategoria_id
		INNER JOIN ".ARAK_TABLE." as a ON t.id = a.termek_id
		LEFT JOIN ".NEV_LEIRAS_TABLE." as nl ON nl.termek_id = t.id
		WHERE t.status = 'igen' 
		AND nl.language_id= ". tep_db_input($_SESSION["admin"]["nyelv_id"]) ."
		AND a.arforma_id = 1
		GROUP BY t.id
		ORDER BY nl.name ";
	}
	
	$result = mysql_query2(__LINE__, __FILE__, $sql);
	while($act = mysql_fetch_assoc($result)){
	$fejlec .= '<tr><td>'. $act["kod"] .'</td><td>'. strip_tags(str_replace(array("|","&#337;","<br/>",";",'"'),array("","o","","",""),$act["name"])) .'</td><td>' .  $act["ar"] . "</td><td>". $_SESSION["admin"]["bolt_url"]."/index.php?center=uj_termek&term_id=". $act["id"] . "</td><td>". strip_tags(str_replace(array("|","&#337;","<br/>",";",'"'),array("","o","","",""),$act["description"]))  . "</td><td>". $_SESSION["admin"]["bolt_url"] ."/". $act["image_address"] . "</td><td>".$act["gyarto_neve"]. "</td><td>". $act["nev"] ."</td></tr>";
	}
	$fejlec .= '</table>';
	header('Content-type: application/x-octet-stream');   
	header('Content-disposition: attachment; filename=termekek.xls');
	echo $fejlec;
	exit;
	}
}
Aztán klikk az XLS-be mentés gombra, és elvileg megnyitható lesz.

Mezőfi István

pinkfog
Hozzászólások: 13
Csatlakozott: kedd aug. 11, 2009 6:27 pm
Kapcsolat:

Re: Adatbázis feltöltése csv fájl segítségével.

Hozzászólás Szerző: pinkfog »

Szia István!
Nagyon szépen köszönöm! Még nem tudtam megpróbálni, mert valamilyen oknál fogva nem tudok kapcsolatot teremteni az FTP-vel. Bejön látszólag, de nem látok egyetlen mappát sem.
Úgyhogy majd alkalomadtán kipróbálom:))

Köszi szépen! Erika :)

Avatar
mezofi
Site Admin
Hozzászólások: 933
Csatlakozott: csüt. okt. 16, 2008 7:30 am
Kapcsolat:

Re: Adatbázis feltöltése csv fájl segítségével.

Hozzászólás Szerző: mezofi »

Nálam akkor van ilyen, ha mobil nettel szeretnék kapcsolódni. Vagy használd a vezetékes netet, vagy kérd a tárhely szolgáltatótól, hogy állítsa be úgy a hozzáférést, hogy mobil nettel is tudj kapcsolódni a tárhelyedhez.
Mezőfi

gg1002
Hozzászólások: 6
Csatlakozott: hétf. aug. 30, 2010 6:41 pm
Kapcsolat:

Re: Adatbázis feltöltése csv fájl segítségével.

Hozzászólás Szerző: gg1002 »

Egy érdekes dolgot szeretnék megosztani mindenkivel, akit érdekel.
Nekem a csv fájl nem igazán felel meg, mert nem használható a " , ; karakterek, így elválasztó karakternek a TAB-ot használom.
Excel is tudja ezt a formátumot, de nekem nagy mennyiségű adatot (több ezer) kell felvinni(ezen dolgozok most) és sajnos
az imént említett karaktereket használják.
A feltöltésnél termakak.csv nevet használok, de a fájl tulajdonképpen szöveges fájl tabulátorral tagolva, csak átneveztem a végén
a kiterjesztést .csv-re.
Én nem excelből készítem el, hanem egy Access adatbázisban vannak tárolva az adatok és DELPHI-ben írtam egy kis programot, ami
az adatokat kiolvassa az adatbázisba és onnan megfelelő módon tölti be egy Memo-ba és azt mentem el termekek.csv alatt.
Gyakorlatilag mindig jól tölt fel, csak az elsőnél kellett mindent jól bemásolni a Memoba(szöveges fájl).
Azt, hogy a ; helyett TAB legyen a tagolás úgy értem el, hogy az admin/export_import index.php fájlban az explode függvényt így alakítottam
át:
// Rendezzük az árakat start
....
$tabchar=chr(9);
for($i = 12; $i < ($arformakNumber["db"]+12); $i++){
$fejlecArray = explode($tabchar,$tomb[0]);
$csvArId["$i"] = arformaIdRead($fejlecArray["$i"]);
if($csvArId["$i"] == 0){
// Hibás, nem lehetett felismerni mi az árforma kódja!
$arformaHiba = "true";
}
}
// Rendezzük az árakat end

if($arformaHiba == "false"){ // Folytatható a feldolgozás, azonosítva lett az összes árforma

$tabchar=chr(9);
for($i = 1; $i < count($tomb)-1; $i++){
$sor["$i"] = explode($tabchar, $tomb["$i"]);
/*

gg1002
Hozzászólások: 6
Csatlakozott: hétf. aug. 30, 2010 6:41 pm
Kapcsolat:

Re: Adatbázis feltöltése csv fájl segítségével.

Hozzászólás Szerző: gg1002 »

Szeretném bővíteni a csv feltöltési lehetőséget és még egy mező tartalmát feltölteni az adatbázisba , ehhez szükség lenne egy olyan
mezőre, ami tartalmazza az adatok részletes elérését tartalmazó pdf elérési útját(úgy, mint a képek esetében).
Az adatbázisban valahol az adatok után létrehozok egy új szöveges mezőt.
Tudom, hogy ez nem kis átalakítás, csak annyi segítséget kérek, hogy hol, merre kutassak?, esetleg mire figyeljek.

Üdv.
Gábor

Post Reply

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 3 vendég