Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
2
Cevap
218
Tıklama
0
Öne Çıkarma
Form içinde DB den veri çekmek
M
3 yıl
Onbaşı
Konu Sahibi

Merhaba,

Youtube da eğitim videoları izleyerek php öğrenmeye çalışıyorum. Ama tasarladığım bir projenin bir yerinde tıkandım ve çözüm olarak yazılan çoğu şeyi yaptım.

Asıl amacım Form içinde Select ->Option ile DB içindeki farklı bir tablodan veri getirmek ve bu veri içeriğini formu gönder tuşuna bastığımda farklı bir tabloya yazmak göndermek.

<?php
class AdminClass {
protected $pdo = null;
protected $host = 'localhost';
protected $dbname = 'egitim';
protected $username = 'root';
protected $password = '';
protected $charset = 'utf8';

public function __construct() {
try {
$this->pdo = new PDO("mysql:host=$this->host;dbname=$this->dbname;charset=$this->charset", $this->username, $this->password );
} catch (\Exception $error) {
die($error->getMessage());
}
if (!isset($_SESSION['mail']) && !isset($_SESSION['login'])) {
header('Location: ./login.php');
}
}

// Sorgu Kodu
public function pdoQuery($sql)
{
$query = $this->pdo->query($sql, PDO::FETCH_ASSOC)->fetchAll();
if ($query) {
return $query;
} else { return false; }

}

public function getSecurity($data) {
if (is_array($data)) {
$variable = array_map('htmlspecialchars', $data);
$response = array_map('stripslashes',$variable);
return $response;
// code...
} else {
$variable = htmlspecialchars($data);
$response = stripslashes($variable);
return $response;
}
}

}
?>





Bu üstteki class.php


alttakide index .php


<?php
Veri Ekleme Kodu ;
if (isset($_POST['save'])){
if ($_POST['save'] == 1001) {
$degisken_fiili_sirket = $_POST['formdangelen_fiilisirket'];
$sql = "INSERT INTO db_personel_kisiselbilgiler (fiili_sirket_adi) VALUES (?)";
$args = [$degisken_fiili_sirket];
$result = $adminclass->getSecurity($args);
print $adminclass->pdoInsert($sql,$result);
}
}
?>

<form class="form-horizontal card" method="POST" >
<div class="card-body">


<!-- Fiili Çalıştığı Şirket -->
<div class="row mb-4">
<label class="col-md-3 form-label">Fiili Çalıştığı Şirket</label>
<select name="formdangelen_fiilisirket" class="form-control select2 form-select col-md-9" data-placeholder="Fiili Şirket Seçiniz.">
<option label="Seçiniz">
</option>
<?php
$sql = "SELECT * FROM fiilisirketadi ORDER BY fiilisirketadi ASC";
$variable = $adminclass->pdoQuery($sql);
if ($variable != false) { foreach ($variable as $value) {
$db_f_sirket_adi = $value['fiilisirketadi'];
?>

<option value="<?php echo $db_f_sirket_adi; ?>">
<?php print $db_f_sirket_adi; ?>
</option>
<?php } } ?>
</select>
</div>

<!-- Gönder butonu-->
<div align="right">
<input type="submit" class="btn btn-success btn-pill">
<input type="hidden" name="save" value="1001"></input>
</div>

</div>
</form>





D
3 yıl
Yarbay

Spagetti kod yazıyorsun, yazma. Önce veritabanından çektiğin verileri işle sonra html çıktısı oluştur.

<?php

$res = $pdo->query("SELECT id, sirket_adi FROM sirketler");
$options = [];
while ($row = $res->fetch()) {
$options[] = '<option value="<?=$row['id'];?>"><?=$row['sirket_adi'];?></option>
}

?>

<select name="formdangelen_fiilisirket" class="form-control select2 form-select col-md-9" data-placeholder="Fiili Şirket Seçiniz.">
<option label="Seçiniz"></option>
<?=implode("\n",$options);?>
</select>


Veri tabanı tabloları excel tablosu değildir. tablolar arası ilişki kurulur. herşey kendi tablosundadır, şirket, kişi, arac, stok vb, biri diğeri ile ilişkili ise sadece id si diğerinin satırına veya bağ tablosuna kaydedilir. ki ismi cismi değiştiğinde bütün tablolarda tek tek değişim olmasın.

sirketler
sirket_id, şirket_adi, sirket_hedesi

kişiler

kisi_id, sirket_id, kisi_adı, tc

gibi

eğer bir kişi birden fazla şirkette çalışacaksa

başka tablo yaparsın.

sirket_bag

bag_id,kisi_id,sirket_id,baslagic_tarihi,bitis_tarihi

vb

Veri tabanı tasarımında unutulmaması gereken şey, doğru bir kaynakta olmak zorundadır. Eğer sen birden fazla tabloya şirket adı yazarsan biri güncellendiğinde diğeri kalır. böylece veritabanı doğruluğu yok olur. Artık veri güvenilmezdir.



C
3 yıl
Teğmen

öncelikle ezbere iş yapma ezbere gidiyorsun. Projende aşama aşama gitmeyi öğren aşağıdaki konular belki yardımcı olur başlangıç için basit düşünerek hareket et

https://www.phpmutfagi.com/subject/select-value-link-verme

https://www.phpmutfagi.com/subject/pdo-php-ile-mysql



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.