• 09-09-2007, 13:40:05
    #1
    Üyeliği durduruldu
    Kendi kendime POST ve DB'ye yazma olayını çözmeye çalışırken bir türlü çalıştıramadım bu kodları

    <?
    
    
    $server="localhost" ;
    $user = "root" ;
    $pass = "123" ;
    $database = "kayit" ;
    
    mysql_connect($server, $user,$pass) or die ("Hata: veritabanına bağlanılamadı!.Bilgiler yanlış"); 
    mysql_select_db($database) or die ("Hata: veritabanına bağlanılamadı!.Db yok"); 
    mysql_query("SET NAMES 'latin5'"); 
    mysql_query("CREATE TABLE kayit") ;
    
    echo ('
    <html>
    <head>
    <title>basit kayıt</title>
    </head>
    <body>
    <form method="POST" action="kayit.php">
    Lütfen formlarda Türkçe karakter kullanmayın!<br>
    Adınız: <input type="text" name="isim"><br>
    Soyadınız: <input type="text" name="soyad"><br>
    <input type="submit" value="DBye eklen!"><br>
    </form></body></html> ') ;
    ?>
    kayit.php

    <?
    $isim=($_POST['isim']) ;
    $soyad=($_POST['soyad']) ;
    $bos="0" ;
     
    if (($isim=="") || ($soyad=="")) {
    echo 'boşlukları doldur' ; 
    } else if (
    mysql_query ("INSERT INTO kayit (ad,soyad) values ('$isim','$soyad') ")  ) ?>
    Hata büyük ihtimalle DB kısmındadır Hiç bilgim yoktu DB'ye yazmayla ilgili bi kaç örnek inceledim daldım direk. Bu kodların nasıl olması lazım çalışması için sebepleriyle açıklayacak varsa çok sevinirim.
  • 09-09-2007, 14:12:42
    #2
    ben kodlarda bi sorun göremedim muhtemelen veritabanı ile ilgili bir sıkıntı var kayit. php yi şöyle değiştir veritabanıyla ilgili sorunu görebilirsin.

    <?
    $isim=($_POST['isim']) ;
    $soyad=($_POST['soyad']) ;
    $bos="0" ;
     
    if (($isim=="") || ($soyad=="")) {
    echo 'boşlukları doldur' ; 
    } else if (
    mysql_query ("INSERT INTO kayit (ad,soyad) values ('$isim','$soyad') ")  
    echo mysql_error();
    ) ?>
  • 09-09-2007, 14:22:30
    #3
    <?
    $isim=($_POST['isim']) ;
    $soyad=($_POST['soyad']) ;
    $bos="0" ;
     
    if (($isim=="") || ($soyad=="")) {
    echo 'boşlukları doldur' ; 
    } else {
    mysql_query ("INSERT INTO kayit (ad,soyad) values ('$isim','$soyad') ")  
    }
    ?>
    else if devamı yok :| else olarak kullanmak gerek
  • 09-09-2007, 14:39:06
    #4
    Üyeliği durduruldu
    mysql_query("SET NAMES 'latin5'"); 
    mysql_query("CREATE TABLE kayit") ;
    Bu kısmı çıkar buradan

    Databaseye kayit diye bi tablo aç

    id
    ad
    soyad

    3 tane alanı olsun

    Bu konuda bilgin yoksa aşağıdaki dosyayı hazırla ve çalıştır.

    <?php
    $server="localhost" ;
    $user = "root" ;
    $pass = "123" ;
    $database = "kayit" ;
    
    mysql_connect($server, $user,$pass) or die ("Hata: veritabanına bağlanılamadı!.Bilgiler yanlış"); 
    mysql_select_db($database) or die ("Hata: veritabanına bağlanılamadı!.Db yok");
    
    $strSQL = "CREATE TABLE kayit(
                    id INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,
                    ad CHAR(50) NOT NULL,
                    soyad CHAR(50) NOT NULL,
                   
                   
    )";
    
    mysql_query($strSQL);
    ?>
    Bir kere çalıştırmanla tablolar oluşmuş olacak.

    Şimdi form sayfamızı yapalım

    form.php
    <html>
    <head>
    <title>FORM SAYFASI</title>
    </head>
    <body>
    <form method="POST" action="islem.php">
    <input type="hidden" name="kontrol" value="1">
    Adınız: <input type="text" size="30" name="ad"><br>
    Soyadınız: <input type="text" size="30" name="soyad"><br>
    <input type="submit" value="Kaydet"><br>
    </form>
    </body>
    </html>
    Burda ad ve soyad diye iki değişkenimiz var kullanıcıdan bu iki değişkeni doldurmasını istiyoruz.
    formumuzun başına bir hidden koyup verinin gelip gelmediği kontrol edilebilir.
    Bunuda
    <input type="hidden" name="kontrol" value="1">
    ile yapabiliriz.

    Şimdide islem.php yi yani db ye kayıt yapan dosyamızı yapalım.

    islem.php
    <?php
    $server="localhost" ;
    $user = "root" ;
    $pass = "123" ;
    $database = "kayit" ;
    
    mysql_connect($server, $user,$pass) or die ("Hata: veritabanına bağlanılamadı!.Bilgiler yanlış"); 
    mysql_select_db($database) or die ("Hata: veritabanına bağlanılamadı!.Db yok");
    //önce veri varmı kontrol ediyoruz varsa kayıt ediyoruz
    
    $kontrol = $_POST["kontrol"];
    
    if($kontrol == "1") {
    $ad = $_POST["ad"];
    $soyad = $_POST["soyad"];
    
    $SQL ="INSERT INTO kayit VALUES('','$ad','$soyad')"; // burda id alanını boş bıraktık çünkü databasede auto_incerement kullandık onun için
    mysql_query($SQL);
    echo "Kayıt Gerçekleştirildi.";
    } // if bitişi
    
    // BURAYADA VERİLERİ LİSTELEYELİM
    
    $verisorgu = "SELECT * FROM kayit ORDER BY id DESC";
    while($veri = mysql_fetch_array($verisorgu)) {
    $veri_ad = $veri["ad"];
    $veri_soyad = $veri["soyad"];
    
    echo "$veri_ad<br>$veri_soyad<hr>";
    } // While Bitişi
    ?>
    anlamadığın yer varsa sorabilirsin
  • 09-09-2007, 17:35:19
    #5
    Üyeliği durduruldu
    Kain teşekkürler ilgin için.
    captainzap, dikkatsizlik olmuş sanırım, düzellttim ancak yine bir sorun oldu.

    Seretan;
    senin yazdıklarından yola çıkarak yaptım, işte çalışan kodlar:

    index.php'ye ekleme yapmadım.
    index2.php:
    [PHP]<?php
    $server="localhost" ;
    $user = "root" ;
    $pass = "123" ;
    $database = "kayit" ;

    mysql_connect($server, $user,$pass) or die ("Hata: veritabanına bağlanılamadı!.Bilgiler yanlış");
    mysql_select_db($database) or die ("Hata: veritabanına bağlanılamadı!.Db yok");
    //önce veri varmı kontrol ediyoruz varsa kayıt ediyoruz
    $isim=($_POST['isim']) ;
    $soyad=($_POST['soyad']) ;
    $bos="0" ;

    if (($isim=="") || ($soyad=="")) {
    echo 'boşlukları doldur' ;
    } else {
    $sql="INSERT INTO kayit VALUES ('','$isim','$soyad')";
    mysql_query($sql);
    echo "kayit tamam";
    }

    ?>
    [PHP]

    şeklinde.
    Ancak mysql_fetch_array eklediğimde -senin kodları kopyala yapıştır yapsam bile- şöyle bir hata alıyorum.

    kayit tamam
    Warning:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\�yelik formu\index2.php on line 23
    23. satır ve çevresi şöyle;

    $verisorgu="SELECT * FROM kayit ORDER BY id DESC" ;
    while ($veri=mysql_fetch_array($verisorgu)) {
    $veriad=$veri["isim"];
    $verisoyad=$veri["soyad"];
    kalın ve eğik satır 23.
  • 09-09-2007, 17:49:44
    #6
    Üyeliği durduruldu
    $verisorgu="SELECT * FROM kayit ORDER BY id DESC" ;
    while ($veri=mysql_fetch_array($verisorgu)) {
    $veriad=$veri["isim"];
    $verisoyad=$veri["soyad"];

    mysql_query yok dostum.

    $verisorgu = mysql_query("SELECT * FROM kayit ORDER BY id DESC");
  • 09-09-2007, 18:03:10
    #7
    Üyeliği durduruldu
    Teşekkür edeirm Hard_Love. MySQL fonksiyonlarına çalışayım en iyisi devam etmeden önce Emeği geçen herkese teşekkür ederim.
  • 09-09-2007, 18:29:23
    #8
    Üyeliği durduruldu
    Hard_Love adlı üyeden alıntı: mesajı görüntüle
    $verisorgu="SELECT * FROM kayit ORDER BY id DESC" ;
    while ($veri=mysql_fetch_array($verisorgu)) {
    $veriad=$veri["isim"];
    $verisoyad=$veri["soyad"];

    mysql_query yok dostum.

    $verisorgu = mysql_query("SELECT * FROM kayit ORDER BY id DESC");
    hızlıca yazdığımdan görmemişim kusura bakmayın. Ama kodlama mantığı bu şekilde. Biraz daha uğraşırsan çözebilirsin bu işi
  • 09-09-2007, 18:41:25
    #9
    Üyeliği durduruldu
    Estağfurullah ne kusuru Mantığı görmek için bir tane daha örnek inceledim, zihnime oturdu en azından. Biraz da temel MySQL kodlarını öğrendiğim zaman sorun kalmayacak umuyorum.