mysqle resim eklemek ile ilgili

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

uyekurdu

OpenCart-TR
Katılım
16 Eyl 2010
Mesajlar
55
Tepkime puanı
0
Puanları
0
selamlar,
yine aynı problem türü ile ilgili bir iki yazım olmuştu.

şuanda geldiğim nokta resmin yolunu mysqle yazdırabiliyorum fakat bu sefer takıldığım yer

veri tabanındaki
Kod:
OC_product_image
isimli tabloya yazdıramıyorum opencart sisteminin haricinde mysqle yazdırmak istediğimde opencartın mysqli içine yazıyo ama opencartın ürün ekle kısmına aynı kodları koyduğumda yazmıyor.

tekil olarak çalıştırdığım hali

Kod:
<?php
//Veritabanı bağlantı dosyamızı çekiyoruz
require_once("vtbaglan.php");
//Fonksiyonlar dosyamızı çekiyoruz
require_once("fonksiyonlar.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>PHP ve MySQL Resim Upload</title>
</head>

<body>
<?php
/*
Bir string değişken oluştururp bu değişken sayesinde başka sayfa oluşturup
işlem yapacağımıza tek bir sayfada string değişkenimiz sayesinde işlem yapabiliriz.
Ayrıca bu string değişken başka sayfalara taşınıp kullanılabilir.
*/
$i = $_GET['i']; //Bir string değişken oluşturuyoruz
switch($i){
case "": //$i string değişkeni boş ise yani sayfaya ilk girildiğinde
?>
<h3>Resim Upload Formu...</h3>
<form action="index.php?i=upload" method="post" enctype="multipart/form-data">
<label>Resim: <input name="file_resim" type="file" /></label>
<br /><br />
<input type="submit" value="Yükle!" />
</form>

<h3>Yüklenen Resimler...</h3>
<?php
echo '<table width="500" border="1">'; //Reesimlerimizi listelemek için bir tablo oluşturduk
$resim_cek = mysql_query("SELECT * FROM OC_product_image ORDER BY product_image_id DESC"); //Resimleri en son eklenenden başlayarak çekmemiz için gerekli mysql kodumuz
while($resim_cek_yeni = mysql_fetch_array($resim_cek)){ //while döngüsü ile resimlerimizi listeliyoruz
$id = $resim_cek_yeni['product_image_id']; //Resmin id'sini alıyoruz
$gy_al = getimagesize($resim_cek_yeni['resim_url']); //Resmin genişlik ve yüksekliğini alıyoruz
//Resimlerimizi tablonun satırlarına ekleyip listeliyoruz
echo '
<tr>
  <td width="150"><a href="'.$resim_cek_yeni['resim_url'].'"><img src="'.$resim_cek_yeni['resim_url'].'" width="150" height="150" border="0" /></a></td>
  <td width="334" valign="top">
  <b>Boyutu:</b> '.$resim_cek_yeni['resim_boyutu'].'<br />
  <b>Türü:</b> '.$resim_cek_yeni['resim_turu'].'<br />
  <b>Eklenme:</b> '.$resim_cek_yeni['eklenme'].'<br />
  <b>Genişlik ve Yükseklik:</b> '.$gy_al[0].' x '.$gy_al[1].'<br /><br />
  Resimi <a href="index.php?i=sil&product_image_id='.$id.'">Silin</a> veya <a href="'.$resim_cek_yeni['resim_url'].'">Büyütün</a>
  </td>
</tr>';
}
echo '</table>';
break;

case "upload": //$i isminde oluşturduğumuz string değişkenin değeri yani upload yapmamız için gerekli kodlamaların bulunduğu değişken
//Resim Upload aracından verileri alıyoruz
$resim_isim      = $_FILES["file_resim"]["name"]; //Resmin ismini çekiyoruz
$resim_turu      = $_FILES["file_resim"]["type"]; //Resmin türü. Örn; JPEG, PNG, GIF vs.
$resim_boyut_orj = $_FILES["file_resim"]["size"]; //Resmin orjinal boyutunu alıyoruz
$resim_boyut_str = strBoyut($_FILES["file_resim"]["size"]); //Resmin dönüştürülmüş boyutunu alıyoruz
$resim_kaynak    = $_FILES["file_resim"]["tmp_name"]; //Resmin hangi kaynaktan geldiğini alıyoruz
$resim_hedef     = "resimler/"; //Resmin yükleneceği yolu bir değişkene atadık
$eklenme_tarih   = date("d.m.Y"); //Bir tarih formatı oluşturduk

	if($resim_kaynak == ""){ //Eğer resmin kaynağı boş iste yani hiç resim seçilmemiş ise hata mesajı verdiriyoruz
		echo '<script type="text/javascript">alert("Üzgünüz! Bir resim seçmelisiniz.");</script>';
		echo '<meta http-equiv="refresh" content="0;URL=index.php">';
	}elseif(($resim_turu != "image/jpeg") and ($resim_turu != "image/png") and ($resim_turu != "image/gif")){ //Eğer seçilen resimlerin türü JPEG, PNG veya GIF değilse bir hata mesajı verdiriyoruz
		echo '<script type="text/javascript">alert("Seçtiğiniz dosya jpeg, png ve gif formatlarında olmalıdır!");</script>';
		echo '<meta http-equiv="refresh" content="0;URL=index.php">';
	}elseif($resim_boyut_orj > 960000){
		echo '<script type="text/javascript">alert("Resim boyutu çok büyük maximum 960kb boyutunda resim yükleyebilirsiniz!");</script>';
		echo '<meta http-equiv="refresh" content="0;URL=index.php">';
	}else{ //Eğer resim seçilmişse ve türüde uygunsa resmi hem sunucumuza yüklüyoruz(upload) hemde veritabanımıza kaydediyoruz
		$rasgele_isim = rand(1,10000); //1 ile 10.000 sayıları arasında rasgele bir sayı üretiyoruz
		//Resmi sunucuya yüklememiz(upload) için gereken php kodumuz ayrıca rasgele ürettiğimiz sayı ile resmimizin yanına ürettiğimiz sayıyı ekleyip aynı resimden olma ihtimalini yok ediyoruz
		$resim_upload = move_uploaded_file($resim_kaynak,$resim_hedef.'/'.$rasgele_isim . "-" . $resim_isim);
		//Veritabanına kaydedilirken sadece resmin ismi değilde resmin yolu, rasgele sayı ürettiğimiz kodumuz ile resmin ismini birleştirerek veritabanına kaydetmemiz için yeni bir değişken oluşturduk
		$resim_isim_yeni = "resimler/" .$rasgele_isim. "-".$resim_isim."";
		
		$kaydet = mysql_query("INSERT INTO OC_product_image (resim_url,resim_boyutu,resim_turu,eklenme) VALUES ('$resim_isim_yeni','$resim_boyut_str','$resim_turu','$eklenme_tarih')"); //Veritabanına eklememiz için gereken mysql kodumuz
		if($kaydet){ //Eğer işlem başarılı olursa onay mesajı verdiriyoruz
			echo '<script type="text/javascript">alert("Resim başarıyla eklendi.");</script>';
			echo '<meta http-equiv="refresh" content="0;URL=index.php">';
		}else{ //Eğer bir sorun olursa hata mesajı verdiriyoruz
			echo '<script type="text/javascript">alert("Hata! Resim eklenemedi.");</script>';
			echo '<meta http-equiv="refresh" content="0;URL=index.php">';
		}
	}
break;

case "sil":
$id = $_GET['product_image_id']; //Resimleri listelerken çektiğimiz resmin id'si
$silincek_resim 	 = mysql_query("SELECT * FROM OC_product_image WHERE product_image_id=$product_image_id"); //Silincek resmin ismini çekmek için gerekli mysql kodumuz
$silincek_resim_yeni = mysql_fetch_array($silincek_resim); //Silincek resmin ismini çekmek için mysql_fetch_array() fonksiyonumuzu kullanıyoruz

$resim_sil = mysql_query("DELETE FROM OC_product_image WHERE product_image_id=$product_image_id"); //Resmi silmek için gerekli mysql kodumuz
	if($resim_sil){ //Eğer resim başarıyla silinirse onay mesajı verdiriyoruz
		echo '<script type="text/javascript">alert("Resim başarıyla silindi.");</script>';
		echo '<meta http-equiv="refresh" content="0;URL=index.php">';
		@unlink($silincek_resim_yeni['resim_url']); //Resmi sunucudan silmek için gerekli fonksiyonumuz
	}else{ //Eğer resim silinirken bir sorun olursa hata mesajı verdiriyoruz
		echo '<script type="text/javascript">alert("Hata! Resim silinemedi.");</script>';
		echo '<meta http-equiv="refresh" content="0;URL=index.php">';
	}
break;
}
?>
</body>
</html>

hem resimler klasörüne resmi upload ediyor hemde
Kod:
OC_product_image
tablosuna resmin yolunu yazıyor. tekilde problem yok burdaki kodları

ürün ekleme sayfası olan

product_form.tpl ye eklemeye çalıştığım hali

dosya download http://www.ozelhediye.net/product_form.rar yazı karakterı sınırı oldugu ıcın kodları yazamadım bu yuzden download olarak verdım

bununla aynı yerdeki aynı isimli tabloya ve stunlara işlemiyor yardım edebilirmisiniz ?
 

eren.erduran

OpenCart-TR
Katılım
11 Ağu 2011
Mesajlar
169
Tepkime puanı
0
Puanları
0
Yaş
29
Konum
Tiran
Web sitesi
erenerduran.com
galiba problem entegre ettiğiniz zaman ortaya çıkıyor. bunun sebebide veritabanı ayarlarını ve fonksiyonları başka biryerden çağırıyor olmanız.

girdiğinizde çağırmış olduğunuz yoluda değiştirin veya direk o dosyada bulunan içerikleri bu dosyaya ekleyin.

ve veri tabanı ayarlarında seçtiğiniz veritabanını kontrol edin.
 

uyekurdu

OpenCart-TR
Katılım
16 Eyl 2010
Mesajlar
55
Tepkime puanı
0
Puanları
0
veri tabanı bağlantısı okey onda problem yok

OC_product_image isimli tablodaki stunları

product_image_id - product_id - resim_url - resim_boyutu - resim_turu - eklenme olarak düzenledim

resim yüklemek için olan kodlarda

Kod:
$resim_cek = mysql_query("SELECT * FROM OC_product_image ORDER BY product_image_id DESC"); //Resimleri en son eklenenden başlayarak çekmemiz için gerekli mysql kodumuz
while($resim_cek_yeni = mysql_fetch_array($resim_cek)){ //while döngüsü ile resimlerimizi listeliyoruz
$id = $resim_cek_yeni['product_image_id']; //Resmin id'sini alıyoruz
$gy_al = getimagesize($resim_cek_yeni['resim_url']); //Resmin genişlik ve yüksekliğini alıyoruz
//Resimlerimizi tablonun satırlarına ekleyip listeliyoruz

olarak düzenli ve sayfanın kalanıda yukarıdaki tablolara göre düzenli durumda

bu dosyayı tek başına çalıştırıp resim yüklediğimde

OC_product_image isimli tablodaki stunlarına

product_image_id - product_id - resim_url - resim_boyutu - resim_turu - eklenme gereken resmi hem yazıyo düzgünce hemde ftpye upload ediyo tekil çalıştırdığımda problem yok

ama bu tekil çalıştırdığım kodları product_form.tpl ye eklediğimde ürün ekleniyor fakat ne resim upload oluyor nede mysql deki


OC_product_image isimli tablodaki stunlarına

product_image_id - product_id - resim_url - resim_boyutu - resim_turu - eklenme yazmıyor

bunu sağlamam çok önemli arkadaşlar yardım bekliyorum sizlerden

eminimki tüm OC kullanıcıları bu işten çok faydalanacaktır. herkesin işine yarayacak hosting şişkinliği bitecek artık !



farkettimki eksik olan sadece şu eklediğim resim upload kodlarının mysqle oc tarafından gönderilmesini sağlamak kalmış sadece oc nin ürün ekle dediğinde mysqle yazmasını sağlayan kodları nerede onları bulup oraya product_image_id - product_id - image olan orjinal gönderileri product_image_id - product_id - resim_url - resim_boyutu - resim_turu - eklenme bu şekilde değiştirmem gerekli

OC'nin ürün ekle mysql kodları admin\model\catalog\product.php içinde olduğunu gördüm fakat benim için karışık geliyor bilen arkadaşlardan yardım bekliyorum lütfen
 

eren.erduran

OpenCart-TR
Katılım
11 Ağu 2011
Mesajlar
169
Tepkime puanı
0
Puanları
0
Yaş
29
Konum
Tiran
Web sitesi
erenerduran.com
En son vermiş olduğunuz kod resimleri göstermenize yarar yüklemeye değil. İlk kodda yükleme ve silme işlemleri yapılmış. İlk dosyada gördüğüm kadarı ile php hatası yok.

Dediğim gibi product_form.tpl ayrı bir dizindedir. buradan çağırmış olduğunuz veritabanı yolu hatalı veya kesişiyor olabilir.

Size tavsiyem product_form.tpl'ye veritabanı ayarı bulunan dosyanın içerdiklerinin aynısını eklemeniz.Yine bir sorun olursa site linkini yazın yardımcı olmaya çalışayım..
 

admin

Administrator
Yönetici
Katılım
13 Ağu 2009
Mesajlar
3,200
Tepkime puanı
1
Puanları
38
Yaş
38
Konum
Bursa
Web sitesi
www.opencart-tr.com
Daha önce açtığınız bir konuyu eski konunuz altında devam etmek yerine neden yeni konu açıyorsunuz buna bir anlam vermek mümkün değil üstelik daha önce de yaptığınız bu davranışınız yüzden uyarı almanıza karşın tekrar konu açmaya devam ediyorsunuz.

Eski konunuzdan devam ediniz.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst