Bunkertor 7 Posted January 10, 2009 Report Share Posted January 10, 2009 Sveiki, Izdomāju skriptu, kas ņem datus no MySQL tabulas, pārveido tos SEO-draudzīgos (lai Guglei patiktu) datos un saglabā atpakaļ tabulā. Visas funkcijas, ja testē atsevišķi, strādā OK, bet kad to visu saliek kopā vienā lielā skriptā ar kverijiem, sanāk tā, ka visas rindiņas tiek Updeitotas ar pirmās rindiņas datiem. Nu, piemēram, ja rindiņas būtu Kartupelis, Kāposts, Ābols, tad sanāk kartupelis, kartupelis, kartupelis. Error reporti neko neparāda, laikam jau tas ir kaut kas vienkāršs. Vēlreiz pārlasīju "while" manuāli, bet neko aizdomīgu neatradu... Skripts ir atrodams šeitan: http://paste.php.lv/dcd42edec99af6376d853b...ab2c65?lang=php Paldies. Link to comment Share on other sites More sharing options...
Gints Plivna Posted January 10, 2009 Report Share Posted January 10, 2009 UPDATE trūkst WHERE klauzas. Tu ar katru UPDATE maini visas tabulas datus, t.i., pārraksti visas rindiņas. Tev vajag kaut kā identificēt konkrēto ierakstu, vai nu pēc kādas speciālas identifikatora kolonas vai title, tā lai katrs Update nostrādātu tikai uz vienu ierakstu - to ko modificē. Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
Bunkertor 7 Posted January 10, 2009 Author Report Share Posted January 10, 2009 UPDATE trūkst WHERE klauzas. Tu ar katru UPDATE maini visas tabulas datus, t.i., pārraksti visas rindiņas. Tev vajag kaut kā identificēt konkrēto ierakstu, vai nu pēc kādas speciālas identifikatora kolonas vai title, tā lai katrs Update nostrādātu tikai uz vienu ierakstu - to ko modificē. Gints Plivna http://datubazes.wordpress.com Paldies! Njā, kaut ka pagrūti būs identificēt. Piemēram, man tabulā ir 1000 rakstu, kur katram ir atšķirīgs title, body, utt... Es jau nevaru viņus visus identificēt. Man vajag, lai skripts pārveidotu visas rindiņas - no pirmās līdz tūkstošajai, atkarībā no tā, kas tanī rindiņā ir ierakstīts. Būs man viela pārdomām :D Link to comment Share on other sites More sharing options...
Grey_Wolf Posted January 10, 2009 Report Share Posted January 10, 2009 Njā, kaut ka pagrūti būs identificēt. Būs man viela pārdomām :D Buus gan ja nesi izmantojis Primary key .. A ja ir normala tabulas struktura tad parasti ir kaads Identifikators peec kaa var nekljudigi noteikt kura rindinja .... Un tad jau nav problem: SELECT id, bla1, bla bla n .. FROM tabulis ... un peec ID izdaram UPDATE .. WHERE id=$tekosais_id tas arii viss... Un viela pardomam arii kad ciklaa tiek atkartoti defineeta f-ja .. Ja godiigi iisti neticu ka tas tavs skripts straada bez erroriem ... (Un vai shii iemesla delj vispar straada .....) [/code] while($r=mysql_fetch_array($dragresult)) { $title = "$r[title]"; $description = "$r[description]"; //shite saakas title apstraade function make_urls($title,$bad_words, $divider = '-') { ..... [/code] funkcijas NEKAD nedefinee ieksh cikla, tapec jau taas ir izdomatas kad definee tikai 1 reizi un peec tam izsauc, to gan tieshi var dariit ciklaa Link to comment Share on other sites More sharing options...
Bunkertor 7 Posted January 10, 2009 Author Report Share Posted January 10, 2009 Buus gan ja nesi izmantojis Primary key .. O, super! Paldies, Grey_Wolf. Patiesībā man tabulās vienmēr ir Primary Key - vajag vai nevajag. Es jau pāris reizes uz to apdedzinājos strādājot ar milzīgām tabulām, tāpēc tagad vienmēr lietoju "id". Un par to funkciju Tev bija pilnīga taisnība - viņš it kā izpilda to skriptu, bet iet uz riņķi un beigās uzkarās. Tagad ir OK, es to funkcijas definēšanu aizvācu uz sākumu. Tomēr parādījās cita problēma :( Jauns errors: Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /hsphere/local/home līnijā #61 - tur, kur izpildās mysql_query Ja pamēģina atkomentēt #55, 56, 57 - tur, kur tie echo un aizkomentēt kveriju - viss notiek kā vajag. Skripts aiziet līdz pēdējai tabulas rindiņai, izdara visu pareizi un izvada uz ekrāna HTML. Tātad outputs ir... Te ir jaunā versija http://paste.php.lv/ad711b9d0b0cf687b4e45c...29018c?lang=php Link to comment Share on other sites More sharing options...
Val Posted January 10, 2009 Report Share Posted January 10, 2009 (edited) izvāc mysql_close(); smukāk būtu, ja 7., 8. un 9. rindiņu pārvietotu zem create_reg funkcijas. Edited January 10, 2009 by Val Link to comment Share on other sites More sharing options...
Bunkertor 7 Posted January 11, 2009 Author Report Share Posted January 11, 2009 izvāc mysql_close(); Paldies, Val. Tagad viss ir OK. Vēl beigās pārtaisīju #40, tur kur skripts raksta url $readyurl = make_urls($title,$bad_words)."-".$id; Tagad viņš visiem url kabina galā id, gadījumā ja vairākiem ierakstiem ir identiski Title. Uff, tas bija vērtīgs lessons! Link to comment Share on other sites More sharing options...
Recommended Posts