Jak zapisać z Mysqla?

0

Jak zapisać automatycznie do pliku CSV wszystkie rekordy z Mysql w kolumnach i kodowane w UTF-8(jakbym chciał puścić to z crontaba, żeby zapisywał mi się codziennie na dysku)?
np :
Książki Tytuł Wydawca
1a 1 b 1c
2a 2b 2c
3a 3b 3c

0

Ok. Ale jakby chciał stworzyć funkcje do pobierania, już nie sugerując się crontabem. Żeby automatycznie po odpaleniu skryptu zapisała mi się wyżej wypisane dane w formacie CSV w lokalizacji jaką podam np. na dysku D: ?

0

No przecież pod tym linkiem wszystko pisze, temat raczej też odkrywczy nie jest, więc może google?

0

To jeśli mam taki skrypt jak moge zapisac z niego albo wyswietlić zawartość w kolumnach? W tej chwili mam do pliku .txt

<?php
$sql_host = 'localhost:3306';
$sql_user = 'root';
$sql_baza = 'testowa';
if (mysql_connect($sql_host, $sql_user) and mysql_select_db($sql_baza)) {
    echo 'polaczenie ok  ';
    $zapytanie = mysql_query("SELECT * FROM ksiazki");
    if ($zapytanie) {
        echo 'zapytanie ok  ';
  /*       while ($wynik = mysql_fetch_row($zapytanie)) {
            echo $wynik["Wydawca"];
           echo "\n";
        } */
        
        while($row = mysql_fetch_row($zapytanie)) {
        	$comma = false;
        	foreach ($row as $item) {
        		
        		if ($comma) {
        			echo ',';
        		
        		} else {
        			$comma = true;
        		}
        		
        		$quoted = str_replace("\"", "\"\"", $item);
        
        		
        		echo "\"$qcuoted\"";
        	}
        	echo "\n";
        	
        	
        	$plik="pliczek.txt";
        	
        	$fp = fopen($plik, "a");
        	
        	flock($fp, 2);
        	
        
        	fwrite($fp, $quoted);
            
        	flock($fp, 3);
        	
        	fclose($fp);
        		
        }       
        
    }
     
    else {
        die('blad zapytania   ');
    }
    mysql_close();
}
else {
    die('blad polaczenia   ');
}


?>

Ja tam znalazłem opcje zapisu bezpośrednio z MySQL a chce pobrać dane a następnie opcja fwrite(albo podobna) zapisać do CSV z kodowaniem UTF-8

0

I co Ci nie pasuje (oprócz literówki) w tym kodzie? Masz rozdzielane przecinkami, zapisane do pliku?

0

Chciałbym to zapisać w kolumnach i ten kod nie zapisuje mi wszystkiego tylko ilość:
Książki Tytuł Wydawca Ilosc
1a 1 b 1c 4
2a 2b 2c 5
3a 3b 3c 34

0

Weź podaj zrzut bazy, będzie prościej

0

Daje taki przykład moja baza wygląda podobnie 4 kolumny i dodane 3 rekordy. Ten skrypt powoduje mi zapisanie jedynie "ilość" z każdego rekordu i to w jednej komórce a nie w osobnych wierszach. Na przeglądarce wyświetla mi się wszytko w jednej lini

ID Nazwa Wydawca Ilosc
1 Programista IT 5
2 Think in Java Java 2
3 PHP i MySQL Helion 18

0
dzek69 napisał(a):

Weź podaj zrzut bazy, będzie prościej

0

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Baza danych: `testowa`
--

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `ksiazki`
--

CREATE TABLE IF NOT EXISTS `ksiazki` (
  `ID` int(11) NOT NULL,
  `Tytuł` text COLLATE utf8_polish_ci NOT NULL,
  `Wydawca` text COLLATE utf8_polish_ci NOT NULL,
  `Ilosc` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

--
-- Zrzut danych tabeli `ksiazki`
--

INSERT INTO `ksiazki` (`ID`, `Tytuł`, `Wydawca`, `Ilosc`) VALUES
(1, 'Programista', 'IT', 5),
(2, 'Think in Java', 'Java', 2),
(3, 'PHP i MySQL', 'Helion', 18);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
1

Ten Twój kod to jest jakaś radosna abstrakcja o.O
Posłużę Ci radą - odpuść sobie MySQL, jeżeli nie jesteś w stanie ogarnąć pętli czy dwóch, bo w ten sposób ani tego, ani tego się nie nauczysz.

PS. Nawet nie poprawiłeś literówki o której wspomniałem!

<?php
$sql_host = 'localhost:3306';
$sql_user = 'root';
$sql_baza = 'testowa';
if (mysql_connect($sql_host, $sql_user, 'root') and mysql_select_db($sql_baza)) {
    echo 'polaczenie ok  ';
    $zapytanie = mysql_query("SELECT * FROM ksiazki");
    if ($zapytanie) {
        echo 'zapytanie ok  ';
        while($row = mysql_fetch_row($zapytanie)) {
            $comma = false;
            foreach ($row as $item) {
                if ($comma) {
                    $quoted .= ',';
                } else {
                    $comma = true;
                }
                $quoted .= str_replace("\"", "\"\"", $item);
                //echo "\"$quoted\"";
            }
            $quoted .= PHP_EOL;
            $plik="pliczek.txt";
            $fp = fopen($plik, "w");
            flock($fp, 2);
            fwrite($fp, $quoted);
            flock($fp, 3);
            fclose($fp);
        }
    }
    else {
        die('blad zapytania   ');
    }
    mysql_close();
}
else {
    die('blad polaczenia   ');
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1