// Madem mysql_connect işlemini conn.php içinde yaptın "-" arasına aldığım kodları da oraya koy //-------------------------- $db="abc"; mysql_select_db($db,$conn) or die("Veritabanina Baglanilamadi"); //--------------------------
/* Öncelikle tablodaki sütünları tırkan içine almaman gerekir. "VALUES" dan sonra kullandığın değişkenleri aşağıda tanımladığım şekilde kullanman yararına olur. Ayarıca eğer yolladığın değişken integer ise ' tek tırnak kullanmaman gerekir.
*/ /* Eski Hali $query="INSERT into upload_data ('FILE_NAME','FILE_SIZE') VALUES('$dosya_adi','$dosya_boyutu') "; */ $query="INSERT into upload_data (FILE_NAME,FILE_SIZE) VALUES('".$dosya_adi."','".$dosya_boyutu."') ";
/* Bir değişken asla "" içinde yazılmaz. Ayrıca mysql_query'i bir değişekene atman hata konusunda yardımcı olur. mysql_query("$query");
Örneğin
if($result) { } ifadesi eğer bilgiler veri tabanına doğru girildiyse { } tagları arasına aşağıdaki kopyalama işlemini yapar çünkü eğer yüklediğin verinin veri tabanına doğru eklenmemesi durumunda bile aşağıdaki resim dosyaya kopyalanacak. Kopyalama */ $result = mysql_query($query);
$klasor="uploads"; // yuklenecek dosyalar icin yeni klasor if(empty($errors)==true){ //eger hata yoksa if(is_dir($klasor)==false){ // $klasor var mı? mkdir("$klasor", 0700); //klasor yoksa 0700 sayılı izinle olustur } if(is_dir("$klasor/".$yenisim)==false){ //olusturdugumuz isimde dosya var mı? move_uploaded_file($dosya_gecici,"$klasor/".$yenisim); //yoksa yeni ismiyle kaydet } else { //eger varsa $new_dir="$klasor/".$yenisim.time(); //yeni ismin sonuna eklenme zamanını ekle rename($dosya_gecici,$new_dir) ; } }else{ print_r($errors); //varsa hataları yazdır } } if(empty($error)){ echo "Islem Basarili"; // isler yolunda gittiyse yazdır } } ?>
Yalnız bir önerine uymayacağım. O da veritabanı seçimini conn.php aktaramam.
Çünkü foreach döngüsünden önce formdan gelen diğer verileri kaydetmek için, başka bir veritabanı daha seçmem gerekiyor.
Bu konuda başka bir çözüm yolu var mıdır?
quote:
Orijinalden alıntı: fefhit
Hataları bulduğun için teşekkür ederim arkadaşım.
Yalnız bir önerine uymayacağım. O da veritabanı seçimini conn.php aktaramam.
Çünkü foreach döngüsünden önce formdan gelen diğer verileri kaydetmek için, başka bir veritabanı daha seçmem gerekiyor.
Bu konuda başka bir çözüm yolu var mıdır?
PHP.net'in kullanmanı tavsiye ettiği yöntemle kullanırsan onu da sağlayabilirsin aslında. Şuan kullandığın mysql komutları bütününe yakında desteği kaldırıyor php ve mysqli ye geçiyor. Eğer onları kullanırsan sorununa şu şekilde çözüm bulabilirsin.
// A Database'ine bağlanılıyor $mysqli = new mysqli('localhost','root','','test'); // B Database'ine bağlanılıyor $mysqli1 = new mysqli('localhost','root','','__gandalf');
// A Database'ine Listeleme işlemi yaptırılıyor $result = $mysqli->query('SELECT * FROM tablo'); // B Database'ine Listeleme işlemi yaptırılıyor $result1 = $mysqli1->query('SELECT * FROM _box');