Merhabalar,

PHP,HTML, CSS kullanarak bir web projesi yapmaya çalışıyorum.Bu site sayesinde kayıt yaptırdıktan sonra sign in olmuş kullanıcılar resimler paylaşabiliyorlar ve bu resimler ana sayfada çıkıyor.Databasede users,images ve messages tabloları var.Her resmin altına textarea açıp post butonu koydum.Burada bir problem yok.Ancak kullanıcıların resimlerin altına yorum yapabilmelerini de sağlamak için aşağıdaki kodu denediğimde bir resim için yaptığım comment örneğin ana sayfada 4 resim varsa 4 kere yazdırılıyor databasedeki tabloya.Ben sadece yorum yapılan resmin picid sini messagestaki picId kısmına kaydetmek istiyorum.Birden fazla submit butonu olduğundan böyle bir problem oluşuyor sanırım.Bunun çözümü ne olabilir?Kodun bir parçası:

 while($x < mysql_num_rows($result))
        {   
      $picid=mysql_result($result, $x, 'id');
      $name=mysql_result($result, $x, 'imageName');
      $date=mysql_result($result, $x, 'imageDate');

        echo "<div><img src = 'upload/$name' height='300 width='300' /></div>";
        echo "Name: $name   Date: $date";
        echo "<br/>";
       ?>
       <p>Post a Comment</p>

      <form action="<?= $_SERVER['PHP_SELF']?>" method="POST">
      <textarea name="message" cols="70" rows="6" placeholder="Enter a comment"></textarea><br/><br/>    
      <br/><br/><br/><br/>
      <input type="submit" name="submit" value="Post" style="float:left"><br/><br/><br/>
      </form>
      <!--<textarea name="message" cols="70" rows="6" ></textarea><br/><br/><br/><br/><br/><br/>-->
       <?php

        extract($_REQUEST);
        if (isset($submit)) {
          $y=0;
          $email=$_SESSION['email'];
           $asdf = mysql_query("SELECT * from users WHERE email='$email'");
           //var_dump(mysql_error());
            while( $y<mysql_num_rows($asdf) )
           { 
            $iduser=mysql_result($asdf,$y,'id');
             $y++;
          }

               echo "$iduser";
               $sql ="INSERT INTO messages (id_user, message,picid) VALUES   
                 ('$iduser','$message','$picid');";

               $rslt = mysql_query($sql);

               if ($rslt== false) {
                echo '<p>Error: cannot execute query</p>';
               }

              } ?>
              <?php

      $x++;

    }

soruldu: 23 May '13, 12:13

ipek's gravatar image

ipek
226172025
cevap kabul oranı: 100%

değiştirildi: 24 May '13, 03:58

CemIkta's gravatar image

CemIkta ♦
19.9k29125190

en dıştaki while döngüsünü </form> tagından önce bitirmeniz lazım. formun action'ı bu scriptin kendisine döndüğü için butona bastığınızda da whilde döngüsü çalışıyor ve x kere insert işlemi yapıyor. en sondaki } işaretinin yerini doğru ayarlamalısınız.

(24 May '13, 00:25) ertuncefeoglu ertuncefeoglu's gravatar image

@ertunefeoglu formu whilein içinde yazıp inserti de whileın dışına alınca son alınan picid le kaydediyor hala çözemedim.

(24 May '13, 01:29) ipek ipek's gravatar image

her resmin altındaki form içersinde de hidden bir alanda o resmin picid değerini saklamalısınız. <input type="hidden" name="picid" value="<?php echo $picid ?>"> submit edildiğinde de bu değeri okumalısınız. ($picid = $POST["picid"];) Insert satırından önce bir kısımda bu atamayı yapmanız lazım.

permanent link

cevaplandı: 24 May '13, 06:03

ertuncefeoglu's gravatar image

ertuncefeoglu
7705719
cevap kabul oranı: 20%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×168
×144
×72

Soruldu: 23 May '13, 12:13

Görüntüleme: 1,188 kez

Son güncelleme: 24 May '13, 06:03

powered by BitNami OSQA