Autor | Zpráva | ||
---|---|---|---|
Fomy Profil * |
#1 · Zasláno: 1. 2. 2009, 19:24:40
Ahoj, mám kód pro xml import ... ten funguje, akorát problém je v tom, že bych rád nějak do kódu přidal kontrolu zda záznam je již v databázi nebo ne, aby se mi neukládal znovu. Zkoušel jsem přidat kontrolu, tak že jsem se připojil k databázi, přes while jsem si vytáhnul uložené záznamy a porovnával s importovanými přes if, bohužel se mi skript nějak zacyklil a začalo se mi ukládat do datábaze 100000 záznamů, ikdyž v xmlku jich bylo asi 15, vůbec nevím jak to přidat do kódu, aby to řešilo duplicitu. Díky za rady.
Kód pro import: foreach ($xml ->item as $key) { $title = $key->title; $text = $key->text; mysql_db_query($db_name, "INSERT INTO test (title, text) VALUES ('$title','$text')") or die("Nepřipojeno!"); echo mysql_error(); } |
||
tiso Profil |
#2 · Zasláno: 1. 2. 2009, 19:30:15
Fomy - duplicitu je lepšie riešiť UNIQUE indexom v databáze.
|
||
Fomy Profil * |
#3 · Zasláno: 1. 2. 2009, 19:41:51
Dík, v databázi jsem nastavil sloupec na unique, první import proběhne v pohodě, ale druhej už ne, zkoušel jsem odmazat jeden řádek z tabulky, jestli se ten chybějící doimportuje a nic, chyba :/
|
||
AM_ Profil |
#4 · Zasláno: 1. 2. 2009, 19:42:29
pro upřesnění, UNIQUE můžeš použít na více sloupců ALTER TABLE test ADD UNIQUE KEY `klic` (`title`,`text`)
|
||
Fomy Profil * |
#5 · Zasláno: 1. 2. 2009, 19:54:32
Jako funguje mi to asi takhle, udělám první import dobrý, pak na zkoušku odmáznu z databáze dva záznamy na začátku tabulky a nakonci tabulky, pak udělám import znovu a naimportuje se mi jen první záznam u druhého jelikož je už v databázi uložen se skript zasekne a konec poslední záznam se nanaimportuje.
|
||
tiso Profil |
#6 · Zasláno: 1. 2. 2009, 20:10:58
Fomy - tak tam nepoužívaj or die
|
||
Fomy Profil * |
#7 · Zasláno: 1. 2. 2009, 20:12:31
Předchvilkou jsem to právě zkusil odmáznout a šlo to, díky všem za info
|
||
Časová prodleva: 15 let
|
0