PHP - can't delete mysqli values in the way I want -
sorry ambiguous title, don't know how else name this. need delete specific values in specific quantities database. have table numbers. looks this
1,2(1),3,4,5(6),6(3),7(2),8,9(4),10
the numbers in brackets represent how many times base number found in mysqli database. form lets me select multiple duplicate numbers , how many duplicates of number want delete. example have selected:
2(1),5(4),9(2)
this code gives me values imperfect because receive numbers have @ least 1 duplicate in database , empty values there no number selected , normal numbers when it's selected.
<input type="number" name="quantity[]" id="quantity" min="0" max='<?php echo "$count[$item]"?>' /> input type="hidden" name="hidden[]" id="hidden" value='<?php echo "$item" ?>' />
my thought process needed build code knew number selected amount of times selected. wanted make associative array 2 values supposed receive. works, gives me information, can't make delete selected items number of times want, deletes existing duplicates of selected items.
$arr1 = array(); $arr2 = array(); $newassoc = array(); if( isset( $_post['submit'] ) ) { $quantity = $_post['quantity']; $hidden = $_post['hidden']; foreach( $hidden $var1 ) { $arr1[] = $var1; } foreach( $quantity $var2 ) { $arr2[] = $var2; } $newassoc = array_combine( $arr1, $arr2 ); foreach( $newassoc $key => $val ) { if( !empty($val)) { $i = 1; while( $i <= $val ) { $delete = mysqli_query( $db, "delete duplicates numbers=$key" ); ++$i; } } } }
i've tried quite few things , i'm in bit of pickle because nothing worked , i'm out of ideas.
expected result: repeat myself, need delete specific values in specific quantities database.
sorry wall of text , horrendous code/coding practice/coding logic, still bit new both coding , stackoverflow.
thank riggsfolly, answer has fixed problems. if has interesting add don't mind. thank !
this portion of code changed in order expected result fullfiled, if needs it:
foreach( $newassoc $key => $val ) { if( !empty($val)) { $delete = mysqli_query( $db, "delete duplicates numbers=$key limit $val" ); }
on single tables, can limit number of rows deleted using limit
.
your query delete table key=value limit 10
. see the official documentation of mysql.
Comments
Post a Comment