Okie dokie. Посмотрим, смогу ли я объяснить себя правильно. В двух отдельных строках моей базы данных, у меня есть данные, что выглядит следующим образом:Как удалить определенную часть массива?
row1 (labeled "claimed") = Item1, Item2, Item3, Item4
row2 (labeled ctype) = Thing1, Thing2, Thing3, Thing4
Я задрал данные, чтобы они группироваться вместе, как так:
Item1, Thing1
Item2, Thing2...
, используя этот код:
<?php
$select=mysqli_query($connect, "SELECT * FROM `$table_members` WHERE email='$_SESSION[USR_LOGIN]'");
while($row1=mysqli_fetch_assoc($select)) {
$name1=$row1['name'];
$claim = $row1['claimed'];
$type1 = $row1['ctype'];
if ($claim != 'None') {
$type2 = explode(', ', $type1);
$decks = explode(', ', $claim);
echo "<table id=\"memtable\"><tr><th>Name</th><th>Claimed</th><th>Type</th></tr>";
foreach(array_combine($decks, $type2) as $deck => $type3){
echo "<tr><td>";
echo "$name1</td><td>";
echo "$deck</td><td>";
echo "$type3</td><td>";
}
}
}
?>
Проблема в том, что после того, как участник отправит форму, я хочу УДАЛИТЬ пункт и вещь из базы данных на основе их представления. Так, например, у меня есть раскрывающийся список
-Item1
-Item2...
Они выбирают Item2 и представляют форму. Теперь я только хочу, чтобы удалить ITEM2 и Thing2 из моей базы данных, так что теперь строки будут выглядеть следующим образом:
row1 (labeled "claimed") = Item1, Item3, Item4
row2 (labeled ctype) = Thing1, Thing3, Thing4
Я не могу показаться, чтобы выяснить, как код так, что только один конкретный экземпляр будет удален , Я предполагаю, что это что-то вроде следующего:
foreach(array_combine($decks, $type2) as $deck => $type3){
$gone = "DELETE FROM `$table_members` WHERE claimed='$deck' AND ctype='$type3'";
mysqli_query($connect, $gone);
}
ETA: Я нашел решение! Для тех, кто ищет тот же тип вещей, вот что я сделал:
$remove = $_POST['remove;']
$select1=mysqli_query($connect, "SELECT * FROM `$table_members` WHERE email='$_SESSION[USR_LOGIN]'");
while($row1=mysqli_fetch_assoc($select1)) {
$claim = $row1['claimed'];
$type1 = $row1['ctype'];
}
$type2 = explode(', ', $type1);
$decks = explode(', ', $claim);
for($i=0;$i<count($decks);$i++){
if($decks[$i]===$remove){unset($decks[$i]); unset($type2[$i]);}
}
$decks = implode(', ',$decks);
$type2 = implode(', ',$type2);
$gone = "UPDATE `$table_members` set claimed='$decks', ctype='$type2' where email='$_SESSION[USR_LOGIN]'";
mysqli_query($connect, $gone);
Вы действительно хотите нормализовать свои данные. –
Извините, я действительно не знал, как еще объяснить это. –