PHP : Form Nesnesi Kontrolü

Web tabanlı uygulama geliştirme araçları(PHP, ASP vb...) ile ilgili konuları buraya yazabilirsiniz.
Cevapla
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

PHP : Form Nesnesi Kontrolü

Mesaj gönderen webaytek »

elimde 1 php ziyaretçi defteri vardı bunu bayaa bi modifiye ettim ve istediğim hale dönüştürdüm. Sadece kayıt girişi yapılacak, silinecek ve gerekirse kayıtlarda değişiklikler yapılacak ve bunlar tabii ki veritabanına işlenecek. Ekleme, silme konusunda bi sıkıntım kalmadı. Bu işlemleri şu şekilde yapıyorum.
read.php içinde tüm kayıtlar görünüyor. her kayıt altında birer link var
"girişi sil" ve "değişiklikleri kaydet" adında.
Girişi sil kısmı süper çalışıyo. ancak değişiklikleri kaydet konusunda aynı şeyi söyleyemeyeceğim
Update query kullanmam gerektiğini düşünüyorum ancak tam da emin değilim. koyduğum kod şu

Kod: Tümünü seç

<?php

// connect to the mysql server
$link = mysql_connect($server, $db_user, $db_pass)
or die ("Could not connect to mysql because ".mysql_error());

// select the database
mysql_select_db($database)
or die ("Could not select database because ".mysql_error());

//$result = mysql_query("SELECT *FROM `kayitlar_hosting` WHERE 1  ORDER BY `id`  DESC", $link)
or die ("Could not read data because ".mysql_error());

$query = "UPDATE kayitlar_hosting SET DomainAlinan =$DomainAlinan, HostingAlinan =$HostingAlinan, DomainAdi =$DomainAdi, TarihAlinan =$TarihAlinan, WHERE id=$id";
mysql_query($query);
or die(mysql_error());
mysql_close();

echo "Değişiklikler Kaydedildi | <a href=read.php>Kayıtları Görmek için tıklayın</a>";
print $DomainAlinan;
print '<META HTTP-EQUIV=Refresh CONTENT="0; URL=read.php">';

?>
burada olay şu - tüm kaytıları gördüğüm ekran > read.php. burada ben düzelt diyince update query çalışıyo. ancak hiçbi değişiklik olmuyo. Ya kod hatalı, ya da ikinci fikrim şu - aynı sayfada kaç kayıt varsa o kadar aynı isimli textbox var. yani hiçbiri unique isimde değil. bu hatayı aşmamın bi yolu var mı - KOLAY GELSİN
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Sql llerini echo ile ekrana basıp phpmyadmin ile dene bakalım çalışacakmı... Sql lere değişkenleri yanlış giriyorsun gibime geldi...


Aşağıdaki örneğim gibi uygulamanı tafsiye ederim.
"Select * from table where alan = '".$sart."'";


Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Mesaj gönderen webaytek »

@husonet aslında sql e değişkenleri yanlış girmiş olma ihtimalim olabilir de...
şuana kadar hiçbir zorlukla karşılaşmadım o konuda, benim sıkıntım sadece bir HTML formu düşünün. üzerindeki 4 tane textbox var. hepsinin adı birbirinden farklı ancak bu tabii ki her kayıt için tekrarlanınca mesela 12 kayıt varsa 12 tane aynı isimli 4*12 = 48 tane textbox oluyor. bunu aşmamın bi yolu varsa ona yoğunlaşmak istiyorum. şuanlık öncelikli sorunum bu
denwer
Üye
Mesajlar: 15
Kayıt: 31 May 2005 05:38
Konum: Avcılar, Istanbul
İletişim:

Mesaj gönderen denwer »

yanlız kodlamada hata var, kırmızı ile işaretlediğim yerler hatalı , burları kaldırıp , yeşille eklediğim satırları kendi koduna ekleyip sonucu bizimle paylaşırsan sanırım daha rahat çözüm bulabiliriz :
<?php

// connect to the mysql server
$link = mysql_connect($server, $db_user, $db_pass)
or die ("Could not connect to mysql because ".mysql_error());

// select the database
mysql_select_db($database)
or die ("Could not select database because ".mysql_error());

//$result = mysql_query("SELECT *FROM `kayitlar_hosting` WHERE 1 ORDER BY `id` DESC", $link)
or die ("Could not read data because ".mysql_error());

$query = "UPDATE kayitlar_hosting SET DomainAlinan =$DomainAlinan, HostingAlinan =$HostingAlinan, DomainAdi =$DomainAdi, TarihAlinan =$TarihAlinan, WHERE id=$id";
echo $query .'<br>';
mysql_query($query);
or die(mysql_error());
mysql_close();

echo $query .'<br>';

echo "Değişiklikler Kaydedildi | <a href=read.php>Kayıtları Görmek için tıklayın</a>";
print $DomainAlinan;
print '<META HTTP-EQUIV=Refresh CONTENT="0; URL=read.php">';

?>
Kullanıcı avatarı
webaytek
Üye
Mesajlar: 377
Kayıt: 23 Haz 2004 10:58

Mesaj gönderen webaytek »

çok felaket saolsun. ben sizden 15 dk erken davranmışım. :-) Kodu kendi zorlamam ve dürtmem yoluyla düzene soktum + siteme upload ettim - kullanılır hale geldi.
2 ayrı PHP olarak hallettim. 1.dosya edit.php textbox lari DBden okutup save.php ile de bu okutulan textbox lar daki değişiklikleri kaydedecek kod mevcut. O da aşağıda.

Kod: Tümünü seç

<?php

include "config.php";

// connect to the mysql server
$link = mysql_connect($server, $db_user, $db_pass)
or die ("Could not connect to mysql because ".mysql_error());

// select the database
mysql_select_db($database)
or die ("Could not select database because ".mysql_error());

//$result = mysql_query("SELECT *FROM `kayitlar_hosting` WHERE 1  ORDER BY `id`  DESC", $link)
//or die ("Could not read data because ".mysql_error());

mysql_query("UPDATE kayitlar_hosting SET DomainAlinan = '$DomainAlinan', HostingAlinan = '$HostingAlinan', DomainAdi = '$DomainAdi', TarihAlinan = '$TarihAlinan' WHERE id=$id");
//or die(mysql_error());

mysql_close();

echo "Değişiklikler Kaydedildi | <a href=read.php>Kayıtları Görmek için tıklayın</a>";
print '<META HTTP-EQUIV=Refresh CONTENT="0; URL=read.php">';
//print $DomainAlinan;

?>
Şuan dediğiniz gibi - HATA çıkma olasılığına karşı da düzenlerim o zaman sorunsuz olur. Yardımlarınız için çok teşekkür ederim.
Cevapla