Klez Posted October 3, 2008 Report Share Posted October 3, 2008 tev to failu vajag saglabaat ??? maini visu laiku vinjam nosaukumu. liec nosaukumaa time() veertiibu un buus tev visas veestures ... Link to comment Share on other sites More sharing options...
codez Posted October 3, 2008 Report Share Posted October 3, 2008 (edited) Ja gribi vienkārši ignorēt, tad izvēlies kādu kolonu un piešķir viņu pašu sev. INSERT INTO test VALUES (dati) on duplicate key update kolonna10=kolonna10; Tikai atceriews, ka tiek salīdzināta tā kolonnu kombinācija, kurām ir primary key. Tavā gadījumā tā būs otrā. Tpfu, ja gribi ignorēt, ieliec vienkārši IGNORE: INSERT IGNORE INTO test VALUES (dati); Ja gribi kaut ko updeitot esošajām kollonām, tad tev jānorāda ko: INSERT INTO test VALUES (dati) ON DUPLICATE KEY UPDATE kolonna1=dati1, kolonna3=dati3, kolonna9=kolonna9+1; Edited October 3, 2008 by codez Link to comment Share on other sites More sharing options...
atari Posted October 3, 2008 Author Report Share Posted October 3, 2008 (edited) Vispār tev nederēs gan tas on dublicate. Tev tās rindas baigi daudz ? Varbūt vienkārši dari kā Klez rādīja. ir datubaze vārdā 'datubāze' taja ir viena tabula vārdā 'test' taja test tabula ir 10 lauki tā arī saucas lauki (1,2,3,4,5,6,7,8,9,10), no 1-9 ir pāris vārdi izņemot otraja unikāls kods, bet 10 lauka būs kādi 10-15 vārdi. Tas augšējais, manis postētais kods vispār tjā lietā neder, ko man vajag? To uzraku meklējot guglē CSVtoSQL. Edited October 3, 2008 by atari Link to comment Share on other sites More sharing options...
atari Posted October 3, 2008 Author Report Share Posted October 3, 2008 (edited) tev to failu vajag saglabaat ???maini visu laiku vinjam nosaukumu. liec nosaukumaa time() veertiibu un buus tev visas veestures ... nu tad rakstīsies katru reizi viss pa jaunu un ieraksti saglabāsies katru reizi, neskatories uz to jau iepriekšējo reizi kad palaists skripts tādi jau ierakstījās ieks datubāzes, taja CSV faila ir (kā to varētu izprast mysql) 10 kolonnas, varu pafantazēt lai izprastu |vards|unikaals_kods|vards3|vards4|vards5|vards6|vards7|vards8|vards9|vards10|. katru reizi ka tas skripts nolasīs CSV failu taja var rasties izmaiņas, teiksim būs tā aptuveni 30% vecāko lauku nemainīsies, bet sākuma lauki tajā CSV failā kādi 70% būs jauni, tas var mainīties 50%-50%, 80%-20% utt. mēģināšu tūlīt codez variantu par on duplicate key update liekas ļoti saprotami, pat man, malacis par paskaidrojumu! Edited October 3, 2008 by atari Link to comment Share on other sites More sharing options...
Gints Plivna Posted October 3, 2008 Report Share Posted October 3, 2008 tā arī saucas lauki (1,2,3,4,5,6,7,8,9,10) Sorry, par iebraucienu drusku ne pa tēmu, bet šito es arī nekad neesmu varējis saprast kā var taisīt tādus kolonu nosaukumus :OOOOOO Tas ir tikpat kā bāzt galvu labprātīgi cilpā, nu vienkārši nenormāli prasās pēc bugiem ;) Update tablea set '1' = 2 Update tablea set '1' = '2' vai piemēram select 1 from tablea select '1' from tablea Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
atari Posted October 3, 2008 Author Report Share Posted October 3, 2008 Sorry, par iebraucienu drusku ne pa tēmu, bet šito es arī nekad neesmu varējis saprast kā var taisīt tādus kolonu nosaukumus :OOOOOOTas ir tikpat kā bāzt galvu labprātīgi cilpā, nu vienkārši nenormāli prasās pēc bugiem ;) Update tablea set '1' = 2 Update tablea set '1' = '2' vai piemēram select 1 from tablea select '1' from tablea Gints Plivna http://datubazes.wordpress.com Kolonnu nosaukumi koes rakstīju ir kā piemērs, ja Tu domā: |vards|unikaals_kods|vards3|vards4|vards5|vards6|vards7|vards8|vards9|vards10| it kā tādas kollonas ir CSV faila un attiecīgi kas tajās ir rakstīts ierakstās datubāzes tabulā test šajās kolonnās (1,2,3,4,5,6,7,8,9,10) Link to comment Share on other sites More sharing options...
Klez Posted October 3, 2008 Report Share Posted October 3, 2008 peec kaa tu tos datus skaties ? var mainiities vienai rindai kaut kaadi lauki? vai klaat var naakt tikai jauna rinda? ja klaat var naakt tikai jauna rinda, tad skaties peec taa unikaalaa koda ... ja taada nav tad rindu ievieto. a ja var mainiities jebkursh lauks tad droshi vien vajag to ar DUPLICATE KEY Link to comment Share on other sites More sharing options...
atari Posted October 3, 2008 Author Report Share Posted October 3, 2008 (edited) peec kaa tu tos datus skaties ?var mainiities vienai rindai kaut kaadi lauki? vai klaat var naakt tikai jauna rinda? ja klaat var naakt tikai jauna rinda, tad skaties peec taa unikaalaa koda ... ja taada nav tad rindu ievieto. a ja var mainiities jebkursh lauks tad droshi vien vajag to ar DUPLICATE KEY katrai rindai iekš CSV faila un attiecīgi ieraksti tabulas kolonnās mainās katru reizi, nekas nav vienāds, bet ir "vecās" kuras nevajag mainīt/rakstīt vēlreiz pa jaunu/dajebko/likt mierā/un punkts/basta , CODEZ mos iesaki, ka lai šeit: INSERT INTO test VALUES (dati) on duplicate key update nedara neko ar to kolonnu rindu; , ja kāds lauks sakrīt; piemēram: tikko palaists tas php skripts un tabulā ierakstījās ar daudziem citiem ierakstiem šis te: |vards|unikaals_kods|vards3|vards4|vards5|vards6|vards7|vards8|vards9|vards10| un laižam nakamreiz to skriptu tad ja tajā CSV failā atkal ir šā te rindiņa: |vards|unikaals_kods|vards3|vards4|vards5|vards6|vards7|vards8|vards9|vards10| tad liekam to mierā neko nedaram, t.i. pats galvenais nerakstam to vēlreiz. pagaidām nekas nesanāk. Edited October 3, 2008 by atari Link to comment Share on other sites More sharing options...
codez Posted October 3, 2008 Report Share Posted October 3, 2008 Kad nedara neke? Ja sakrīt pilnīgi visi lauki? Vai tikai unikaals_kods? Ko darīt gadījumā, ja unikaals_kods sakrīt, bet citi lauki atšķirās? Link to comment Share on other sites More sharing options...
atari Posted October 3, 2008 Author Report Share Posted October 3, 2008 (edited) Kad nedara neke? Ja sakrīt pilnīgi visi lauki? Vai tikai unikaals_kods?Ko darīt gadījumā, ja unikaals_kods sakrīt, bet citi lauki atšķirās? Nu tik smalki jau ir pa glauno, bet to nevajag, būtība ir tāda, ka to skriptu palaižot pirmo reizi ierakstās tabulas kolonnās ieraksti, palaižot nākamreiz to skriptu, tas atkal nolasa CSV failu, bet ar jau izmaiņām(jauniem ierakstiem, kas ir CSV failā) un atkal izveido ierakstus tabulas kolonnās, bet tādi jau ir no pirmās reizes palaišanas. Saproti ērtāk laikam ir salīdzinat pēc nezinu jebkā, kas jau ir kolonnās, vienalga kāds tabulas kolonas lauks, bet tikai lai neizveidojas vēl tāds, ja jau viens ir. . Problēmas kopsavilkums redzams bildē šeit: http://www.ht2.lv/bildes/kopsavilkums.jpg p.s. ceru pēc bildes palika skaidrāks, labi, var palikt pie tā, ja kaut viens no CSV faila laukiem sakriīt ar jau esošo kas ir kādā no datubāzes kolonām (varu pateikt priekšā, ja skaritīs, tad sakritīs visi, bet nu kā php vai mysql ir ērtāk nezinu) , tad viss nerakstam to pa jaunu (kā ir tagad, manā nelaimīgā php skriptā), lai tas kaut kur gaisā karājas, nezinu, nahrenizēt bez jūtām, tikai ne datubāze, pietiek, ka viens tāds ieraksts tur jau ir. Edited October 3, 2008 by atari Link to comment Share on other sites More sharing options...
codez Posted October 3, 2008 Report Share Posted October 3, 2008 (edited) Kaut kas tāds varētu strādāt: $sql="INSERT IGNORE INTO test VALUES (".str_replace(';',',',$line).")"; Edited October 3, 2008 by codez Link to comment Share on other sites More sharing options...
atari Posted October 3, 2008 Author Report Share Posted October 3, 2008 Kaut kas tāds varētu strādāt: $sql="INSERT IGNORE INTO test VALUES (".str_replace(';',',',$line).")"; vienagla ierakstās pa jaunu :( Link to comment Share on other sites More sharing options...
codez Posted October 3, 2008 Report Share Posted October 3, 2008 (edited) Ieliec tikai 2. kolonnai "primary key". Edited October 3, 2008 by codez Link to comment Share on other sites More sharing options...
atari Posted October 3, 2008 Author Report Share Posted October 3, 2008 (edited) Ieliec tikai 2. kolonnai "primary key". Viss štokos! Lielais, cilvēciskais PALDIES! Edited October 3, 2008 by atari Link to comment Share on other sites More sharing options...
Recommended Posts