Güncelleştirme komut gerekli kimlikleri saklanan (hatta gördüğüm!?) Olmamak (PHP MySQL)

1 Cevap php

Ben gerçekten bu bir yardıma ihtiyacınız ... anlamaya çalışıyorum 3 saat geçirdim ...

Temelde, ben 3 bu fonksiyon çalışması için gerekli tabloları (sorgu ve PHP) ... Yazar, Kitap ve kullanıcılar var.

Bir yazar birçok kitap olabilir, ve bir kullanıcı birçok kitap olabilir - o kadar.

Admin kullanıcı bir kitap güncellemek için seçtiğinde, onlar alanlarında güncel verileri görüntüleyen bir form ile sunulmaktadır, çok yalındır ... Ancak bir zor kısmı var, yönetici kullanıcı bir kitap (örtmek için yazar değiştirebilirsiniz onlar bir hata yapmak) ve aynı zamanda kitap ile ilişkili olduğu için kullanıcıyı değiştirmek.

Ben author_id veya user_id için ne kadar bugüne kadar herhangi bir değer almıyorum tek kitap bilgilerini güncellemek için seçtiğinizde. Bu neden oluyor ben açıkça kullanıcılar için kimliklerini görmek ve çünkü kullanıcı kitap bilgilerini güncellemeleri olduğunda, kullanıcı ve yazar ile dernekler (bir dernek var iken önce) tamamen hurdaya ediliyor, yani ... Ben göremiyorum kaynak kodu içinde benim seçenek değerleri için yazarlar (bunlar seçme dropdowns vardır çünkü bu). Burada kullanıcı kimliğini almak için benim sql budur:

Kullanıcılar DAN User_id, adını SEÇİMİ

ve sonra ben sistemdeki tüm kullanıcıları getirir benim seçin seçeneğiniz var:

<label>This book belongs to:</label> <select name="name" id="name">
<option value="<?php echo $row['user_id']?>" SELECTED><?php echo $row['name']?> - Current</option>

         <?php   
              while($row = mysql_fetch_array($result))
        { ?>                        <option value="<?php echo $row['user_id']; if (isset($_POST['user_id']));?>"><?php echo $row['name']?></option>
<?php } ?>

Sunulan HTML biçiminde, ben kullanıcıların (adını) seçebilirsiniz ve kaynak kodu içinde ben kullanıcıların adlarla eşleşen (değer) kimlikleri görebilirsiniz.

Son olarak, güncelleştirme gerçekleştirir benim komut, ben bu var:

$book_id = $_POST['book_id'];
    $bookname = $_POST['bookname'];
    $booklevel = $_POST['booklevel'];

    $author_id = $_POST['author_id'];
    $user_id = $_POST['user_id'];


    $sql = "UPDATE books SET bookname= '".$bookname."', booklevel= '".$booklevel."', author_id='".$author_id."', user_id= '".$user_id."' WHERE book_id = ".$book_id; 

Bu sorgunun sonucu ... Açıkçası bu soruya ben (HTML görüntülenen) ile kullanıcı şeyler için bilgi verdik author_id veya user_id ya için hiçbir değer verir ama lutfen yazarları ile aynı sorun var tahmin im .. . değişiklik kabul böylece nasıl komut geçirilen bu kimlik numarası alabilirsiniz! (

1 Cevap

Kullanıcı kimliği adı "isim" ile bir eleman olarak form tarafından yayınlanmıştır ediliyor sanki görünüyor, bu yüzden PHP okumak gerekir:

$ User_id = $ _POST ['isim'];

Yazar kimliği ve diğer değişkenler tüm formunda belirtilmesi görünmüyor, bu yüzden PHP size boş değerler verecektir.

Eğer hata raporlama bildirimler açarsanız bildirilmemiş bir dizi elemanı erişmeye çalışırsanız o zaman PHP size söyleyecektir.