Php ve Checkbox Sorunu

msbeden

Hectopat
Katılım
4 Ekim 2014
Mesajlar
10
Daha fazla  
Cinsiyet
Erkek
Merhaba arkadaşlar php ve mysql ile haşır neşir olanınız var ise bana yardımcı olabilir misiniz?

Sorun şu : Yoklama sistemi yapıyorum tablomda yoklamaya gelmeyenler diye bir sütun var. Buraya checkbox işaretli olanları aralarında virgül ile ayırarak veritabanındaki ilgili satıra girdi yaptırmam, nasıl yapabilirim bir fikri olan var mı?


Veya farklı bir sistem var mı düşündüğünüz ?
 
Senin istediğin tam olarak şöyle birşey mi?

Screenshot_1.png


Burada seçtiğin kişilerin mysql'de ki ilgili alanına veri eklemesini mi istiyorsun?
Mesela tablo da mevcut bir stun var yoklama adında burada da kaç defa yoklamaya gelmediği yazıyo sen bu listeden seçip göndere basınca mevcut sayıyı 1 arttıracak?

Eğer böyle birşeyse şöyle yapabilirsin;
listedeki checkbox'ların 'name="" ' kısmını array'e alman lazım onun için de 'name="sec[]" ' gibi yazarak array'e almış olursun daha sonra seçtiğin kişileri güncelleme sayfasına atarak id leri ile mysql'de bulunan mevcut verileri çekip +1 yaparak tekrar güncellersin.

Yaptığım kodlamanın çalışır hali: Technopat.Net - İstek Checkbox ile Veri Ekleme

Örnek dosyalar (dosyaların hepsi aynı dizinde olmalıdır.)

bagla.php
PHP:
<?php
error_reporting(E_ALL ^ E_NOTICE);

$db_host  = "localhost";
$db_kadi  = "root";
$db_sifre = "";
$db_vt    = "yoklama";

$db_bagla = mysql_connect ($db_host,$db_kadi,$db_sifre) or die (mysql_error());
$db_sec = mysql_select_db($db_vt,$db_bagla) or die (mysql_error());

mysql_query("SET NAMES UTF8");
header('Content-Type: text/html; charset=utf-8');
?>

index.php
PHP:
<?php require_once('bagla.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Technopat.Net</title>
</head>
<style>
@charset "utf-8";
body { margin:0;}
.tablo {
    border: medium ridge #006; margin:15px 0 0 15px;
}
.tablo-ic {
    border: thin dotted #006;
}
.gonder { border: thin solid #000; background-color:#ccc; font-weight:bold; margin-top:15px; margin-left:20px; }
</style>
<body>
<form id="form1" name="form1" method="post" action="yoklama-gonder.php">
  <table class="tablo">
    <thead>
      <tr>
        <th style="display:none;">ID</th>
        <th></th>
        <th class="tablo-ic">Üye No</th>
        <th class="tablo-ic">Adı Soyadı</th>
        <th class="tablo-ic">T.C. Numarası</th>
        <th class="tablo-ic">Yoklama</th>
      </tr>
    </thead>
    <tbody>
      <?php

$calistir = mysql_query("select * from kisiler order by uyeno ASC") or die("Hata Olustu!");

    while($oku=mysql_fetch_assoc($calistir))
  {
  ?>
      <tr>
        <td style="display:none;"></td>
        <td class="tablo-ic"><input type="checkbox" name="sec[]" value="<?PHP echo $oku['id']; ?>" /></td>
        <td class="tablo-ic"><center>
          <?PHP echo $oku['uyeno']; ?>
        </center></td>
        <td class="tablo-ic"><?PHP echo $oku['adisoyadi']; ?></td>
        <td class="tablo-ic"><center>
          <?PHP echo $oku['tc']; ?>
        </center></td>
        <td class="tablo-ic"><center>
          <?PHP echo $oku['yoklama']; ?>
        </center></td>
      </tr>
      <?PHP } ?>
    </tbody>
  </table>
  <input type="submit" value="Gönder." name="gonder" class="gonder" />
</form>

</body>
</html>


yoklama-gonder.php
PHP:
<?php require_once('bagla.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Technopat.Net</title>
</head>

<body>
<?php

if (isset($_POST['gonder'])){
    if (isset($_POST['sec'])){
    $kisiler = $_POST['sec'];
    $kisiler = implode(',',$kisiler);
mysql_select_db($database_bagla, $db_bagla);
$query_uyelistele = sprintf("SELECT * FROM kisiler WHERE id IN ($kisiler)");
$uyelistele = mysql_query($query_uyelistele, $db_bagla) or die(mysql_error());
$row_uyelistele = mysql_fetch_assoc($uyelistele);
    }else {echo '<script> alert ("Enaz 1 Üye Seçmeniz Gerekmekte.")</script> <meta http-equiv="refresh" content="0;URL=index.php" />'; exit;}
} else {echo '<script> alert ("Lütfen Üye Seçip EkinTıp Gönder Butonuna Tıklayınız.")</script> <meta http-equiv="refresh" content="0;URL=index.php" />'; exit;}
?>

<?php if(isset($_POST['sec'])){ ?>
<?php do {

$Komut = mysql_query("update kisiler set yoklama=$row_uyelistele[yoklama]+1 where  id=$row_uyelistele[id]") or die(mysql_error());

if ($Komut){
    echo '<meta http-equiv="refresh" content="0;URL=index.php" />';
    } else {echo '<script> alert ("Yoklama arttırma işlemi sırasında bir hata meydana geldi tekrar deneyiniz..")</script> <meta http-equiv="refresh" content="0;URL=index.php" />'; exit;}

} while ($row_uyelistele = mysql_fetch_assoc($uyelistele)); ?><?php } else {echo "";} ?>



</body>
</html>

mysql yedek dosyası(bu verileri bir metin belgesine atıp uzantısını .sql olarak değiştir ve phpmyadmin'de içe aktar ile ekle)

Kod:
-- phpMyAdmin SQL Dump
-- version 4.1.13
-- http://www.phpmyadmin.net
--
-- Anamakine: 127.0.0.1
-- Üretim Zamanı: 16 Kas 2014, 17:10:00
-- Sunucu sürümü: 5.5.27
-- PHP Sürümü: 5.4.7

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Veritabanı: `yoklama`
--

-- --------------------------------------------------------

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

CREATE TABLE IF NOT EXISTS `kisiler` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uyeno` int(111) DEFAULT NULL,
  `adisoyadi` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `tc` bigint(255) DEFAULT NULL,
  `yoklama` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=6 ;

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

INSERT INTO `kisiler` (`id`, `uyeno`, `adisoyadi`, `tc`, `yoklama`) VALUES
(1, 10, 'ALPER PALO', 11111111111, '7'),
(2, 15, 'AHMET SEVER', 22222222222, '8'),
(3, 20, 'ALİ AT', 33333333333, '6'),
(4, 30, 'AYŞE ALİ', 44444444444, '3'),
(5, 45, 'ASLI GÜL', 55555555555, '3');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 
Uyarı! Bu konu 11 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı