İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. SDN Programlama Kafe
SDN Programlama Kafe

Yetkilendirme Yardım

banderias24.12.20105 cevap1.555 görüntüleme
2010'den beri4 mesaj
#1
umarım problemimi anlatmayı başarabilirim.

yaptığım stok takip sisteminde farklı depolara farklı kullanıcılar atamak istiyorum. ama bir depo için bir çok kullanıcı yetkilendirmek ve bir kullanıcının da bir çok depo için yetkili olmasını istiyorum.

öncelikle benim yapmaya çalıştığım ve çalıştıramadığım kodları aktarayım. umarım nerede hata yaptığım söyleyen birileri çıkar.

şimdi, üç farklı kullanıcım ve üç farklı depom var.

veri tabanım şu şekilde






bundan sonra yetki diye bir tablo oluşturdum



sonraki işlemlerim ise şu şekilde

$sorguyetki = mysql_query("SELECT * FROM yetki uyeid = $uyeid"); 
while ($sorguyetki = mysql_fetch_array($sorguyetki)) {
$depoid = $sorguyetki["depoid"];
}

burada sistemdeki kullanıcıların görebileceği depoların depoid'sini alıyorum.

sonra;



$sorgu = mysql_query("SELECT * FROM depo where depoid = $depoid"); 
while ($ysorgu = mysql_fetch_array($sorgu)) {
$id =$ysorgu["id"];
$depo =$ysorgu["depo"]; 
echo "$depo";}


burada da yetki tablosundan aldığım depoid'lerini depo tablosundan çekip depo ismini göstermek istiyorum.

bu şekilde yaptığımda eğer yetki tablosunda o kullanıcı için br kayıt varsa sorun olmuyor, ama birden çok depo için yetki verirsem sadece bir tanesi görünüyor.

bu sorunumu çözebilecek biri olursa çok sevinirim. çünkü 2-3 gündür bununla uğraşıyorum.

şimdiden teşekkürler...
Cevaplar
2009'den beri149 mesaj
#2
$sorguyetki = mysql_query("SELECT * FROM yetki uyeid = $uyeid");
while (
$sorguyetki = mysql_fetch_array($sorguyetki)) {
$depoid = $sorguyetki["depoid"];

// Burada $depoid değişkenini dizi değişken olarak kullanmalısın.//
}

Daha sonra dizi değişkenin eleman sayısı kadar döngü kurdurup aşağıdaki kodlarını işletmen gerekir. Takiki Her döngüde SQL ifaden yani $depoid değişecek. Yukarıki dizinin elemanlarından gelecek tek tek.

$sorgu = mysql_query("SELECT * FROM depo where depoid = $depoid");
while (
$ysorgu = mysql_fetch_array($sorgu)) {
$id =$ysorgu["id"];
$depo =$ysorgu["depo"];
echo
"$depo";}




---------- Post added at 16:02 ---------- Previous post was at 15:58 ----------

$sayi=0;

$sorguyetki
= mysql_query("SELECT * FROM yetki uyeid = $uyeid");
while (
$sorguyetki = mysql_fetch_array($sorguyetki))
{
$sayi++;
$depoid[sayi] = $sorguyetki["depoid"];
}

For $i=0;$i<$sayi;$i++)
{
$sorgu = mysql_query("SELECT * FROM depo where depoid =". $depoid[$i]);
while (
$ysorgu = mysql_fetch_array($sorgu)) {
$id =$ysorgu["id"];
$depo =$ysorgu["depo"];
echo
"$depo";
}
}

Bu şekilde düşündüm...




}

banderias Konuyu açan
2010'den beri4 mesaj
#3
yardımın için teşekkürler kardeş. mantık doğru sanırım ama ben yine çalıştıramadım. tekrar bi gözden geçirirsen sevinirim...

bu arada yine tek kayıt gösteriyor...
2009'den beri149 mesaj
#4
For $i=1;$i<=$sayi;$i++) //Döngü ifadesindeki sayacın başlangıç değerini ve bitişini böyle yap birde.. çünkü dizinin ilk inidisi 1 yapmıştık yukarda 0 dan başlatmışısz :)

{
$sorgu = mysql_query("SELECT * FROM depo where depoid =". $depoid[$i]);

banderias Konuyu açan
2010'den beri4 mesaj
#5
kardeşim çok teşekkürler. bu şekilde çalıştı :)

bi de bu kod hakkında yine. bu kod için limit nasıl ekleyebiliriz...
örneğin sayfalama için kullandığım kodlar şu şekilde...
$sayfa = $_GET['sayfa'] ? $_GET['sayfa'] : 0;  
$sayfabasi=30;  
$sorgu=mysql_query("SELECT * FROM `stok`); 
$toplam=mysql_num_rows($sorgu);
$kacsayfa=ceil($toplam/$sayfabasi);
$basla=$sayfa*$sayfabasi;


sayfalama yaparkende;

$bilgi = mysql_query("SELECT * FROM `stok` ORDER BY `urunid` ASC limit $basla, $sayfabasi");
while($satir = mysql_fetch_array($bilgi))


sonra da en altta;

for ($i=0;$i<$kacsayfa;$i++) { 
if ($sayfa == $i) 
echo "[<b>".$i."</b>]";
else
echo "&nbsp;<a href=malzeme-listeleme.php?sayfa=".$i.">".$i."</a>&nbsp;";
    } 


bu stok listeleme sayfasında da aynı şekilde sadece yetkili oldukları depoların stoklarını görsünler istiyorum. aynı şekilde yaptım bi problem de yok ancak. stok adeti fazla olduğu için sayfalam yapmam gerek. sayfalama içinde limit eklemem lazım.

bu sorunumu da çözdüm. tekrar teşekkürler.

bu arada çok büyük bi eksikliğimi buldum burada. anlaşılan yeterince uğraşmadan yardım istiyorum. bu ilk yardımdan sonra fazla kolaya kaçmaya başladım heralde. bundan sonra son çare olarak yardım istemeye çalışıcam :)
banderias Konuyu açan
2010'den beri4 mesaj
#6
bu konu hakkında bir yardım daha almam gerekti. bu defa checkbox'la ilgili.

yetkilendirme yaparken checkbox kullanmayı düşündüm.

checkbox kodum şu şekilde;
<input name="depoyetki[]" type="checkbox" value="<? echo "$depoid";?>" <? if ($yetkiara >= 1) {echo "checked=\"checked\"";}?> />


ekleme yapmak için de şöyle düşündüm;


$yetkiver = implode(",",$_POST['depoyetki']);
 
$yetkisil  =    mysql_query("DELETE FROM yetki WHERE kullaniciid = $kullaniciid");
$yetkiekle = mysql_query("INSERT INTO yetki (depoid, kullaniciid)
VALUES ('$yetkiver','$kullaniciid')");
 
$yetkisilson  =    mysql_query("DELETE FROM yetki WHERE depoid = '0'");


önce kullanıcıya ait tüm yetkileri siliyorum. ardından seçili olanları ekliyorum.
ama yine bir sorunla karşılaştım. aynı şekilde seçili olanların tümünü değil de sadece birini kaydediyor.

bunu nasıl çözebilirim. yine yardım ederseniz çok sevinirim.

---------- Post added at 11:51 ---------- Previous post was at 10:50 ----------

arkadaşlar teşekkürler. sorunumu çözdüm. yardımı olur diye buraya da eklemek istedim.

<input name="yetkiverme[]" type="checkbox" value="<? echo "$depoid";?>" <? if ($yetkiara >= 1) {echo "checked=\"checked\"";}?> />


bu checkbox kodumuz.

$kayit  =    mysql_query("DELETE FROM yetki WHERE kullaniciid = $kullaniciid");
 
foreach($_POST['yetkiverme'] as $yetkiver){
$kayit = mysql_query("INSERT INTO yetki (depoid, kullaniciid)
VALUES ('$yetkiver','$kullaniciid')");
}


bu da veri tabanına eklemek için kullandığımız kod.

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.