no lo habia pensado de esa manera lo probare y te cuento como me fue.... nada mas como comentario la razon de los arreglos que hice con todos eso llenados de arrays y y array_combine y final array merge en efecto fue para ordenar los arrays originales que me entregan arreglos no asociativos en un solo array de arrays que me relacione los arrays $stockname y $cant.
tengo 2 input text a los cuales les puedo insertar varios valores uno es para stockname y otro es para $cant y el par de arrays que me arrojan son:
Array (
- => 4 [1] => 15 [2] => 1 )
Array (
- => lapiz [1] => pluma [2] => borrador )
mientras que el array que la consulta me entrega es un array de arrays asociativo del tipo:
print_r($result2);
resultado:
Array ( [nombre] => borrador [cantidad] => 2.00 )
Array ( [nombre] => lapiz [cantidad] => 3.00 )
Array ( [nombre] => pluma [cantidad] => 6.00 )
esto ya habia intentado resolverlo con foreach y de hecho no he descartado la idea solo que lo quite del ultimo codigo para cuestiones de pruebas con el array que hice con el array_merge
<?php
$result1=mysql_query("SELECT stock_name AS nombre, SUM(quantity) AS cantidad FROM stockut3.stock_sales WHERE '{$_POST['stock_name']}' LIKE '%{$_POST['stock_name']}%' and due='1969-12-31' AND stock_name!='' GROUP BY stock_name");
$stockname=$_POST['stock_name'];
$cant=$_POST['quty'];
$numero=$_POST['numero'];
foreach($stockname as $reingreso ){
foreach($result2 as $nombre=>$articulo){
if($reingreso==$articulo) {
foreach($result2 as $cantidad=>$numero ){
foreach($cant as $recant){
if($numero<$recant){
?>
</form>
<input name="numero1" id="numero1" type="text" class="round my_text_box" value="<?php echo $numero;?>" >
<?php
}}}}}}} ?>
Pero me sucedio que la comparacion de las cantidades del array $cant con su variable iterativa $recant la hacia indiscriminadamente con todos los elementos del campo $cantidad del array $result que seria: $result2['cantidad'] en su variable iterativa $numero lo que provoca que si mas de algun elemento $cantidad del array $result2 resulta ser menor que algun elemento del array $cant sin tomar en cuenta que este ultimo se encuentre o no relacionado con su equivalente de $result2['cantidad'] que se llama $stockname (hay que tomar en cuenta que en este caso en efecto no estan relacionados por ser arrays independientes provenientes de entradas de datos distintas) esto provoca que me muestre en el echo $numero; datos que se interpretan como:
la cantidad de plumas=16 a ingresar es mayor que la cantidad de plumas que se han prestado=6 y tambien es mayor que la cantidad de lapices=4 que se han prestado=3 por supuesto tambien lapices=4 y es mayor que 3 en resumen me daba un salida asi:
6
3
3
esto a todas luces es un error ya que el resultado deberia ser:
6
3
de cualquier manera pondre en practica tu solucion y te comento cualquier duda y de antemano muchisimas gracias por tu tiempo te comento cualquier cosa espero poder contar con tu apreciable ayuda
MOD: Obligatorio usar etiquetas GeSHi.
[Obligatorio] Normas del subforo de PHP.
hola que tal pues con la noticia que ya implemente tu solucion y funciono de maravilla al principio tuve un problema con los resultados:
en la parte que dice
if($value == $result2['name'])
se lo cambie por 'nombre' y quedo asi
foreach($reing2["nombre"] as $key => $value){
if($value == $result2['nombre']){
if($reing2["cantidad"][$key] < $result2["cantidad"]){
$maximo = $result2["cantidad"];
$minimo = $reing2["cantidad"][$key];
} else {
$maximo = $reing2["cantidad"][$key];
$minimo = $result2["cantidad"];
}
}
}
y por cuestiones de arreglos de resultados le agregue lo siguiente:
if($minimo!=$result2["cantidad"]){
}$minimo=$_POST['minimo'];
$maximo=$_POST['maximo'];
por ahora solo tengo el problema de como hacer que dependiendo de la existencia de este dato me permita o no hacer submit para insertar los datos del array de los input text he estado haciendo pruebas y agruegue algo asi como:
if(empty($_POST['minimo'])){ //esto estoy tratando de hacer para evitar que se haga la insercion de datos dependiendo de los resultados de la comparacion en el foreach for($i=0;$i<count($stock_name);$i++)
{
$count = $db->countOf("stock_avail", "name='$stock_name[$i]'");
if($count == 0)
{
$db->query("insert into stock_avail(name,quantity) values('$stock_name[$i]',$quty[$i])");
//echo "<br><font color=green size=+1 >Nueva entrada a Stock registrada!</font>" ;
$db->query("insert into stock_details(stock_id,stock_name,stock_quatity,supplier_id,company_price,selling_price) values('$autoid','$stock_name[$i]',0,'$supplier',$cost[$i],$sell[$i])");
$db->query("INSERT INTO stock_entries(stock_id,stock_name, stock_supplier_name, quantity, company_price, selling_price, opening_stock, closing_stock, date, username, type, total, payment, balance, mode, description, due, subtotal,count1,billnumber) VALUES ( '$autoid1','$stock_name[$i]','$supplier',$quty[$i],$cost[$i],$sell[$i],0,$quty[$i],'$date','$username','reentry',$total[$i],$payment,$balance,'$mode','$description','$due',$subtotal,$i+1,'$bill_no')");
}
else if($count==1)
{
$amount = $db->queryUniqueValue("SELECT quantity FROM stock_avail WHERE name='$stock_name[$i]'");
$amount1 = $amount + $quty[$i];
$db->execute("UPDATE stock_avail SET quantity=$amount1 WHERE name='$stock_name[$i]'");
$db->query("INSERT INTO stock_entries(stock_id,stock_name,stock_supplier_name,quantity,company_price,selling_price,opening_stock,closing_stock,date,username,type,total,payment,balance,mode,description,due,subtotal,count1,billnumber) VALUES ('$autoid1','$stock_name[$i]','$supplier',$quty[$i],$cost[$i],$sell[$i],$amount,$amount1,'$date','$username','reentry',$total[$i],$payment,$balance,'$mode','$description','$due',$subtotal,$i+1,'$bill_no')");
}//corresponde a if(empty($_POST['minimo'])){
}
}
// $msg="Reingreso agregado satisfactoriamente Ref: ". $_POST['stock_name']."" ;
//header("Location: agregar_reingreso.php?msg=$msg");
}
}
En la parte de:
if(empty($_POST['minimo']))
trato de condicionar la ejecucion del insert al estado de la variable $minimo solo que sigue permitiendo la insercion de los datos en la tabla sabes que me podria estar fallando?