v2.5.2
Giriş yap

formdan array olarak gelen verileri veritabanına nasıl kaydedebilirim?

emretarhan
275 defa görüntülendi

Merhaba,
Bir adet formum var ve bu formun bir bölümünde şu şekilde bir sistem var:

Gördüğünüz gibi yeni ekle dediğimiz zaman forma yeni select ve input öğesi ekleniyor. Buraya 3 adet veri eklemek isteyeceğimiz zaman da kodun html karşılığı aşağıdaki gibi oluyor.

<!-- İlk Satır -->
<select class="form-control mt-3" name="ara_durak[]">
    <option value="12">Ankara</option>
    <option value="14">Balıkesir</option>
    <option value="13">İzmir</option>
</select>

<input type="time" class="form-control mt-3" name="ara_durak_saat[]">

<!-- İkinci Satır -->
<select class="form-control mt-3" name="ara_durak[]">
    <option value="12">Ankara</option>
    <option value="14">Balıkesir</option>
    <option value="13">İzmir</option>
</select>

<input type="time" class="form-control mt-3" name="ara_durak_saat[]">

<!-- Üçüncü Satır -->
<select class="form-control mt-3" name="ara_durak[]">
    <option value="12">Ankara</option>
    <option value="14">Balıkesir</option>
    <option value="13">İzmir</option>
</select>

<input type="time" class="form-control mt-3" name="ara_durak_saat[]">

Ben bu verileri veritabanına kayıt etmek ve kullanıcıya görüntülemek istiyorum. İşin mantığı; bir otobüs seferi oluşturuyorsunuz, başlangıç ve iniş durağı var. Bunun haricinde de ara duraklar var. Buradaki mantık o ara durakları ve o durağa hangi saatte varılacağını eklemek. Ben günün sonunda kullanıcıya şunu göstermek istiyorum:

İki gündür ciddi araştırdım ama kesin bir sonuca ulaşamadım. Ümidimi yitirmek üzereyim yardımlarınızı bekliyorum efendim 😁

Cevap yaz
Cevaplar (3)
bilinmez1i
509 gün önce

Merhaba @emretarhan

Öncelikle iyi günler iyi çalışmalar.

verileri json_encode fonksiyonundan geçirip base64_encode fonksiyonundan geçirebilirsin. Bu şekilde basitçe şifrelenmiş json verin olacaktır. Örenğin;

<?php

$data = $_POST['ara_durak'];

$json_type = json_encode($data); // Çıktı: ["1","2","3"]

$base64_type = base64_encode($json_type); // WyIxIiwiMiIsIjMiXQ==

örnekteki gibi kullanabilirsin. fakat veritabanından veri eçekerden bunları tekrar json_decode ve base64_decode fonksiyonlarından geçirmen gerekir. tavsiyem sadece json_encode ve json_decode kullanman

Umarım yardımcı olabilmişimdir. İyi günler iyi çalışmalar...

emretarhan
509 gün önce

Sorunu kısa sürede str_replace() ile kökten çözdüm 😅

function transliterateTurkishChars($inputText) {
    $search  = array('\u00e7', '\u00c7', '\u011f', '\u011e', '\u0131', '\u0130', '\u00f6', '\u00d6', '\u015f', '\u015e', '\u00fc', '\u00dc');
    $replace = array('ç', 'Ç', 'ğ', 'Ğ', 'ı', 'İ', 'ö', 'Ö', 'ş', 'Ş', 'ü', 'Ü');
    $outputText=str_replace($search, $replace, $inputText);
    return $outputText;
}

# Örnek kullanımı
$text = base64_decode('bWVyaGFiYSBkw7xueWEh'); # Merhaba dünya!
echo transliterateTurkishChars($text);

Umarım başkalarının da işine yarar. İyi forumlar

emretarhan
509 gün önce

Hocam merhaba geç dönüş için kusura bakmayın @bilinmez1i

Öncelikle çok teşekkür ederim bu method aklıma gelmemişti ve gerçekten işe yarayacağına eminim.
Birkaç problem var umarım istişare edip çözümleyebiliriz.

Dediğiniz yöntemi uyguladığım zaman base64_decode ile çıktı bu şekilde oluyor:


Gördüğünüz üzere Türkçe karakter sorunum var 😕 
Ben araştırmaya ve denemeye devam edeceğim. Aklınıza bir çözüm gelirse dinlemekten mutluluk duyarım. İyi akşamlar