Şimdi Ara

Form içinde DB den veri çekmek

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
4
Cevap
0
Favori
163
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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.


    Kod

    Yığını:
    <?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



    Kod

    Yığını:
    <?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>







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


    Kod

    Yığını:
    <?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.





  • ö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






  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.