| Autor | Zpráva | ||
|---|---|---|---|
| Generation Profil * |
#1 · Zasláno: 25. 7. 2015, 10:01:22 · Upravil/a: Generation
Dobrý den,
chtěl bych se zeptat, jak updatovat 1 sloupec v databázi když mám data uložená v txt. Nejlépe přes phpMyAdmin. V txt je ID sloupec a sloupes klik. Takže update by měl být proveden že pokud se schodují ID v txt a v databázi, přičtě to klik s txt ke kliku v databázi. Lze to udělat přímo v phpMyAdminu? Díky za odpověď. http://www.jpeg.cz/images/2015/07/25/LN0R1.png Zkusil jsem to uložit do csv a oddělit hvězdičkou a pomocí následujícího scriptu updatovat ale všechny kliky se mi vynulovali místo aby se přičetli. <?php
include "settings.php";
$vlozeni=date("Y-m-d-H-i-s");
if(isset($_POST['submit']) && !Empty($_FILES['fupload']['tmp_name']) ) {
if(!copy($_FILES['fupload']['tmp_name'],"csv/".$vlozeni.".csv")){
echo "csv neulozeno<br>";
}
else {
echo "csv ulozeno<br>";
}
$data = File_Get_Contents($_FILES['fupload']['tmp_name']);
$data = explode("\r\n",$data);
$nahrano=0;
foreach($data as $line) {
$nahrano++;
$cells = explode("*",$line);
mysql_query("UPDATE `albums` SET `klik` = `klik`+'".mysql_real_escape_string($cells[1])."' WHERE `id` = '".mysql_real_escape_string($cells[0])."'
") or die('Máš v Query chybu ty pitomče!!<br>'.MySQL_Error());
}
}
?>CSV:
|
||
| Alphard Profil |
#2 · Zasláno: 25. 7. 2015, 10:48:22
I když bych hodně věcí udělal jinak, v principu to vypadá použitelně. Vypište si ten dotaz, zřejmě někde jen blbě převádí nějaké řetězce.
Zjednodušená verze je $data = file($_FILES['fupload']['tmp_name'], FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach($data as $line) {
$cells = explode("*", $line);
mysql_query("UPDATE `albums` SET `klik` = `klik`+ ".intval($cells[1])." WHERE `id` = ".intval($cells[0])); // ošetření chyby vynechávám
} |
||
| Generation Profil * |
#3 · Zasláno: 25. 7. 2015, 10:53:07 · Upravil/a: Generation
Alphard:
Díky za pomoc, ovšem ani Váš script nepřičte kliky. Když si vypíši ten dotaz, tak v klik mám všude nulu a id vyplněné je. Už je to v pořádku |
||
|
Časová prodleva: 11 let
|
|||
0