Autor | Zpráva | ||
---|---|---|---|
Generation Profil * |
#1 · Zasláno: 3. 4. 2016, 19:14:28
Zdravím mám script níže který mi pomocí CSV updatuje sloupce v db.
Script porovnává existující a následně je updatuje. Problém nástává když v názvu albumu je např.: 20 Greatest Hits 20 Greatest Hits [Loretta & Conway] 20th Century Masters - The Christmas Collection - The Best Of Loretta Lynn Prostě je to neupdatuje. Myslím že budu mít problém v ošetření ale nevím přesně kde. Můžete mi někdo prosím poradit? Děkuji Script: <?php if (isset($_FILES['fupload'])) { $slozka = "csv"; // Zde si napi‘te svojí složku, do které se budou soubory ukádat (bez lomítka) $cil = $slozka . "/" .$_FILES['fupload']['name']; // Toto je proměnná $cil, která obsahuje adresář, kde se má soubor uploadovat a taky název souboru. $nazev_souboru = $_FILES['fupload']['tmp_name']; // Zjistí dočastné umístění souboru $copy = move_uploaded_file($nazev_souboru, $cil) // A tady zkopíruje soubor z dočastného umístění do cílového souboru a složky or die ("Přenesený soubor nelze zkopírovat"); // A pokud se nepovede, tak vypí‘e tuto hlá‘ku chmod ($cil, 0777); // Je‘tě na soubor vyhodíme funkci chmod, která změní jeho práva na maximum, pokud by soubor psal chybu změňte 0644 na 0777 // do této chvíle se řešil upload souboru if($copy == true) //pokudp roběhl uspěšně zapisujeme do databáze { include "settings.php"; $stats="albums"; $filename=$cil; $handle = fopen("$filename", "r"); while (($data = fgetcsv($handle, 1000, '*')) !== FALSE) // cyklus který prochází jednotlivé řádky CSV souboru { // tu se dívám do databáze jeslti daný Album už v databázi existuje. $exist_album = mysql_result(mysql_query("SELECT Album, Albumartist FROM $stats WHERE `Album`='".addslashes(($data[0])."' AND 'Albumartist' = '$data[1]'"), 0); //Existuje, uděláme update if($exist_album==0) { $import="UPDATE $stats SET Web='$data[2]' WHERE `Album`='".addslashes(($data[0])."' AND 'Albumartist' = '$data[1]'"; mysql_query($import) or die(mysql_error()); echo $import.'<br />'; } else { echo'chyba- neexistující album<br />'; } } fclose($handle); print "<br />Linky úspěšně změněny";} } ?> |
||
juriad Profil |
1) Na addslashes zapomeň. Použij mysql_real_escape_string.
2) Každý vstup musíš escapovat, nikoli jen některé z nich. 3) Máš na 27. a 31. řádku nadbytečnou otevírací závorku. 4) Albumartist nemá být v apostrofech, ale ve zpětných apostrofech. A nebo tam nemusí být vůbec nic, protože Albumartist není klíčové slovo v MySQL. $import = "UPDATE $stats SET Web = '" . mysql_real_escape_string($data[2]) . "' WHERE Album = '" . mysql_real_escape_string($data[0]) . "' AND Albumartist = '" . mysql_real_escape_string($data[1]) "'"; Mimochodem, ten dotaz na 27. řádku vůbec není nutný. Pokud album neexistuje, tak update vůbec nic neudělá. Ten kód, který jsi sem dal nemůže vůbec fungovat. |
||
Generation Profil * |
v Albumartist se může nacházet i: Loretta Lynn & Conway Twitty
To je možné že to s tím má také něco společného. juriad: Funguje až na to co píši zde že neupdatuje ty názvy kde je číslo či speciální znak. Nyní to je takto a stejně to nezapíše: { // tu se dívám do databáze jeslti daný Album už v databázi existuje. $exist_album = mysql_result(mysql_query("SELECT Album, Albumartist FROM $stats WHERE Album='" . mysql_real_escape_string($data[0]) . "' AND Albumartist = '" . mysql_real_escape_string($data[1]). "'"), 0); //Existuje, uděláme update if($exist_album==0) { $import="UPDATE $stats SET Web='" . mysql_real_escape_string($data[2]) . "' WHERE Album='" . mysql_real_escape_string($data[0]) . "' AND Albumartist = '" . mysql_real_escape_string($data[1]). "'"; mysql_query($import) or die(mysql_error()); var_dump ( $import.'<br />'); } else { echo'chyba- neexistující album<br />'; } } " string(188) "UPDATE albums SET Web='https://mega.nz/#!thRFwBqQ!n6sA2ArRbafxkox17EuATqFPEhnc4m71H7ZYXUAwT0k' WHERE Album='Two\'s A Party And More' AND Albumartist = 'Loretta Lynn & Conway Twitty' " string(172) "UPDATE albums SET Web='https://mega.nz/#!RgIgGKgL!ZxwHi8RnEcfvRNPvtDjcgq-j9qtp6D5aqveaprCK6ew' WHERE Album='Making Love From Memory' AND Albumartist = 'Loretta Lynn' " string(213) "UPDATE albums SET Web='https://mega.nz/#!F1ZyXIwA!8d7LzQpklVXvOqd4mLhkiajLzddd3M5od_Jr3nltVCA' WHERE Album='Lyin\' Cheatin\' Woman Chasin\' Honky Tonkin\' Whiskey Drinkin\'' AND Albumartist = 'Loretta Lynn' " string(161) "UPDATE albums SET Web='https://mega.nz/#!UlhG3ZQC!rhOEkRHqs10Pk6GnCuTL2-Mc_IWJJ19eAdkHwO7KmAo' WHERE Album='Just A Woman' AND Albumartist = 'Loretta Lynn' " chyba- neexistující album string(179) "UPDATE albums SET Web='https://mega.nz/#!NgoChT7I!mboNRuZps9gnbU7s7gzRPYxMO4Es7LhyK88xlKfVQQ8' WHERE Album='Making Believe' AND Albumartist = 'Loretta Lynn & Conway Twitty' " string(170) "UPDATE albums SET Web='https://mega.nz/#!F94AWSxA!VA_deBsQzzog3kJUaS906qGzVjgOG8_OGQVt9Q2lzbE' WHERE Album='Who Was That Stranger' AND Albumartist = 'Loretta Lynn' " chyba- neexistující album string(168) "UPDATE albums SET Web='https://mega.nz/#!pxoDVToI!49H8z2yvYMVWzKTIMh_NuHgQFIAd8mQmP8b-ed3-WYc' WHERE Album='Peace In The Valley' AND Albumartist = 'Loretta Lynn' " string(182) "UPDATE albums SET Web='https://mega.nz/#!U1IxUYTZ!_UsE-jF6C0aWUXq-jgxCDeh8fAkuQvsjA84gSpJg79E' WHERE Album='Country Music Hall Of Fame Series' AND Albumartist = 'Loretta Lynn' " string(186) "UPDATE albums SET Web='https://mega.nz/#!Nlx23ChA!ylBhjdWn6ruAcAgZXlQLzrygCvmKTbxCTGOkrkazYwA' WHERE Album='Country Gospel Greats' AND Albumartist = 'Loretta Lynn & Conway Twitty' " string(179) "UPDATE albums SET Web='https://mega.nz/#!oxpAEC7B!cMk-80_x1yLPFFqUZolPqCly26HcSf4wyqgWqwWtAY0' WHERE Album='Sings Patsy Cline\'s Favorites' AND Albumartist = 'Loretta Lynn' " string(169) "UPDATE albums SET Web='https://mega.nz/#!BoBigTbA!TYVaQIC79yNlPG2ew3kVlpv0j24ltib2vF804ZYkWKI' WHERE Album='The Old Rugged Cross' AND Albumartist = 'Loretta Lynn' " string(178) "UPDATE albums SET Web='https://mega.nz/#!ttIE1CyJ!h3NuXXkjFOCe1YljBBs_b_SWcGKS34RMHFlCkosf7WY' WHERE Album='Coal Miner\'s Daughter - Live' AND Albumartist = 'Loretta Lynn' " string(177) "UPDATE albums SET Web='https://mega.nz/#!dpYyjDYJ!dJJhJbz3B3ym2N6TXp17hgQS_HOmWqe-zRj8Zki-0q8' WHERE Album='Country\'s Favorite Daughter' AND Albumartist = 'Loretta Lynn' " string(195) "UPDATE albums SET Web='https://mega.nz/#!s0Y1GKyQ!YHSGpZtNVnx6kiA15-ZbZpCchHRiwxYV3TOg3XjCRBE' WHERE Album='Honky Tonk Girl - Collection (3CD Set) Disc 1' AND Albumartist = 'Loretta Lynn' " string(195) "UPDATE albums SET Web='https://mega.nz/#!s0Y1GKyQ!YHSGpZtNVnx6kiA15-ZbZpCchHRiwxYV3TOg3XjCRBE' WHERE Album='Honky Tonk Girl - Collection (3CD Set) Disc 2' AND Albumartist = 'Loretta Lynn' " string(195) "UPDATE albums SET Web='https://mega.nz/#!s0Y1GKyQ!YHSGpZtNVnx6kiA15-ZbZpCchHRiwxYV3TOg3XjCRBE' WHERE Album='Honky Tonk Girl - Collection (3CD Set) Disc 3' AND Albumartist = 'Loretta Lynn' " string(169) "UPDATE albums SET Web='https://mega.nz/#!80hCWIzY!CcKSROrulJpWwkjLhKCtDGDyKh3TB1LJ9AnCH8VEZ7o' WHERE Album='Making More Memories' AND Albumartist = 'Loretta Lynn' " string(191) "UPDATE albums SET Web='https://mega.nz/#!M9wEjLCQ!OeI_zw_Q5bf_gS-R3ym05kDZkXJDuNUTZvI8x4n4FG8' WHERE Album='Just A Closer Walk With Thee' AND Albumartist = 'Patsy Cline & Loretta Lynn' " string(201) "UPDATE albums SET Web='https://mega.nz/#!BgQTnbhD!ujYq5Mb_IpIxtWWT88PW9ZDvDlO4grDTN-d30zryw8k' WHERE Album='Sing Their Biggest (2CD Set) Disc 1' AND Albumartist = 'Loretta Lynn & Conway Twitty' " string(201) "UPDATE albums SET Web='https://mega.nz/#!BgQTnbhD!ujYq5Mb_IpIxtWWT88PW9ZDvDlO4grDTN-d30zryw8k' WHERE Album='Sing Their Biggest (2CD Set) Disc 2' AND Albumartist = 'Loretta Lynn & Conway Twitty' " chyba- neexistující album string(164) "UPDATE albums SET Web='https://mega.nz/#!dgZwXBZL!9tVeRNjN9lWNKJ4QoUSNZvojPf6RBRLYH2w_vixpsP8' WHERE Album='Her Gospel Side' AND Albumartist = 'Loretta Lynn' " string(162) "UPDATE albums SET Web='https://mega.nz/#!ltoRRYpQ!W6A2mpVwVtW-SLgqD-BIzlZbO6I0r4DGtP9aFA6CaGo' WHERE Album='Still Country' AND Albumartist = 'Loretta Lynn' " chyba- neexistující album string(171) "UPDATE albums SET Web='https://mega.nz/#!0xI1jBzb!orprm_vixvR69zV-JJQFhZ0aGjnO-0FmZOO2HD3L1uo' WHERE Album='All-Time Greatest Hits' AND Albumartist = 'Loretta Lynn' " string(192) "UPDATE albums SET Web='https://mega.nz/#!1lIBFKKJ!xzLj09MmVVDj1mBd4AoJSXki5qeLzP2uk4TgH43UFUg' WHERE Album='All Time Gospel Favorites (2CD Set) Disc 1' AND Albumartist = 'Loretta Lynn' " string(192) "UPDATE albums SET Web='https://mega.nz/#!1lIBFKKJ!xzLj09MmVVDj1mBd4AoJSXki5qeLzP2uk4TgH43UFUg' WHERE Album='All Time Gospel Favorites (2CD Set) Disc 2' AND Albumartist = 'Loretta Lynn' " string(162) "UPDATE albums SET Web='https://mega.nz/#!R5pxRJiZ!bcRh1ylJzCbxdOIVpE9NCfaXncdk8aUAR8_NNMRqy2o' WHERE Album='Van Lear Rose' AND Albumartist = 'Loretta Lynn' " chyba- neexistující album string(209) "UPDATE albums SET Web='https://mega.nz/#!AkQFzSDY!SeD7w23k0QGSAy8JJ_0RgqlZDyiDyZjzeyu-fEmuKhw' WHERE Album='The Definitive Collection [Loretta & Conway]' AND Albumartist = 'Loretta Lynn & Conway Twitty' " string(174) "UPDATE albums SET Web='https://mega.nz/#!o0IjVSBb!akeC-yAwh2Xdsgwwd1Q1h-OLGRWOHGPK0D0ODIw5HgY' WHERE Album='The Definitive Collection' AND Albumartist = 'Loretta Lynn' " string(171) "UPDATE albums SET Web='https://mega.nz/#!4t5yARza!F2RF7mI3vqYBeTTRrbPyynQT0wDD3Btib9PahC70BvI' WHERE Album='Gold (2CD Set) Disc 1' AND Albumartist = 'Loretta Lynn' " string(171) "UPDATE albums SET Web='https://mega.nz/#!4t5yARza!F2RF7mI3vqYBeTTRrbPyynQT0wDD3Btib9PahC70BvI' WHERE Album='Gold (2CD Set) Disc 2' AND Albumartist = 'Loretta Lynn' " string(195) "UPDATE albums SET Web='https://mega.nz/#!h5IgnLRa!5zispt9NczBFx7US48e7vIyo1xpCJpu-V5ITs489CZY' WHERE Album='Live And Alive - Legends Of The Grand Ole Opry' AND Albumartist = 'Loretta Lynn' " string(162) "UPDATE albums SET Web='https://mega.nz/#!QhxUCQSR!M6rlEBz7SPEU6t3pCi493byHDmVoM7niZB9oql2ahvA' WHERE Album='Country Queen' AND Albumartist = 'Loretta Lynn' " chyba- neexistující album chyba- neexistující album Linky úspěšně změněny Když jsem odmazal to co patřilo k 27 řádku, už to funguje. |
||
Časová prodleva: 9 let
|
0