Php Sıramatik Numarası Verme
-
Php ile tarih bazlı numara verip bunu pdf olarak kaydetmek istiyorum. Nasıl yapabilirim?
Örnek :
24/10/2021 tarihinde butona basınca 1 rakamını pdf dosyasına yazacak ve 24102021-1.pdf adında kaydetcek tekrar bastıgımda 2 numarasını kaydetcek.?
-
Sayıyı db, session yada redis gibi bir yerde tutman gerekiyor. (session kısa vadelidir). Başka türlü zor.
-
FrodoTheYuzuksuz bunu yazdı
Sayıyı db, session yada redis gibi bir yerde tutman gerekiyor. (session kısa vadelidir). Başka türlü zor.
<?php session_start(); if(isset($_SESSION['sayac'])) $_SESSION['sayac'] = $_SESSION['sayac']+ 1; else $_SESSION['sayac'] = 1; echo $_SESSION['sayac']; ?>
bu sekilde sessionla yapıyorum ama tarih bazlı lazım bana yani bugun 1den baslıcak gidecek yarın tekrar 1 den baslıcak :(
-
Session ile olmaz hocam, veritabanına sıra diye bir tablo aç sabit id,sira koy.
Öntarafta sıra al butonuna basınca dbden son sırayı alır ve 1 arttırır pdf kütüphanesiyle pdf olarak dışarı çıktı alırsın.
-
eğer tek bir ekrandan erişilecekse bu sıramatiğe (atıyorum sadece bi numaratör makinası koycan başka bi yerde olmayacak) en son numarayı bi ini dosyasında tutup parse_ini_file ile okuyabilirsin.
pdf oluşturdukça iniye son yazdırdığın sayıyı yazarsın.
php stateless olduğu için her requestten sonra öncekini unutacak. sessionda uçabilir riskli biraz. dosya bence en güzeli. kafana göre not defteriyle açıp değiştirirsin de yerine göre
-
<?php
session_start();
if
(isset(
$_SESSION
[
'sayac' + GETDATE()
]))
$_SESSION
[
'sayac-' + GETDATE()
] =
$_SESSION
[
'sayac-' + GETDATE()
]+ 1;
else
$_SESSION
[
'sayac-' + GETDATE()
] = 1;
echo
$_SESSION
[
'sayac-' + GETDATE()
];
?>
oradaki GETDATE değerini phpye göre sen ayarla. Session değeri her defasında Session['sayac-2021-10-25'] şeklinde tarihi de içermiş şekilde olacak. Sunucuda tarih ilerleyince o sil baştan.
-
ontedi bunu yazdı
oradaki GETDATE değerini phpye göre sen ayarla. Session değeri her defasında Session['sayac-2021-10-25'] şeklinde tarihi de içermiş şekilde olacak. Sunucuda tarih ilerleyince o sil baştan.
olmadı bu hata veriyor
-
Hocam session ile beraber tutmanı şahsen önermem, çok üzün süreli çalışmıyor, php konusunda uzman değilim ama birkaç web projesi yapıp vermişliğim var. Session 15-30dk arasında destroy oluyor.
Bence en temizi bir db kullanman ve ID ile beraber tabloya kayıt ettirmen ve bu tablo datalarını pdf'e aktarman olacaktır, yani ben olsam öyle yapardım
Sistemi yapıyor olsaydım :
1- Database içerisinde numberID tablosu oluştururdum ve otomatik artan yapardım, bu şekilde her data girişinde ( buton basıldığında ) 1'er 1'er artardı.
ID Date Number ( AI ) 1 24.10.2021 1 2 24.10.2021 2 3 24.10.2021 3 4 24.10.2021 4 5 25.10.2021 5 6 25.10.2021 6 7 25.10.2021 7 8 26.10.2021 8 9 26.10.2021 9 10 27.10.2021 10 Diyelim ki button ile beraber yapıyoruz click tarafına
$tarih -> echo date('d/m/Y');
$sql = "INSERT INTO numberID (Date) VALUES ('$tarih')";
Bu şekilde Auto Increment yapı ile beraber gerisi zaten pdf'e aktarma ya da kaydetme kısmı.
-
cybermole bunu yazdıontedi bunu yazdı
oradaki GETDATE değerini phpye göre sen ayarla. Session değeri her defasında Session['sayac-2021-10-25'] şeklinde tarihi de içermiş şekilde olacak. Sunucuda tarih ilerleyince o sil baştan.
olmadı bu hata veriyor
Hocam oradaki getdate değerini salladım. Php'de o var mı bilmiyorum. Php tarafında o günün tarihini veren fonksiyon, metod vs.. var ise oraya yapıştır anlamında söyledim.
-
Session süresini uzatabilirsiniz ama yine de, kullanılan session idsi kaybolabilir, başına bir şey gelebilir, bir nedenden ötürü client o sessionu kullanamayabilir.
Bu durumda numaratör sıfırlanmış olacaktır, ki bu istemediğimiz bir şey.
Veritabanı işine bulaşmak istemiyorsan static bir dosyada tutabilirsin hocam.
İni olur, txt olur, csv olur, json olur, xml olur.
Tercih sana kalmış.
Hatta veritabanı olsun ama bir serverla uğraşmayayım diyorsan sqlite da kullanabilirsin.
Arkadaşın da dediği gibi, php özünde python, perl gibi bir yorumlayıdır. Her web isteği geldiğinde yorumlayıcı bir tur çalışır ve output döndürür. Yani aklında tutma gibi bir durumu yoktur variable'ları.
Default php interpreter ayarlarıyla oynayarak session'u ölümsüz yapabilirsin.
Ama client session id olmadan istek gönderdiğinde, php yeni bir session kimliği oluşturur ve numaratörün sıfırdan başlar.
Bu da kafa karışıklığına ve sistemin istemediğin bir şekilde çalışmasına sebep olabilir.
-
sadece 1 client olacaksa
gette parametre olarak gitsen olmazmı hemde gün içerisinde saçma sapan hatalar alırsan felan kaldığı yerden devam manuel olarak devam edersin
bişeyler.com?sira_no=18&date=2021-10-22
$siraNo=$_GET['sira_no'] +1;
date = bugün değilse
$siraNo =1
echo " a href='bişeyler.com?sira_no=$siraNo&date=$bugün' > Sonraki Kişi</a ";