PHP | Mysql Çoklu Veri Güncellemesi

Merhaba arkadaşlar. Php kullanarak nasıl mysql'de çoklu veri güncellemesi yapabiliriz?

Aşağıdaki örnekte ID'sine göre uyeleri çoklu olarak güncellemek istiyorum. Bunu nasıl yapabiliriz?


uyeler.sql

--
-- Tablo için tablo yapısı `uyeler`
--

CREATE TABLE IF NOT EXISTS `uyeler` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uye_adi` varchar(100) COLLATE utf8mb4_turkish_ci NOT NULL,
  `uye_sifre` varchar(100) COLLATE utf8mb4_turkish_ci NOT NULL,
  `uye_mail` varchar(100) COLLATE utf8mb4_turkish_ci NOT NULL,
  `uye_rutbe` int(11) NOT NULL,
  `uye_durum` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci AUTO_INCREMENT=5 ;

--
-- Tablo döküm verisi `uyeler`
--

INSERT INTO `uyeler` (`id`, `uye_adi`, `uye_sifre`, `uye_mail`, `uye_rutbe`, `uye_durum`) VALUES
(1, 'Abdullah', '123456', 'abdullah@localhost.com', 1, 1),
(2, 'Mehmet', '12345', 'mehmet@localhost.com', 4, 1),
(3, 'Hakan', '12345', 'hakan@localhost.com', 4, 1),
(4, 'Oğuzhan', '123457', 'oğuzhan@localhost.com', 4, 1);

ayar.php

<?php
	## Hataları Gizle ##
	error_reporting(1);

	## Host Bilgileri ##
	$host		= "localhost";
	$user		= "root";
	$password 	= "";
	$database	= "multiupdate";

	## Mysql Bağlantısı ##
	$baglan = mysql_connect($host, $user, $password) or die ("Mysql Bağlantısı Sağlanamadı!<br>".mysql_error());

	## Veritabanı Seçimi ##
	$sec 	= mysql_select_db($database, $baglan) or die ("Veritabanı Bağlantısı Sağlanamadı!<br>".mysql_error());

	## Karakter Seti ##
	mysql_query("SET CHARACTER SET utf8");
	mysql_query("SET NAMES utf8");
	mysql_set_charset("utf8", $baglan);
?>

index.php

<?php
include("ayar.php");

$cek = mysql_query("SELECT * FROM uyeler");
echo '<form action="sonuc.php" method="post">
<table>
  <tr>
      <td>Üye ID</td><td>Üye Adı</td><td>Üye Şifre</td><td>Üye Mail</td><td>Üye Rutbe</td><td>Üye Durum</td>
  </tr>';
while($yaz = mysql_fetch_array($cek)){
echo '<tr>
  <td>
      <input type="text" name="id" value="'.$yaz["id"].'">
  </td>
  <td>
      <input type="text" name="uye_adi" value="'.$yaz["uye_adi"].'">
  </td>
  <td>
      <input type="text" name="uye_sifre" value="'.$yaz["uye_sifre"].'">
  </td>
  <td>
      <input type="text" name="uye_mail" value="'.$yaz["uye_mail"].'">
  </td>
  <td>
      <input type="text" name="uye_rutbe" value="'.$yaz["uye_rutbe"].'">
  </td>
  <td>
      <input type="text" name="uye_durum" value="'.$yaz["uye_durum"].'">
  </td>
</tr>';
}
echo '</table>
   <input type="submit" name="guncelle" value="Güncelle">
</form>';
?>

sonuc.php

<?php

$uye_id 	= $_POST["id"];
$uye_adi 	= $_POST["uye_adi"];
$uye_sifre 	= $_POST["uye_sifre"];
$uye_mail 	= $_POST["uye_mail"];
$uye_rutbe 	= $_POST["uye_rutbe"];
$uye_durum 	= $_POST["uye_durum"];

echo '<table border="1" cellspacing="0" cellpadding="5"> 
  <tr>
     <td>Üye ID</td>
     <td>Üye Adı</td>
     <td>Üye Şifre</td>
     <td>Üye Mail</td>
     <td>Üye Rutbe</td>
     <td>Üye Durum</td>
</tr>
		
  <tr>
	<td>'.$uye_id.'</td>
	<td>'.$uye_adi.'</td>
	<td>'.$uye_sifre.'</td>
	<td>'.$uye_mail.'</td>
	<td>'.$uye_rutbe.'</td>
	<td>'.$uye_durum.'</td>
  </tr>
</table>';

?>

 

Öncelikle formundaki inputların name alanını id[] , uye_adi[] .. şeklinde ayarlamalısın çünkü post edildiği sırada birden çok veri için name bilgisini tutacağı için dizi olması gerekiyor. Daha sonra for ile aldığın veri kadar update işlemini şu şekilde yapabilirsin.

$Id = $_POST["id"]; 
$UserName = $_POST["uye_adi"]; 

for ($i=0; $i < count($Id); $i++)
{ 
 $update = mysql_query("UPDATE user SET uye_adi = '$UserName[$i]' WHERE id = '$Id[$i]' ");
} 

 

Teşekkür ederim.

Cevap Yaz

Cevap yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git