Kom ihåg mig?

uppdatera databas med php och javascript

 
 
Ämnesverktyg Visningsalternativ
Oläst 2012-10-11, 14:48 #1
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
Citat:
Ursprungligen postat av jonssondesign Visa inlägg
"För övrigt så använd transaktioner med databasfrågorna. Annars kan du få korrupt data." - vad menar du med det?
Ja alltså tänk om din kod smäller eller stoppar av någon anledning t.ex i detta stycke:

$query = "SELECT id, advertiserProductUrl FROM products WHERE `new` = 1";
$select = mysql_query($query) or die(mysql_error());

Då kommer inte dina updates efter det att köra, men dina första inserts har körts och uppdaterat databasen.

Med transaktioner körs allt eller inget , typ denna princip

mysql_query("SET AUTOCOMMIT=0");
mysql_query("START TRANSACTION");

$a1 = mysql_query("INSERT INTO bla (id) VALUES('1')");
$a2 = mysql_query("INSERT INTO blabla(id) VALUES('2')");

if ($a1 and $a2) {
mysql_query("COMMIT"); //allt grönt , skriver ner allt till db
} else {
mysql_query("ROLLBACK"); //backar tillbaks allt efter "START TRANSACTION"
}

Kan inte så mycket om dem i mySQL men du måste nog köra InnoDB dessvärre för att använda transaktioner.
Det brukar rekommenderas att köra den tabelltypen generellt, kan inte alla detaljer men MyISAM är lämpligare för Selects för att den låser hela tabellen vid skrivningar till tabellen.


Citat:
Ursprungligen postat av jonssondesign Visa inlägg
"Kolla om det finns index på dessa kolumner där "where" används:" - ehm. say what what?
ooh! nej, inget index på varken new eller fresh. as you can se.
Index kan användas även vid Updates eller Deletes,
så om du har t.ex "update tbl where somecolumn = 99" och det inte finns ett index på den kolumnen då görs en scan på alla rader i hela tabellen. med ett index går det snabbare.
Men samtidigt om du lägger till fler index i tabellen kommer inserts gå segare för att den då måste uppdatera index..så detta är kanske ett gränsfall

I alla fall, om det funkar på Binero kanske du inte behöver göra så mycket pill i sql:en för att få det att funka vad gäller prestandabiten
danjel är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-10-12, 14:22 #2
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
SQL-sats som borde föregå upload_nelly.php i inlägg 4 ovan.

Du bör mao fört importera hela XML-filen till din lokala datrabas (den tabellen kallar jag för "XML_ImportTabellen
") då du kan köra SQL-frågor för att göra urvalen istället för att loopa i PHP och göra samma sak där.

Du bör ha en tabell med de alternativ för "gender" som du vill EXKLUDERA, den tabellen kallar jag för ExcludeGenderTabellen.

Du bör ha en tabell med de alternativ för "category" som du vill EXKLUDERA, den tabellen kallar jag för ExcludeCategoryTabellen.


Kod:
INSERT INTO products (img, title, brand, store, price, url, category, gender, visible, info, advertiserProductUrl, fresh, new)  ON DUPLICATE KEY UPDATE fresh = 1
SELECT img, title, brand, store, price, url, category, gender, 1, info, advertiserProductUrl, 1, 1
FROM XML_ImportTabellen
WHERE gender NOT IN (select gender from ExcludeGenderTabellen)
AND category NOT IN (select category from ExcludeCategoryTabellen)
AND sale=true
När du sen ska ta fran de data som du ska använda för att skicka upp så hämtar du dem från Products-tabellen med en enkel selectsats:

Kod:
SELECT img, title, brand, store, price, url, category, gender, visible, info, advertiserProductUrl, fresh, new
FROM products
... Vilket blir kortare och tydligare i din kod än den gigantiska PHP-kod du har nu. Det blir betydligt tydligare att läsa och därmed enklare att felsöka.

Senast redigerad av Conny Westh den 2012-10-12 klockan 14:34
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-10-12, 23:55 #3
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
Tack för alla tips! Jag ska kolla på vad jag klarar av att göra, och återkommer om eventuella frågor.

Tack igen!
jonssondesign är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 07:20.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017