Autor Zpráva
Fomy
Profil *
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
Fomy - duplicitu je lepšie riešiť UNIQUE indexom v databáze.
Fomy
Profil *
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
pro upřesnění, UNIQUE můžeš použít na více sloupců ALTER TABLE test ADD UNIQUE KEY `klic` (`title`,`text`)
Fomy
Profil *
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
Fomy - tak tam nepoužívaj or die
Fomy
Profil *
Předchvilkou jsem to právě zkusil odmáznout a šlo to, díky všem za info

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0