Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> błąd w kodzie, Gdzieś mam błąd ale nie wiem gdzie
mika1
post
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);
}
?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Darti
post
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
Go to the top of the page
+Quote Post
L_Devil
post
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 winksmiley.jpg

To co pisano powyżej:
dodaj mysql_error() po każdym wywołaniu funkcji mysql_query - zobaczysz, co ci mysql wypluje winksmiley.jpg

Ten post edytował L_Devil 1.06.2007, 12:55:05


--------------------
Językiem którym najlepiej operują wszyscy programiści są przekleństwa.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 11:13