arkadaşlar sorunum şu veri tabanında bilgiler adında tablo ve onun içinde tc_no adında bir sutun var. ben php ile tc noyu girdiğimde eğer bu tcno veritabanında var ise hata mesajı verecek yok ise kayıt yapacak. ben kayıt etmek kısmını yaptım. fakat arama kısmını yapamadım. yani tc no girince arama yaparak hata verdirme kısmını
Php mysql tabloda hata yapmak
Cevaplar
Aslında direkt kod verme taraftarı değilim ama bu seferlik olsun. Aşağıdaki kod işini görmesi lazım.
<?php
$sql="select tc_no from bilgiler";
$sorgu=mysql_query($sql);
if($sorgu)
{
echo("Bu TC No veritabanına kayıtlı.");
}
?>
tesekkürler
Bunun yerine tabllonuzdaki tc_no alanını unique yapın. Böylece aynı tc_no dan sadece bir tane girilebilir. Diğeri girilmeye kalktığında hata verir.N3CAT1 dedi: ↑Aslında direkt kod verme taraftarı değilim ama bu seferlik olsun. Aşağıdaki kod işini görmesi lazım.<?php $sql="select tc_no from bilgiler"; $sorgu=mysql_query($sql); if($sorgu) { echo("Bu TC No veritabanına kayıtlı."); } ?>
ben bu koda tcnoyu nasıl girdireceğim.
Pardon sql sorgusunda where koşulunu yazmayı unutmuşum:
$sql="Select tc_no from bilgiler where tc_no='"+$tcNo+"' ";Burdaki $tcNo senin kontrol edeceğin tc no. $tcNo 'ya değer atayıp yapacaksın sorguyu.<?php
$tc=$_POST["tc"];
$ad=$_POST["ad"];
$soyad=$_POST["soyad"];
$adrs=$_POST["adrs"];
$telf=$_POST["telf"];
if(($tc=="")){
echo"Lütfen TC kimlik numarasını Giriniz";
exit();
}
if(($ad=="") or ($soyad=="")){
echo"Lütfen Adınızı ve Soyadınızı giriniz";
exit();
}
if(($adrs=="")){
echo"Lütfen adresinizi Giriniz";
exit();
}
if(($telf=="")){
echo"Lütfen Telefon numarası Giriniz";
exit();
}
$baglan = mysql_connect(localhost,root,12345) or die ("mysql baglantı hatası");
mysql_select_db(hasta_kayit,$baglan) or die ("veri tabanına baglandı");
mysql_query ("insert into bilgiler(TC_no,Adi,soyadi,adres,telefon) values('$tc','$ad','$soyad','$adrs','$telf')");
$sql="Select TC_NO from bilgiler where TC_NO='"+$tc+"' ";
$sorgu=mysql_query($sql);
if($sorgu)
{
echo("Bu TC No veritabanına kayıtlı.");
}
?>
bu kodların neresinde hata var. kayıtta sorun yok ama sorguyu yapamadım.
$tc=$_POST["tc"];
$ad=$_POST["ad"];
$soyad=$_POST["soyad"];
$adrs=$_POST["adrs"];
$telf=$_POST["telf"];
if(($tc=="")){
echo"Lütfen TC kimlik numarasını Giriniz";
exit();
}
if(($ad=="") or ($soyad=="")){
echo"Lütfen Adınızı ve Soyadınızı giriniz";
exit();
}
if(($adrs=="")){
echo"Lütfen adresinizi Giriniz";
exit();
}
if(($telf=="")){
echo"Lütfen Telefon numarası Giriniz";
exit();
}
$baglan = mysql_connect(localhost,root,12345) or die ("mysql baglantı hatası");
mysql_select_db(hasta_kayit,$baglan) or die ("veri tabanına baglandı");
mysql_query ("insert into bilgiler(TC_no,Adi,soyadi,adres,telefon) values('$tc','$ad','$soyad','$adrs','$telf')");
$sql="Select TC_NO from bilgiler where TC_NO='"+$tc+"' ";
$sorgu=mysql_query($sql);
if($sorgu)
{
echo("Bu TC No veritabanına kayıtlı.");
}
?>
bu kodların neresinde hata var. kayıtta sorun yok ama sorguyu yapamadım.
Hatalı olan yerlerin düzeltilmişi
mysql_select_db(hasta_kayit,$baglan) or die ("veri tabanına bağlanamadı");
$sql="Select TC_NO from bilgiler where TC_NO='$tc' ";
$sorgu=mysql_query($sql);
if($sorgu)
{
echo "Bu TC No veritabanına kayıtlı.";
}
else{
echo "Kayıt gerçekleşti";
}
Benim renkli yaptığım gibi yap bakalım.
mysql_select_db(hasta_kayit,$baglan) or die ("veri tabanına bağlanamadı");
$sql="Select TC_NO from bilgiler where TC_NO='$tc' ";
$sorgu=mysql_query($sql);
if($sorgu)
{
echo "Bu TC No veritabanına kayıtlı.";
}
else{
echo "Kayıt gerçekleşti";
}
Benim renkli yaptığım gibi yap bakalım.
yok olmuyor
$sql="Select tc_no from bilgiler where tc_no='".$tc."' ";Olarak değiştirir misin. Yani + olan yerler . olacak.olmuyor.
Zaten olsa da doğru olmaz. Sanırım yeni öğreniyorsunuz, doğru olarak öğrenin. Tablonuzdaki tc_no alanını unique yapın (phpMyAdmin ile bunu yapabilirsiniz)fatih_80 dedi: ↑olmuyor.
Bu işlemi yaptıktan sonra devam ederiz.
$bak=mysql_num_rows(mysql_query("select TC_NO from bilgiler where TC_NO='$tc'"));
bu işlem sonucunda tc numarası veritabanında varsa $bak içine kaç tane olduğu gelir, eğer yoksa da 0 gelir zaten. daha sonra if ($bak==0) veya if ($bak) ifadesiyle işini halledebilirsin. kolay gelsin...
bu işlem sonucunda tc numarası veritabanında varsa $bak içine kaç tane olduğu gelir, eğer yoksa da 0 gelir zaten. daha sonra if ($bak==0) veya if ($bak) ifadesiyle işini halledebilirsin. kolay gelsin...