Osiągnąłem już to co chciałem, prawie. :D
<?php
$connection = @mysql_connect('localhost', 'xxx', 'xxx')
or die('Brak połączenia z serwerem MySQL');
$db = @mysql_select_db('xxx', $connection)
or die('Nie mogę połączyć się z bazą danych');
$tresc = file_get_contents('plik.txt');
preg_match_all("/IDO\#.*\?IDO\?/i", $tresc, $znalezione);
preg_match_all("/SNZ\#.*\?SNZ\?/i", $tresc, $znalezione2);
preg_match_all("/SRD\#.*\?SRD\?/i", $tresc, $znalezione3);
preg_match_all("/PIN\#.*\?PIN\?/i", $tresc, $znalezione4);
preg_match_all("/NZW\#.*\?NZW\?/i", $tresc, $znalezione5);
foreach ($znalezione as $ciag) { //id
foreach ($znalezione2 as $ciag2) { //nazwa
foreach ($znalezione3 as $ciag3) { //kategoria
foreach ($znalezione4 as $ciag4) { //zdjecie
foreach ($znalezione5 as $ciag5) { //opis
for ($i=0; $i<681; $i++) {
$ciag[$i] = substr($ciag[$i], 4, -5);
$ciag2[$i] = substr($ciag2[$i], 4, -5);
$ciag3[$i] = substr($ciag3[$i], 4, -5);
$ciag4[$i] = substr($ciag4[$i], 4, -5);
$ciag5[$i] = substr($ciag5[$i], 4, -5);
if ($ciag3[$i]=='#SRD#dokument?SRD?') {$id=1;}
else $id=2;
$ins = @mysql_query("INSERT INTO przedmioty SET param='par_Numer katalogowy@@:@@$ciag[$i]', name='$ciag2[$i]', category_id='$id', image_url='$ciag4[$i]', description='$ciag5[$i]'");
if($ins) echo "Rekord został dodany poprawnie";
else echo "Błąd nie udało się dodać nowego rekordu";
}
}}}}}
mysql_close($connection);
?>
Może nie jest za piękne ale działa, mam tylko jeden problem.
Jeśli przy przedmiocie nie ma zdjęcia to w pliku tekstowym wpis #PIN#images/zdjecie.jpg?PIN? nie istnieje. Dodałem więc w pliku w edytorze tekstowym automatycznie pusty
wpis
#PIN#?PIN? tam gdzie go nie ma. To już jest ok.
Problem pojawia się gdy do jednego rekordu mamy kilka zdjęć, czyli kilka razy w pliku do jednego przedmiotu
#PIN#images/zdjecie.jpg?PIN?
#PIN#images/zdjecie2.jpg?PIN? itd.
W takim wypadku jak idzie pętla to zdjęcie w pewnym momencie będzie miało inny numer $ciag4[$i] niż nazwa przedmoiotu $ciag2[$i] , opis przedmiotu $ciag5[$i] itd.
Jeśli w bazie danych do danego przedmiotu zostanie przydzielonych kilka sciezek do zdjeć oddzielonych średnikiem to tak moze myć. Ale opcja z tylko jednym zdjęciem będzie zadowalająca.