![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam taki programik ktory zaczytuje z pliku txt gdzie wiersz wyglada: 1234;0 Wrzucam go do talebi w bazie o nazwie temporia. Potem biore kazdy wpisany rekord do tabli temporia i sprawdzam czy istnieje tabela o nazwie zlozonej z numeru pobranego w pliku np: 100 i litery t co ma dać efekt np:: t_100. Jesli tabela istnieje to ma zrobic insert, przekopiowac wiersz dla tego rekordu z temporii do np.: t_100. A jesli nie istnieje to ma zalozyc tabele i wtedy do niej dopiero wrzucic odpowiedni rekord. Nie wyrzuca mi zadnych bledow a tabela nie powstaje. Niestety nie wiem czemu. Siedze juz ktoras z kolei godzine i brakuje mi pomyslow. <? // --------------------Łącze sie z baza------------------------- $connect = mysql_connect('localhost', 'root', 'root' ) or die( mysql_error() ); $select = mysql_select_db( 'czujnik' ) or die( mysql_error() ); // --------------------Definiuje plik do importu------------------------- $filename = "import.txt"; if (!file_exists("import.txt")) die ('zla nazwa pliku'); if (!is_writeable("import.txt")) die ('brak praw zapisu'); $fd = @fopen($filename,"r") or die("error"); // --------------------Sprawdzam czy plik do importu istnieje---------------------- if($fd == null) { echo("Blad serwera: nie mozna otworzyc pliku : $filename"); return; } // ----------Czytam 9 pierwszych znakow aby wiedziec czy byl juz zaczytywany------- $str = ""; $str = fread($fd, 9); fclose($fd); // ----Jezeli nie byl to czyszcze tablice tymczasowa, ładuje plik, ustawiam date na teraz--- if($str <> "Zaczytany") { mysql_query ("Delete From Czujnk.temporia"); $wynik = mysql_query( "LOAD DATA INFILE '\\\import.txt' INTO TABLE temporia FIELDS Terminated BY ';' "); mysql_query( "UPDATE czujnik.temporia SET data_modyfikacji=NOW()"); // --------------------Sprawdzam czy tabela dla danego obiektu istnieje ------------------ $wynik2=mysql_list_tables('czujnik'); for ($i = 0; $i < mysql_num_rows($wynik2); $i++) { $czy_istnieje=mysql_tablename($wynik2, $i); if ($czy_istnieje == 't_".$numer."') { $wynik1 = mysql_query("SELECT Numer,Akcja_akt,Data_modyfikacji FROM temporia where numer='".$numer."'"); while ($row = mysql_fetch_array($wynik1)) { $numer = $row['numer']; $akcja_akt = $row['Akcja_akt']; $data = $row['Data_modyfikacji']; $wynik=mysql_query("INSERT INTO 't_".$numer."' (`id_m`,`Numer`,`Akcja`,`Data_zmiany`) VALUES ('','".$numer."','".$akcja_akt."','".$data."')"); } } else { $wynik1 = mysql_query("SELECT Numer,Akcja_akt,Data_modyfikacji FROM temporia"); while ($row = mysql_fetch_array($wynik1)) { $numer = $row['numer']; $akcja_akt = $row['Akcja_akt']; $data = $row['Data_modyfikacji']; $wynik=mysql_query("CREATE TABLE 't_".$numer."'(id_m int(10) not null auto_increment,Numer int(4) not null, Akcja int(1) not null,Data_zmiany datetime,Primary key(id_m)"); $wynik=mysql_query("INSERT INTO 't_".$numer."' (`id_m`,`Numer`,`Akcja`,`Data_zmiany`) VALUES ('','".$numer."','".$akcja_akt."','".$data."')"); $szukanie_tab= "NIE_MA_TABLICY"; print ("$szukanie_tab"); } } } mysql_free_result($wynik2); mysql_free_result($wynik1); mysql_free_result($wynik); $fd = @fopen($filename,"w"); $new_data = "Zaczytany.\r\n"; fwrite($fd,$new_data); fclose($fd); } ?> |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
W takich przypadkach pomocna jest własna funkcja/klasa zastępująca mysql_query, w której można włączyć odpluskwianie zapytań SQL.
Innymi słowy wyświetl sobie poszczególne zapytania, które wysyłasz do bazy i wyświetl mysql_error() w razie niepowodzenia. -------------------- The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1 MySQL Client API version : 5.0.27 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 195 Pomógł: 0 Dołączył: 13.04.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
I warto stosować tag [ php ] do umieszczania kodu
![]() To co pisano powyżej: dodaj mysql_error() po każdym wywołaniu funkcji mysql_query - zobaczysz, co ci mysql wypluje ![]() Ten post edytował L_Devil 1.06.2007, 12:55:05 -------------------- Językiem którym najlepiej operują wszyscy programiści są przekleństwa.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 11:13 |