PHP &

2 Cevap php

Tamam benim komut dosyası 2 MySQL tablolarında saklanan ancak kullanıcı özel bir durum siler zaman nedense ben sadece kullanıcının seçtiği davayı silmek istediğiniz tüm kullanıcılar durumlarda siler belirli kullanıcıların davayı silmek gerekiyordu. Ben bu sorunu nasıl düzeltebilirim merak ediyorum? Yardım için şimdiden teşekkürler.

Burada PHP & olduğunu MySQL kodu.

if(isset($_POST['delete_case'])) {

$cases_ids = array();

$mysqli = mysqli_connect("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT cases.*, users_cases.* FROM cases INNER JOIN users_cases ON users_cases.cases_id = cases.id WHERE users_cases.user_id='$user_id'");

if (!$dbc) {
    print mysqli_error($mysqli);
}  else {
    while($row = mysqli_fetch_array($dbc)){ 
        $cases_ids[] = $row["cases_id"];
    }
}

foreach($_POST['delete_id'] as $di) {
    if(in_array($di, $cases_ids)) {
        $mysqli = mysqli_connect("localhost", "root", "", "sitename");
        $dbc = mysqli_query($mysqli,"DELETE FROM users_cases WHERE cases_id = '$di'");

        $dbc2 = mysqli_query($mysqli,"DELETE FROM cases WHERE id = '$di'");
    }

}

}

İşte XHTML kodudur.

<li>
<input type="text" name="file[]" size="25" />
<input type="text" name="case[]" size="25" />
<input type="text" name="name[]" size="25" />
<input type="submit" name="delete_case" id="delete_case" value="Delete Case" />
<input type="hidden" name="delete_id[]" value="' . $row['cases_id'] . '" />
</li>

<li>
<input type="text" name="file[]" size="25" />
<input type="text" name="case[]" size="25" />
<input type="text" name="name[]" size="25" />
<input type="submit" name="delete_case" id="delete_case" value="Delete Case" />
<input type="hidden" name="delete_id[]" value="' . $row['cases_id'] . '" /> 
</li>

<li>
<input type="text" name="file[]" size="25" />
<input type="text" name="case[]" size="25" />
<input type="text" name="name[]" size="25" />
<input type="submit" name="delete_case" id="delete_case" value="Delete Case" />
<input type="hidden" name="delete_id[]" value="' . $row['cases_id'] . '" /> 
</li>

Burada MySQL tablo olduğunu.

CREATE TABLE cases (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
file VARCHAR(255) NOT NULL,
case VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE users_cases (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
cases_id INT UNSIGNED NOT NULL,
user_id INT UNSIGNED NOT NULL,
PRIMARY KEY (id)
);

2 Cevap

Tüm bu HTML aynı formda bulunduğu için ilk bakışta muhtemelen. Yani, ne olursa olsun tıklayın hangi Delete Case düğmesi, delete_id[] gizli alanların her biri sunucuya teslim olacak.

Yani gibi kendi forma her satır ayırmak gerekiyordu ...

<li>
<form method="POST" action="someURL.php">
<input type="text" name="file[]" size="25" />
<input type="text" name="case[]" size="25" />
<input type="text" name="name[]" size="25" />
<input type="submit" name="delete_case" id="delete_case" value="Delete Case" />
<input type="hidden" name="delete_id[]" value="' . $row['cases_id'] . '" />
</form>
</li>

veya başka bir şey için sadece düz Button Submit düğmeleri değişen ve bazı javascript ekleme gibi ...

Tüm vakaların id kullanıcı bir davayı seçtiğinde bile geçirilen çünkü bu olabilir ....

Aşağıdaki kullanıcı tarafından seçilen sadece değerlerini almak için işe yarayabilir ...

  1. Eşsiz kimliği ile her li ile bir onay kutusu ilişkilendirme
  2. Kullanıcı o silmek istediği durumlarda onay kutusunu seçelim
  3. Ne zaman kullanıcı presler 'Sil' falan, onay kutusu işaretli olduğu için olguların id toplamak için javascript kullanmak ...
  4. Ardından bir sonraki sayfada bu kimlikleri teslim ....