lostyazilim
tr.link

islem.php farklı tablolardan ekleme

3 Mesajlar 723 Okunma
lstbozum
tr.link

seajans seajans WM Aracı Kullanıcı
  • Üyelik 26.10.2016
  • Yaş/Cinsiyet 35 / E
  • Meslek Firma Yöneticisi
  • Konum İzmir
  • Ad Soyad C** T**
  • Mesajlar 65
  • Beğeniler 34 / 6
  • Ticaret 0, (%0)
2 farklı tablo ile ilgili islem.php ye ne yazmam gerektiğini bilmiyorum sizden destek istiyorum. proje kategorisini farklı tablodan çekip projeyi nasıl ekleyebilirim acaba. inner join ile tablo listelemesini yapabildim ama proje ekle alanında takıldım islem.php dosyasına ne yazmam gerekiyor. kodları sizle paylaşıyorum altta.

Veritabanları bu şekilde:





proje_ekle.php sayfasında da bu kodları yazdım


include 'header.php';
include '../netting/baglan.php';
date_default_timezone_set('Europe/Istanbul');



if (isset($_POST['arama'])) {

$aranan=$_POST['aranan'];

$projesor=$db ->prepare("select * from proje where proje_baslik LIKE '%$aranan%' order by proje_sira ASC, proje_durum DESC limit 25");

$projesor->execute();

$say=$projesor->rowCount();
}
else{
$projesor=$db ->prepare("SELECT * FROM proje INNER JOIN projekategori ON projekategori.projekategori_id=proje.proje_katid ORDER BY proje_sira ASC limit 25");

$projesor->execute();
$say=$projesor->rowCount();

}

?>






<script></script>






Ayarlar














Proje Ekle
if ($_GET['durum']=='ok') {?>

Güncelleme başarılı...



Güncelleme yapılamadı...













































































































<script>
$(document).ready(function() {
$(".select2_single").select2({
placeholder: "Select a state",
allowClear: true
});
$(".select2_group").select2({});
$(".select2_multiple").select2({
maximumSelectionLength: 4,
placeholder: "With Max Selection limit 4",
allowClear: true
});
});
</script>

<script></script>









---------------------------------------------------------------




islem.php de bunu yazdım ve bu alana ne yazmam gerektiğiyle alakalı bana yardımcı olabilir misiniz


if(isset($_POST['projekaydet'])) {



$uploads_dir = '../../dimg/proje';
@$tmp_name = $_FILES['proje_resim']["tmp_name"];
@$name = $_FILES['proje_resim']["name"];
$benzersizsayi1=rand(20000,32000);
$benzersizsayi2=rand(20000,32000);
$benzersizsayi3=rand(20000,32000);
$benzersizsayi4=rand(20000,32000);
$benzersizad=$benzersizsayi1.$benzersizsayi2.$benzersizsayi3.$benzersizsayi4;
$refimgyol=substr($uploads_dir, 6)."/".$benzersizad.$name;
@move_uploaded_file($tmp_name, "$uploads_dir/$benzersizad$name");




$kaydet=$db-> prepare("INSERT INTO proje SET
proje_durum=:durum,
proje_katid=:katid,
proje_resim=:resim,
proje_baslik=:baslik,
proje_firma=:firma,
proje_url=:url,
proje_ozellik=:ozellik,
proje_detay=:detay,
proje_durum=:durum,
proje_sira=:sira");



$insert=$kaydet->execute(array(
'durum' => $_POST['proje_durum'],
'katid' => $_POST['proje_katid'],
'resim' => $refimgyol,
'baslik' => $_POST['proje_baslik'],
'firma' => $_POST['proje_firma'],
'url' => $_POST['proje_url'],
'ozellik' => $_POST['proje_ozellik'],
'detay' => $_POST['proje_detay'],
'durum' => $_POST['proje_durum'],
'sira' => $_POST['proje_sira']));



if($insert){
header("location:../production/proje.php?durum=ok");

}else{

header("location:../production/proje.php?durum=no");



}


}
 

 

wmaraci
reklam

Decimas Decimas WM Aracı Kullanıcı
  • Üyelik 19.04.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** E**
  • Mesajlar 820
  • Beğeniler 1 / 302
  • Ticaret 1, (%100)
Sorunun cevabı; işlem.php'de bir sorun yok, insert etmesi gerek. Etmiyorsa hata mesajı ne diyor?

Tavsiye Niteliğinde Taşlama;

Profilinde yazıımcı, grafiker yazmışsın ama yazılımcı olmadığın belli çünkü dokuz kusurlu hareketin dokuzunu da yapmışsın. Üstelik kurumsal diye oluşturduğun şeyin kusumsallıkla alakası yok. Umarım bunu satmayı amaçlamıyorsundur -_-.

Öncelike tablo ismi sütun ismine tablo_ şeklinde prefix olmaz. zaten varsayılan olarak öyle. Sistem şu şekilde verini işliyor tablo.tablo_sutun_ismi. (...proje.proje_katid...) Doğrusu programlamada Türkçe isimlendirme yapılması da yanlış, sadece örnek için yazdım.

İlşkisel bir veritabanı yapısı gerektiriyor bu çalışman, FOREIN KEY konusuna bakman gerek.

Resim yükleme işlemi nereden baksan en az 2-3 bin satırlık iş, senin kodunda sistemi 3. kişiye bildiğin emanet etmişsin. Aynı hatayı geçen biri apmıştı, hiç acımadım vurdum kırbacı vurdum kırbacı :D verot upload class'ını kullan.

Veritabanı işlemlerini daha kolay bir şekilde yapmak için bir db class'ı kullanmalısın.

Formdan gelen verinin var olup olmadığını, null mü, türü nedir, beklenen aralıkta mı diye kontrol etmen gerek. Direkt formu bassaymışsın. Bunun SQL injection'ı var, script injection'ı var.

Çalışman tam bir spagetti, okuması bile zor, hiç MVC diye bir şey duymadın mı? PHP, HTML, JS, CSS birlikte spagetti gibi yazılmaz ki.

Ve tonla benzeri hata, araştırman gereken çok şey var kısacası. Eğer bu konuda uzman değilsen satış yapma, adın çıkar demedi deme :)
seajans

kişi bu mesajı beğendi.

no time for caution

seajans seajans WM Aracı Kullanıcı
  • Üyelik 26.10.2016
  • Yaş/Cinsiyet 35 / E
  • Meslek Firma Yöneticisi
  • Konum İzmir
  • Ad Soyad C** T**
  • Mesajlar 65
  • Beğeniler 34 / 6
  • Ticaret 0, (%0)
@Decimas Teşekkür ederim yorumlarınız için.
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al