Mam pobrane z bazy [mysql] stringa mającego postać
nazwisko imie adres pesel: numer_pesel
W zależności od liczby zaznaczonych na podstronie checkboxów string może mieć nawet 20 takich ciągów.
Plik ma za zadanie wygenerowanie na podstawie biblioteki fpdf wizytówek zaznaczonych osób (chodzi o naklejki).
Wygląda to następująco
//połączenie z bazą include('fpdf.php'); $pdf=new FPDF(); $pdf->Open(); $pdf->AddPage(); $pdf->AddFont('arialpl','','arialpl.php'); $pdf->SetTextColor(21,0,0); $pdf->SetFont('arialpl','',8.5);
I dotąd jest wszytko jasne - łącze się z baza otwieram plik pdf.
Następnie pobieram dane z bazy:
for($i=0; $i<100; $i++) { foreach($a as $b => $value){ $sql='insert into wizytowki_kopia (id_usr,id_pac) values ('.$_SESSION['id'].', '.$value.')'; //echo $sql."<br/>";
I tutaj też jest na razie OK. Następnie pobieram dane osób którym chce zrobić taką wizytówkę:
$sql2='select concat(nazwisko,\' \',imie) as osoba, concat(miasto,\', \',adres) as adres, pesel from osoby where id_pac=' .$value.''; while($rekord=mysqli_fetch_array($rez, MYSQLI_ASSOC)){ $osoba1=$rekord['osoba']; $adres1=$rekord['adres']; $pesel=$rekord['pesel']; } //następuje kilka linijek dotyczących łamania tekstu i finalnie otrzymuje następującą opcję $dane_os_con="$osoba1\n$adres1\nPESEL: $pesel"; $dane_os=iconv("utf-8", "iso-8859-2", $dane_os_con); } } }
Na jedną stronę przewidziałem wizytówki dwóch osób. Mam ustawione wszystko w następującej formie - każda linijka składająca się z 5 naklejek:
globalne ustawienia na każdą stronę $x=38; //ustawia wysokosc naklejki $nak_y=21.2; //ustawia górny margines w mm $mar=11.5; //ustawienia poszczegónych linijek - dostosowane do wielkości posiadanego druku. //1ST ROW $y=$mar;$pdf->SetXY(11,$y); $pdf->multicell(52,4,$dane_os,0, 'L',0); $pdf->SetXY($x+11,$y); $pdf->multicell(52,4,$dane_os,0, 'L',0); $pdf->SetXY(($x*2)+11,$y); $pdf->multicell(52,4,$dane_os,0, 'L',0); $pdf->SetXY(($x*3)+11,$y); $pdf->multicell(52,4,$dane_os,0, 'L',0); $pdf->SetXY(($x*4)+11,$y); $pdf->multicell(52,4,$dane_os,0, 'L',0);
Moje problemy rozbijają się o to:
Jak rozbić string aby był podział na poszczególne dane osobowe, jak później ten "rozbity" string przekazać do zmiennych i wreszcie jak zrobić żeby pdf nie kończył się na jednej stronie.
Na koniec plik wygląda w następujący sposób:
$pdf->SetCompression(true); $pdf->SetDisplayMode(100); $pdf->SetMargins(0,0,0); $pdf->Output();