• 30-08-2014, 10:59:34
    #1
    Merhaba arkadaşlar
    Php'de toplu güncelleme yapmak istiyorum fakat bir türlü beceremedim
    Bu tablodaki verileri
    Textarea'ya çektiriyorum

    Bunları toplu olarak nasıl güncelleyebilirim tek tek yapabiliyorum ama toplu güncelleyemiyorum.

    Yardımcı olursanız sevinirim.
  • 30-08-2014, 11:49:37
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    hocam tam anlayamadım, tüm satırları textarea'ya çektikten sonra istediklerinizi textarea üzerinde güncelleyip/değiştirip, veritabanına toplu şekilde geri göndermek mi istiyorsunuz ?
  • 30-08-2014, 12:00:57
    #3
    burhangullu adlı üyeden alıntı: mesajı görüntüle
    hocam tam anlayamadım, tüm satırları textarea'ya çektikten sonra istediklerinizi textarea üzerinde güncelleyip/değiştirip, veritabanına toplu şekilde geri göndermek mi istiyorsunuz ?
    Aynen öyle hocam
  • 30-08-2014, 12:23:49
    #4
    Tek tek güncellemeniz daha sağlıklı olacaktır ama illaki textarea içinde güncelleyeceğim diyorsanız bu şekilde yapmanız gerekmektedir.

    /*
     * Bir işlem değeri göndermeniz gerekiyor ..
     * Hangi değer hangi satıra ait onu bilmeden güncelleme işlemi yapmanız olanaksız ya tek tek yapacaksınız
     * yada bu şekilde güncelleme işlemi yapabilirsiniz.
    */
    $_data = array
    (
    	1 => 'milliyet.com',
    	2 => 'r10.net',
    	3 => 'mynet.com',
    	4 => 'google.com'
    );
    if( $_POST )
    {
    	if( $content = trim($_POST['content']) )
    	{
    		$content = explode("\n" , $content );
    		if( is_array($content) && count($content) > 0 )
    		{
    			echo '<pre>';
    			echo "Update " . PHP_EOL;
    			foreach( $content as $value )
    			{
    				$value = array_map('trim' , explode('-' , $value ));
    				
    				if( isset($value[0]) && is_numeric($value[0]) )
    				{
    					// Güncelleme sorgusu
    					echo "id = '$value[0]' , name = '$value[1]'\n";
    				}
    			}
    			echo '</pre>';
    		}
    	}
    }
    ?>
    <form action="" method="post">
    <textarea name="content" id="" cols="30" rows="10"><?php foreach( $_data as $k => $v ) echo $k . ' - '. trim($v).PHP_EOL; ?></textarea>
    <br />
    <input type="submit" value="send"/>
    </form>
    Çıktı ;
  • 30-08-2014, 13:40:43
    #5
    sesusera adlı üyeden alıntı: mesajı görüntüle
    Tek tek güncellemeniz daha sağlıklı olacaktır ama illaki textarea içinde güncelleyeceğim diyorsanız bu şekilde yapmanız gerekmektedir.

    /*
     * Bir işlem değeri göndermeniz gerekiyor ..
     * Hangi değer hangi satıra ait onu bilmeden güncelleme işlemi yapmanız olanaksız ya tek tek yapacaksınız
     * yada bu şekilde güncelleme işlemi yapabilirsiniz.
    */
    $_data = array
    (
    	1 => 'milliyet.com',
    	2 => 'r10.net',
    	3 => 'mynet.com',
    	4 => 'google.com'
    );
    if( $_POST )
    {
    	if( $content = trim($_POST['content']) )
    	{
    		$content = explode("\n" , $content );
    		if( is_array($content) && count($content) > 0 )
    		{
    			echo '<pre>';
    			echo "Update " . PHP_EOL;
    			foreach( $content as $value )
    			{
    				$value = array_map('trim' , explode('-' , $value ));
    				
    				if( isset($value[0]) && is_numeric($value[0]) )
    				{
    					// Güncelleme sorgusu
    					echo "id = '$value[0]' , name = '$value[1]'\n";
    				}
    			}
    			echo '</pre>';
    		}
    	}
    }
    ?>
    <form action="" method="post">
    <textarea name="content" id="" cols="30" rows="10"><?php foreach( $_data as $k => $v ) echo $k . ' - '. trim($v).PHP_EOL; ?></textarea>
    <br />
    <input type="submit" value="send"/>
    </form>
    Çıktı ;
    <?
    /*
     * Bir işlem değeri göndermeniz gerekiyor ..
     * Hangi değer hangi satıra ait onu bilmeden güncelleme işlemi yapmanız olanaksız ya tek tek yapacaksınız
     * yada bu şekilde güncelleme işlemi yapabilirsiniz.
    */
    $_data = array
    (
    );
    $sorq = mysql_query("SELECT * FROM ping ORDER BY id ASC");
    while ($sor = mysql_fetch_array($sorq, MYSQL_ASSOC)){
    $_data[]=$sor["url"];
    
    }  
    if( $_POST )
    {
       if( $content = trim($_POST['content']) )
       {
          $content = explode("\n" , $content );
          if( is_array($content) && count($content) > 0 )
          {
             echo '<pre>';
             echo "Update " . PHP_EOL;
             foreach( $content as $value )
             {
                $value = array_map('trim' , explode('-' , $value ));
                 
                if( isset($value[0]) && is_numeric($value[0]) )
                {
                   // Güncelleme sorgusu
                   echo "id = '$value[0]' , name = '$value[1]'\n";
                }
             }
             echo '</pre>';
          }
       }
    }
    ?>
    Hocam bu şekilde mysql dan verileri aldım bir türlü id çekemedim
  • 30-08-2014, 20:20:40
    #6
    textarea içine verileri yazdırırken yani mysql_fetch_array|assoc ne kullanıyorsanız orada
    $i=0;
    while($row = mysql_fetch_assoc($sql)){
    $sira[$i] = $row['id'];
    //..... işlemleriniz
    $i++;
    }

    yaparak bir sira array'i tanımlayın ve o array'i oluşan textarea'da düzenleme yaptıktan sonra post ederken gönderin. işlem yapacağınız sayfada post olan textarea'yı \n 'lerden explode edip satır başına $sira id'lerini referans alarak update ettirin.

    bu okul ödevi gibi bir soru olmuş. neden böyle uzun bir yol ile güncelleme yapmayı deniyorsunuz anlayamadım ben de bazen inat ederim inat ettiğinizi varsayarak aklıma gelen kolay bi algoritmayı paylaştım umarım faydası dokunur.