Autor | Zpráva | ||
---|---|---|---|
krutak Profil * |
#1 · Zasláno: 19. 12. 2012, 09:57:37
Zdravím všechny ochotné,
nedaří se mi vymyslet podmínka na porování tabulky z DB a řetězce z načteného CSV souboru. CSV nyní načítám do PHP takto, což funguje v pořádku (přidávám k importu sloupec NAHLED a do nej chci hodnoty "ano/ne" dle toho, zda je podmínka splněna): while (($data = fgetcsv($NactiSoubor, 1000, ";")) !== FALSE) { if ($row == 0) { $num = count($data); echo "\n<thead>\n<tr>"; $row++; for ($c=0; $c < $num; $c++) { echo "<th>" . $data[$c] . "</th>"; } echo "<th>NÁHLED</th>"; echo "</tr>\n</thead>\n\n<tbody>"; } else { $num = count($data); echo "<tr>"; $row++; for ($c=0; $c < $num; $c++) { echo "<td>" . $data[$c] . "</td>"; } echo "<td>"; if ($TADYNEVIM == "$data[0]") { echo "ano"; } else { echo "ne"; } echo "</td>"; echo "</tr>\n"; } } if ("$TADYNEVIM" == "$data[0]") { echo "je v DB"; } else { echo "neni"; } Jelikož nejsem moc přes php, tak to tak nějak bastlím sám (a doteď jsem to vždy vymyslel). Obsah dané části DB umím vypsat například pomocí: $queryDB = "SELECT muj_sloupec FROM moje_tabulka"; $resultDB = mysql_query($queryDB); while ($row = mysql_fetch_array($resultDB)) { echo $row["muj_sloupec"]; } Když místo $TADYNEVIM dosadím nějakou konkrétní hodnotu z DB, tak to také funguje => problém je jen vymyslet, jak místo $TADYNEVIM načíst pole (asi) a to porovnat s danou hodnotou. Děkuji všem |
||
Tori Profil |
#2 · Zasláno: 19. 12. 2012, 10:18:06
krutak:
Jak asi velký (= řádově počet řádků) je ten CSV soubor? |
||
krutak Profil * |
#3 · Zasláno: 19. 12. 2012, 10:44:10 · Upravil/a: krutak
cca 4000 řádků
ale ten CSV má jen 4 sloupce a celkově je to cca 100kB soubor |
||
Tori Profil |
#4 · Zasláno: 19. 12. 2012, 11:09:53
krutak:
„cca 4000 řádků“ Potom by asi bylo efektivnější to csv nahrát do (dočasné) DB tabulky a vypsat odtamtud, i se zjišťováním náhled=ano/ne. |
||
krutak Profil * |
#5 · Zasláno: 19. 12. 2012, 11:24:00
nad tim jsem take premyslel, ale nechce se mi jen kvuli tomu zakladat dalsi tabulka, kdyz ji na vse ostatni, co delam, nepotrebuji
|
||
Tori Profil |
#6 · Zasláno: 19. 12. 2012, 11:57:01
tak potom
$sql = "SELECT COUNT(*) FROM tabulka WHERE sloupec = '".mysql_real_escape_query($data[0])."'"; // nebo přetypovat na číslo , místo mysql_fetch_array můžete použít mysql_result. Ale pro řádově tisíce opakování to nebude moc rychlé. Pokud ta DB tabulka nemá moc řádků (= řádově pár set), šlo by i načíst si z ní všechny unikátní hodnoty z muj_sloupec do pole (jako klíče) a porovnávat pomocí isset, to by bylo rychlejší než 4k dotazů.
|
||
Časová prodleva: 11 let
|
0