lostyazilim
tr.link

Txt Dosyasına Yazılan Verileri Kullanıcıya Göre Nasıl Ayırabilirim

7 Mesajlar 1.212 Okunma
acebozum
tr.link

yazilimyolcusu yazilimyolcusu WM Aracı Kullanıcı
  • Üyelik 01.11.2021
  • Yaş/Cinsiyet 40 / E
  • Meslek Çalışmıyorum
  • Konum Konya
  • Ad Soyad M** Y**
  • Mesajlar 85
  • Beğeniler 0 / 1
  • Ticaret 0, (%0)
Arkadaşlar Benim aklıma bir şey geliyor ama nasıl yaparım bilemiyorum. Mesela oturumu açan kişi "ali" kullanıcı adıyla giriş yapsın. Sepete ürünlerini eklesin. Sepetten de txt dosyasına yazdırsın ama text dosyasına verdiğimiz isim her seferinde değişsin. Mesela bu kullanıcı siparişi verdiğinde text dosyası otomatikman şöyle oluşabilir. "ali_siparis1". Başka bir sefer başka bir sipariş verdiğinde "ali_siparis2" gibi. Ben bu işin nasıl olduğunu bilmediğimden aklıma böyle bir şey geldi. Ne yapılmalı sizce.
 

 

wmaraci
reklam

emreyvz emreyvz .NET Core & Angular & PHP Kullanıcı
  • Üyelik 19.04.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Anadolu
  • Ad Soyad E** Y**
  • Mesajlar 691
  • Beğeniler 110 / 250
  • Ticaret 24, (%100)
İlerde çok sıkıntı çıkarabilecek bir yaklaşım. Bu tarz işlemler için veritabanı kullanmalısınız. Sepet bilgisini PHP SESSION veya Javascript Cookie içerisinde, sipariş bilgilerini de veritabanında saklamalısınız.
BEYAZMASTER

kişi bu mesajı beğendi.

yazilimyolcusu yazilimyolcusu WM Aracı Kullanıcı
  • Üyelik 01.11.2021
  • Yaş/Cinsiyet 40 / E
  • Meslek Çalışmıyorum
  • Konum Konya
  • Ad Soyad M** Y**
  • Mesajlar 85
  • Beğeniler 0 / 1
  • Ticaret 0, (%0)
Belki 2 aydır, veritabanına siparişleri kaydetmeyle ilgili uğraşıyorum. Bir kaç siteye yazdım. Yardımcı oluyorlar ama ben öğrenecek mişim diye nasıl olacağını söylemiyorlar. Tamm 2 ay. 2 aydır belki biraz daha fazla olabilir veritabanına, sepetteki 3 ürünü tek "post" ile yazdırmaya çalışıyorum. En sonunda txt dosyasına yazdırılabileceğini söylediler. İşte malûmunuz 10 gündür de bu sitede sorunu çözmeye çalıştım. Mümkünse tekrar dönmek istemiyorum, o işe. Ama kolay bir yöntem biliyorsanız veya kodlar şu şekilde diye kodları koyacaksanız, tabiki daha iyi olur sizin dediğiniz. Haricinde txt dosyası üzerinden gitmeyi tercih ederim.
 

 

130793 130793 WM Aracı Anonim Üyelik
  • Üyelik 19.07.2021
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 238
  • Beğeniler 8 / 34
  • Ticaret 0, (%0)
hangi dilde kolay bir yontem istiorsun :D
 

 

wmaraci
wmaraci

yazilimyolcusu yazilimyolcusu WM Aracı Kullanıcı
  • Üyelik 01.11.2021
  • Yaş/Cinsiyet 40 / E
  • Meslek Çalışmıyorum
  • Konum Konya
  • Ad Soyad M** Y**
  • Mesajlar 85
  • Beğeniler 0 / 1
  • Ticaret 0, (%0)
Php. Aslında internette şöyle bir şey var. Text dosyasından veritabanına aktarma işlemini yapıyor.

Text dosyamın içeriği
{
"Alıcının Adı": [
"ad"
],
"Alıcının Firma Adı": [
"firma"
],
"Alıcının Şehri": [
"18"
],
"Alıcının İlçesi": [
"ilçe"
],
"Alıcının Telefon Numarası": [
"999999999"
],
"Alıcının E-Posta Adresi": [
"eposta@eposta.com"
],
"Alıcının Sipariş Notları": [
"siparişler"
],
"Ürünün Stok Kodu": [
"8"
],
"Ürünün Stok Sayısı": [
"8"
],
"Ürünün Adı": [
"Ürün 2"
]
}


Text dosyasını veritabanına aktarmama yarayan sayfa içeriği
include("baglanti.php");

$dosya=new SplFileObject('ornektext.txt');
while(!$dosya->eof()) {
$satir=$dosya->fgets();
list($isim, $firmaadi, $sehir, $ilce, $telefon, $eposta, $siparis, $stokkodu, $stoksayisi, $urunadi)=explode(',',$satir);
$sorgu = $db->prepare('INSERT INTO sepetonaylanan VALUES (NULL,?,?,?,?,?,?,?,?,?,?)');
$sorgu->bindValue(1,$isim,PDO::PARAM_STR);
$sorgu->bindValue(2,$firmaadi,PDO::PARAM_STR);
$sorgu->bindValue(3,$sehir,PDO::PARAM_STR);
$sorgu->bindValue(4,$ilce,PDO::PARAM_STR);
$sorgu->bindValue(5,$telefon,PDO::PARAM_STR);
$sorgu->bindValue(6,$eposta,PDO::PARAM_STR);
$sorgu->bindValue(7,$siparis,PDO::PARAM_STR);
$sorgu->bindValue(8,$stokkodu,PDO::PARAM_INT);
$sorgu->bindValue(9,$stoksayisi,PDO::PARAM_INT);
$sorgu->bindValue(10,$urunadi,PDO::PARAM_STR);
$sorgu->execute();
}
?>


Veritabanına kayıt etmiyor ve verdiği hata
Undefined offset: 9 in C:\\AppServ\\www\\ornek\\kaydett.php on line 7

Yani hatayı şurada buluyor.
ist($isim, $firmaadi, $sehir, $ilce, $telefon, $eposta, $siparis, $stokkodu, $stoksayisi, $urunadi)=explode(',',$satir);
 

 

AzveNet AzveNet WM Aracı Kullanıcı
  • Üyelik 13.06.2019
  • Yaş/Cinsiyet 43 / E
  • Meslek Serbest
  • Konum İstanbul Anadolu
  • Ad Soyad C** E**
  • Mesajlar 367
  • Beğeniler 69 / 147
  • Ticaret 0, (%0)
Explode da tam olarak ne yapmak istiyorsunuz? , den parçalamak mı? Birde " ile deneyin.
 

 

İmkansız olduğunu düşünürsen hiç birşey başaramazsın.

0ktay 0ktay strdex Kullanıcı
  • Üyelik 01.02.2018
  • Yaş/Cinsiyet 26 / E
  • Meslek Yazılım öğrencisi
  • Konum Antalya
  • Ad Soyad O** Ş**
  • Mesajlar 603
  • Beğeniler 25 / 155
  • Ticaret 2, (%100)

yazilimyolcusu adlı üyeden alıntı

Php. Aslında internette şöyle bir şey var. Text dosyasından veritabanına aktarma işlemini yapıyor.

Text dosyamın içeriği
[HTML]{
"Alıcının Adı": [
"ad"
],
"Alıcının Firma Adı": [
"firma"
],
"Alıcının Şehri": [
"18"
],
"Alıcının İlçesi": [


İlk olarak bu tarz verileri .txt ile saklamak aşırı gereksiz sunucu yükü, yavaşlık ve beraberinde hatalara yol açacaktır.
Veritabanı kullanmanız çok daha sağlıklı olacaktır.

Hataya gelirsek;
Verdiği hata gelen değerin boş olduğunu belirtiyor.
Siz boş bir veriyi parçalamaya çalışıyorsunuz.
Explode bunlar için mantıklı bir yöntem değil.

Eğer .txt ile ilerlemeye niyetliyseniz, Regex kullanmanızı tavsiye ederim.
"@\"(.?*)\"@si"
Şeklinde basit bir regex ile tırnak içerisinde ki verileri alabilirsiniz.
Verileri eklemeden öncede addslashes eklemeyi unutmayın, veri yapısının içine tırnak girerse, tüm yapıyı bozacaktır.

İyi çalışmalar dilerim.
 

 

Eğitimin pahalı olduğunu düşünüyorsanız, cehaletin bedelini hesaplayın.
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al