Forum
iyi çalışmalar..
php yi öğrenmeye yeni başladım fakat 2-3 gündür takıldığım bir konu var oda şu telefon defteri yapıyorum yani yapmak istediğim o defter diye bir veritabanı ve onun altına genel diye bir tablo oluşturdum ondada ad, soyad .. vs. gibi field ları içermekte.
şimdi tabloma yani defterime kayıt yaptırabiliyorum sıkıntı yo veriyide çekiyorum fakat tek sorun yani şimdilik tek 🙂 verinin yanında düzenle butonuna bastığım zaman yeni id ile boş bir satır açıyor yani yeni id diğer veriler boş birde bununla beraber düzenlemek istediğim veriyi düzgün bir şekilde arayüz tabloma çekiyor düzenlenmek üzere ve ben gerekli değişikliği yapıp güncelle butoununa basınca güncelliyor fakat güncellediği verinin aynısından bir kayıt daha oluşturuyor bunun sebebi nedir nasıl düzeltebilirim ben baktım baktım bulamadım düzenle ye basınca çift kayıt , güncelleye basınca çift kayıt bunun sebebi nedir çok enteresan geldi bana...
Yardımlarınız için şimdiden tşk. ederim...!
------------ Bahsettiğim Kod ------------------------------------------------------------------------------------------------------------------------------
<?php
$id=$HTTP_POST_VARS[id];
$adi=$HTTP_POST_VARS[adi];
$soyadi=$HTTP_POST_VARS[soyadi];
$adres=$HTTP_POST_VARS[adres];
$ilce=$HTTP_POST_VARS[ilce];
$il=$HTTP_POST_VARS[il];
$cep_tel=$HTTP_POST_VARS[cep_tel];
$ev_tel=$HTTP_POST_VARS[ev_tel];
//bağlantı
$baglan= mysql_connect("localhost","root","");
//database seçimi
mysql_select_db("defter",$baglan);
//bağlantı testi
/*if($baglan)
{
echo "Bağlantı Başarılı..!";
}else {
echo "Bağlantı Başarısız..!";
}*/
//veri ekleme
$sql="insert into genel(adi,soyadi,adres,ilce,il,cep_tel,ev_tel)
values
('$adi','$soyadi','$adres','$ilce','$il','$cep_tel','$ev_tel')";
if (!mysql_query($sql,$baglan))
{
die ('Hata: ' . mysql_error());
}
//---------------------------------------------------------------------------
$islem=$_GET["islem"];
switch ($islem){
case "Duzenle";
Duzenle();
break;
case "Guncelle";
Guncelle();
break;
}
$sorgu=mysql_query("SELECT * FROM genel order by id asc");
echo"
<table align=\"center\" >
<tr>
<td>Adı</td>
<td>Soyadı</td>
<td>Adres</td>
<td>İlçe</td>
<td>İl</td>
<td>Cep Tel</td>
<td>Ev Tel</td>
</tr>";
while ($verigetir=mysql_fetch_array($sorgu)){
$id=$verigetir['id'];
$adi=$verigetir['adi'];
$soyadi=$verigetir['soyadi'];
$adres=$verigetir['adres'];
$ilce=$verigetir['ilce'];
$il=$verigetir['il'];
$cep_tel=$verigetir['cep_tel'];
$ev_tel=$verigetir['ev_tel'];
echo "<tr>
<td>$adi</td>
<td>$soyadi</td>
<td>$adres</td>
<td>$ilce</td>
<td>$il</td>
<td>$cep_tel</td>
<td>$ev_tel</td>
<td><a href=\"formkayit.php?islem=Duzenle&id=$id\">Düzenle</a> | <a href=\"formkayit.php?islem=Sil&id=$id\">Sil</a></td>
</tr>";
}
echo "</table>";
function Duzenle(){
$id=$_GET["id"];
$sorgu=MYSQL_QUERY("SELECT * FROM GENEL WHERE id='$id'");
$cek=mysql_fetch_array($sorgu);
$adi=$cek['adi'];
$soyadi=$cek['soyadi'];
$adres=$cek['adres'];
$ilce=$cek['ilce'];
$il=$cek['il'];
$cep_tel=$cek['cep_tel'];
$ev_tel=$cek['ev_tel'];
echo "
<form id=\"form1\" action=\"formkayit.php?islem=Guncelle&id=$id\" method=\"post\">
<div align=\"center\">
<table border=\"1\" bgcolor=\"#C0C0C0\" width=\"31%\" bordercolor=\"#0082D6\" style=\"border-style: solid; border-width: 2px\">
<tr>
<td>
<table border=\"0\" width=\"119%\" >
<tr>
<td width=\"49%\" height=\"36\"><b> Adı
</b>
<input type=\"text\" name=\"adi\" value=\"$adi\" size=\"20\" tabindex=\"1\" style=\"font-family: Times New Roman; font-size: 11px\" maxlength=\"20\">
</td>
<td width=\"48%\" height=\"36\"><b>Soyadı</b>
<input type=\"text\" name=\"soyadi\" value=\"$soyadi\" size=\"20\" tabindex=\"2\" style=\"font-family: Times New Roman; font-size: 11px\" maxlength=\"20\">
</td>
</tr>
<tr>
<td colspan=\"2\" height=\"35\" valign=\"top\" align=\"left\">
<b>Adres
</b><textarea name=\"adres\" cols=\"30%\" rows=\"2\" tabindex=\"3\" maxlength=\"5\" style=\"height: 31; width:282; Times New Roman; font-size: 11px\">$adres</textarea></tr>
<tr>
<td width=\"49%\" height=\"39\" align=\"left\">
<b>İlçe </b>
<input type=\"text\" name=\"ilce\" value=\"$ilce\" size=\"20\" tabindex=\"4\" style=\"font-family: Times New Roman; font-size: 11px\" maxlength=\"20\">
</td>
<td width=\"48%\" height=\"39\" align=\"left\">
<b>İl
<input type=\"text\" name=\"il\" value=\"$il\" size=\"20\" tabindex=\"5\" style=\"font-family: Times New Roman; font-size: 11px\" maxlength=\"11\">
</td>
</tr>
<tr>
<td width=\"49%\" height=\"39\"><b>Cep Tel </b>
<input type=\"text\" name=\"cep_tel\" value=\"$cep_tel\" size=\"20\" tabindex=\"6\" style=\"font-family: Times New Roman; font-size: 11px\" maxlength=\"11\">
</td>
<td width=\"48%\" height=\"39\"><b>Ev Tel</b>
<input type=\"text\" name=\"ev_tel\" value=\"$ev_tel\" size=\"20\" tabindex=\"7\" style=\"font-family: Times New Roman; font-size: 11px\" maxlength=\"11\">
</td>
</table>
</td>
</tr>
</table>
<input type=\"submit\" value=\"Güncelle\" name=\"submit\">";
}
function Guncelle(){
$id=$_GET["id"];
$adi=$_POST['adi'];
$soyadi=$_POST['soyadi'];
$adres=$_POST['adres'];
$ilce=$_POST['ilce'];
$il=$_POST['il'];
$cep_tel=$_POST['cep_tel'];
$ev_tel=$_POST['ev_tel'];
$guncelle=mysql_query("update genel set adi='$adi',soyadi='$soyadi',adres='$adres',ilce='$ilce',il='$il',cep_tel='$cep_tel',ev_tel='$ev_tel' where id='$id'");
if($guncelle){
echo "Güncellendi";
}
else{
echo "Hata";
}
}
?>
Siz insert ve update işlemlerini şayet Post edilmiş bir işlem var sa yapmalısınız
form içinde islem diiye bir alan tutun ve hidden olsun siz form u veri eklemek için atıyorsanız
ekle.php?islem=add
update için açıyorsanız
ekle.php?islem=up
olsun
<input type="hidden" name="ISLEM" value="<?=$_GET['islem'] ?>">
değişkeni ile formun açılış tipini tutarsınız
daha sonra post ettiğiniz yerde şu kontrolü yapın
if($_SERVER['REQUEST_METHOD']=="POST")
{
if($_POST['ISLEM']=="up")//Demekki Güncelleme Var
{
Guncelle();
}
else {// Demekki ekleme için gelmiş
$sql="insert into genel(adi,soyadi,adres,ilce,il,cep_tel,ev_tel)
values
('$adi','$soyadi','$adres','$ilce','$il','$cep_tel','$ev_tel')";
}
}
sizin yaptığınız mantıkta formun post edildiği durumda update için mi yoksa insert için mi gelmiş kontrol etmiyor her iki durumdada insert işlemini yapıyor
yardımın için teşekkür ederim cidden çok iyi mantık bende acaba empty() ile bir adi yada soyadinin kontrolünü mü yaptırsam acab diye düşünüyordum..
ehh işte sizin bu bakış acınıza tecrübe bizimkine acemilik deniyor 😉 inş. yavaş yavaş atıcaz tşk.ler tekrar
onur bey ;
bahsettiğiniz kodu uyguladım fakat yazni daha doğrusu tam olarak anlayamadım.Daha basit bir anlatımı mevcut olurmu acaba..
uyguladığınız kodu paylaşırmısınız hata nerde olabilir birlikte kontrol edelim
biraz uzun olacak ama tam anlamıyla anlayarak yapmak istiyorum.bir kez anlamam yeterli olacak bana
öncelikle form dizayndan başlayacağım yanlışımı iyice anlamak içim
form.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<title>test</title>
</head>
<body>
<form id="form1" action="formkayit.php?islem=up" method="post">
<div align="center">
<table border="1" bgcolor="#C0C0C0" width="31%" bordercolor="#0082D6" style="border-style: solid; border-width: 2px">
<tr>
<td>
<table border="0" width="119%" >
<tr>
<td width="49%" height="36"><b> Adı </b> <input type="text" name="adi" size="20" tabindex="1" style="font-family: Times New Roman; font-size: 11px" maxlength="20">
</td>
<td width="48%" height="36"><b>Soyadı</b>
<input type="text" name="soyadi" size="20" tabindex="2" style="font-family: Times New Roman; font-size: 11px" maxlength="20">
</td>
</tr>
<tr>
<td colspan="2" height="35" valign="top" align="left">
<b>Adres
</b><textarea name="adres" cols="30%" rows="2" tabindex="3" maxlength="5" style="height: 31; width:282; Times New Roman; font-size: 11px"></textarea></tr>
<tr>
<td width="49%" height="39" align="left">
<b>İlçe </b>
<input type="text" name="ilce" size="20" tabindex="4" style="font-family: Times New Roman; font-size: 11px" maxlength="20">
</td>
<td width="48%" height="39" align="left">
<b>İl
<input type="text" name="il" size="20" tabindex="5" style="font-family: Times New Roman; font-size: 11px" maxlength="11">
</td>
</tr>
<tr>
<td width="49%" height="39"><b>Cep Tel </b>
<input type="text" name="cep_tel" size="20" tabindex="6" style="font-family: Times New Roman; font-size: 11px" maxlength="11">
</td>
<td width="48%" height="39"><b>Ev Tel</b>
<input type="text" name="ev_tel" size="20" tabindex="7" style="font-family: Times New Roman; font-size: 11px" maxlength="11">
</td>
</table>
</td>
</tr>
</table>
<input type="submit" value="Kaydet" name="submit">
<input type="reset" value="Temizle" name="reset">
<input type="hidden" name="ISLEM" value="<?=$_GET['islem'] ?>">
<p> </form>
</body>
</html>
ve formkayit.php
<?php
$id=$HTTP_POST_VARS["id"];
$adi=$HTTP_POST_VARS["adi"];
$soyadi=$HTTP_POST_VARS["soyadi"];
$adres=$HTTP_POST_VARS["adres"];
$ilce=$HTTP_POST_VARS["ilce"];
$il=$HTTP_POST_VARS["il"];
$cep_tel=$HTTP_POST_VARS["cep_tel"];
$ev_tel=$HTTP_POST_VARS["ev_tel"];
//bağlantı
$baglan= mysql_connect("localhost","root","");
//database seçimi
mysql_select_db("defter",$baglan);
//bağlantı testi
/*if($baglan)
{
echo "Bağlantı Başarılı..!";
}else {
echo "Bağlantı Başarısız..!";
}*/
$sorgu=mysql_query("select * from genel order by id ASC");
echo " <TABLE>
<TR>
<TD>ADI</TD>
<TD>SOYADI</TD>
<TD>ADRES</TD>
<TD>İLÇE</TD>
<TD>İL</TD>
<TD>CEP TEL</TD>
<TD>EV TEL</TD>
</TR>";
while($verigetir=mysql_fetch_array($sorgu)){
$id=$verigetir['id'];
$adi=$verigetir['adi'];
$soyadi=$verigetir['soyadi'];
$adres=$verigetir['adres'];
$ilce=$verigetir['ilce'];
$il=$verigetir['il'];
$cep_tel=$verigetir['cep_tel'];
$ev_tel=$verigetir['ev_tel'];
echo "<TR>
<TD>$adi</TD>
<TD>$soyadi</TD>
<TD>$adres</TD>
<TD>$ilce</TD>
<TD>$il</TD>
<TD>$cep_tel</TD>
<TD>$ev_tel</TD>
<td><a href=\"formkayit.php?islem=up&id=$id\">Düzenle</a></td>
</TR>";
}
echo "</table>";
if($_SERVER['REQUEST_METHOD']=="POST")
{
if($_POST['ISLEM']=="up")//Demekki Güncelleme Var
{
guncelle();
}
else {// Demekki ekleme için gelmiş
//veri ekleme
$sql="insert into genel(adi,soyadi,adres,ilce,il,cep_tel,ev_tel)
values
('$adi','$soyadi','$adres','$ilce','$il','$cep_tel','$ev_tel')";
if (!mysql_query($sql,$baglan))
{
die ('Hata: ' . mysql_error());
}
}
}
function guncelle(){
$id=$_GET['id'];
$adi=$_POST['adi'];
$soyadi=$_POST['soyadi'];
$adres=$_POST['adres'];
$ilce=$_POST['ilce'];
$il=$_POST['il'];
$cep_tel=$_POST['cep_tel'];
$ev_tel=$_POST['ev_tel'];
echo "<form id=\"form3\" action=\"formkayit.php?islem=add\" method=\"post\">
<div align=\"center\">
<table border=\"1\" bgcolor=\"#C0C0C0\" width=\"31%\" bordercolor=\"#0082D6\" style=\"border-style: solid; border-width: 2px\">
<tr>
<td>
<table border=\"0\" width=\"119%\" >
<tr>
<td width=\"49%\" height=\"36\"><b>
Adı
</b>
<input type=\"text\" name=\"adi\" size=\"20\" tabindex=\"1\" style=\"font-family: Times New Roman; font-size: 11px\" value=\"$adi\" maxlength=\"20\">
</td>
<td width=\"48%\" height=\"36\"><b>Soyadı</b>
<input type=\"text\" name=\"soyadi\" value=\"$soyadi\" size=\"20\" tabindex=\"2\" style=\"font-family: Times New Roman; font-size: 11px\" maxlength=\"20\">
</td>
</tr>
<tr>
<td colspan=\"2\" height=\"35\" valign=\"top\" align=\"left\">
<b>Adres
</b> <!--webbot bot=\"Validation\" b-value-required=\"TRUE\" i-maximum-length=\"5\" -->
<textarea name=\"adres\" cols=\"30%\" rows=\"2\" tabindex=\"3\" maxlength=\"50\" style=\"height: 31; width:282; Times New Roman; font-size: 11px\">$adres</textarea></tr>
<tr>
<td width=\"49%\" height=\"39\" align=\"left\">
<b>İlçe </b>
<input type=\"text\" name=\"ilce\" value=\"$ilce\" size=\"20\" tabindex=\"4\" style=\"font-family: Times New Roman; font-size: 11px\" maxlength=\"20\">
</td>
<td width=\"48%\" height=\"39\" align=\"left\">
<b>İl
<input type=\"text\" name=\"il\" value=\"$il\" size=\"20\" tabindex=\"5\" style=\"font-family: Times New Roman; font-size: 11px\" maxlength=\"11\">
</td>
</tr>
<tr>
<td width=\"49%\" height=\"39\"><b>Cep Tel </b>
<input type=\"text\" name=\"cep_tel\" value=\"$cep_tel\" size=\"20\" tabindex=\"6\" style=\"font-family: Times New Roman; font-size: 11px\" maxlength=\"11\">
</td>
<td width=\"48%\" height=\"39\"><b>Ev Tel</b>
<input type=\"text\" name=\"ev_tel\" value=\"$ev_tel\" size=\"20\" tabindex=\"7\" style=\"font-family: Times New Roman; font-size: 11px\" maxlength=\"11\">
</td>
</table>
</td>
</tr>
</table>
<input type=\"submit\" value=\"Güncelle\" name=\"submit\">
<p> </form>";
$Guncelle=mysql_query("UPDATE genel SET id='id',adi='$adi',soyadi='$soyadi',adres='$adres',ilce='$ilce',il='$il',cep_tel='$cep_tel',ev_tel='$ev_tel' WHERE id='$id' ");
if($Guncelle){
echo "Güncellendi";
}
else{
echo "Hata..!";
}
}
?>
kodlarım aynen bu şekilde şimdide anlam veremediğim bir şekilde if($_POST['ISLEM']=="up")//Demekki Güncelleme Var
{
guncelle();
}
burdan güncelle fonksiyonuna sokamıyorum.gerçi bu fonksiyona girince sorunlar çözülmeyecektir fakat bu ayrıca yaşamış olduğum problem kodlar direk editörden kopyaladım..
MYSQL alanlarım anlaşılacağı gibi defter db sinde genel tablosunda
adi,soyadi,adres,ilce,il,cep_tel,ev_tel olarak açılmış durumda
çok uğraştırıyorum emekleriniz için şimdiden tşk. ederim...