Foros del Web » Programando para Internet » PHP »

tengo problemas para grabar me envia un solo reguistro

Estas en el tema de tengo problemas para grabar me envia un solo reguistro en el foro de PHP en Foros del Web. el problema esque no me esta grabando todo los reguistro que le cargo Este es el formularo de ingreso Código PHP: <?php session_start (); ?> ...
  #1 (permalink)  
Antiguo 11/03/2009, 10:45
Avatar de a83
a83
 
Fecha de Ingreso: noviembre-2005
Ubicación: Santiago de chile
Mensajes: 637
Antigüedad: 18 años, 5 meses
Puntos: 1
Pregunta tengo problemas para grabar me envia un solo reguistro

el problema esque no me esta grabando todo los reguistro que le cargo

Este es el formularo de ingreso

Código PHP:
<?php
session_start
();
?>
<html>
<head>
<script language='javascript' src="../Funciones/popcalendar.js"></script> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="../css/estructura.css" rel="stylesheet" type="text/css">
<link href="../css/tour.css" rel="stylesheet" type="text/css">
</head>
<body>
<?php
//include ("../jao/Conexion.inc.php");
$enlace mysql_connect("localhost""root""") or die("No pudo conectarse : " mysql_error());
mysql_select_db("name") or die("No pudo seleccionarse la BD :(.");
$_SESSION['numProductos']=1;
function 
cargar_combo($tabla,$value,$opt)
{

    
$sql "select * from ".$tabla;
    
$res mysql_query($sql) or die (mysql_error());
    echo 
'<select name="'.$tabla.'" id="'.$tabla.'" class="botones">';
    while(
$fila mysql_fetch_assoc($res))
    {
        echo 
"<option value='".$fila[$value]."'>$fila[$opt]</option>";
    }
    echo 
"</select>";
}
?>
<div id="nonfooter">
</div>
<div class="tabs"> Ingreso Producciones</div>
<form action="carga_op.php" method="post" name="form1" class="seccion" id="form1">
<div class="contenido">
  <table width="0%" align="left" class="titblok">
    <!--DWLayoutTable-->
    <tr>
      <td width="115" height="21">
        <label></label>               
        Cliente:</td>
           <td width="141"><?php cargar_combo("tblclientes","id_Cliente","Nombre","Activo"); ?></td>
        <td colspan="2" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
      <td width="122">&nbsp;</td>
    </tr>
    <tr>
      <td height="21"><label>Trabajador:</label></td>
           <td><?php cargar_combo("tblempleados","Id_Empleado","Apellido","Jose"); ?></td>
        <td colspan="2" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td height="24"><label>Fecha: </label></td>
           <td>            <input name="FechaInicio" type="text" class="campos_guia" id="FechaInicio" onClick="popUpCalendar(this, form1.FechaInicio, 'dd-mm-yyyy');" size="10" />        </td>
        <td colspan="2" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td height="24">Turno: </td>
        <td valign="top"><label for="textfield">
          <?php cargar_combo("tbltipoturno","id_TipoTurno","Nombre"); ?>
        </label></td>
        <td colspan="2" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td height="28">&nbsp;</td>
        <td>&nbsp;</td>
        <td width="1">&nbsp;</td>
        <td width="114" valign="top"><input name="Submit" type="submit" class="button4" id="Submit" value="Cargar OP &gt;&gt;" /></td>
        <td>&nbsp;</td>
    </tr>
  </table>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
</div>
</form>
<p>

</table>
</body>
</html>





este es el que inserta los productos

Código PHP:
<?php
$enlace 
mysql_connect("localhost""root""") or die("No pudo conectarse : " mysql_error());
mysql_select_db("name") or die("No pudo seleccionarse la BD.");
$id_op=$_POST['id_op'];
foreach(
$_POST as $key => $valor)
{
    list(
$constante$numField)=split("_"trim($key));
    if(
$constante=="categoria")
    {
        
$cat[$numField]=$valor;
    }
    if(
$constante=="cantidad")
    {
        
$can[$numField]=$valor;
    }
    if(
$constante=="producto")
    {
        
$prod[$numField]=$valor;
    }
}
foreach(
$cat as $key => $valor)
echo 
"<script>alert(\"$valor\")</script>";
{
    
$Ssql="insert into tblproducciones(categoria, id_op, Cantidad, id_Produccion) values (";
    
$Ssql.=$valor.", ".$id_op.", ".$can[$key].", ".$prod[$key].")";
    echo 
"<script>alert(\"$Ssql\")</script>";
    
$resIns=mysql_query($Ssql);
}
echo 
'<head><meta http-equiv="refresh" content="0; url=ingreso_op.php"></head>';
?>
  #2 (permalink)  
Antiguo 11/03/2009, 10:47
Avatar de a83
a83
 
Fecha de Ingreso: noviembre-2005
Ubicación: Santiago de chile
Mensajes: 637
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: tengo problemas para grabar me envia un solo reguistro

este es el que carga los datos anterior mente selecionados
Código PHP:
<?php
session_start
(); 
include(
"../funciones/funcionesbox.php"); 
function 
cambiaf_a_mysql ($fecha){
    
ereg"([0-9]{1,2})-([0-9]{1,2})-([0-9]{4})"$fecha$mifecha); 
    
$lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1]; 
    return 
$lafecha;     
}
?>
<script language='javascript' src="../Funciones/popcalendar.js"></script> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SIAP Gu&iacute;as  Despacho</title>
<link href="../css/siap.css" rel="stylesheet" type="text/css" />
<script>
function objetoAjax(){
    var xmlhttp=false;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
           xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            xmlhttp = false;
          }
    }

    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
        xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}//Funcion Desarrollada por Jesus Liñán [email protected] ribosomatic.com

//************************************************para la insercion de registros*************************************************
function enviarDatos(idProd, destino)
{    
        //donde se mostrará lo resultados
        var divResultado = document.getElementById('AgregaProductos');
        //divResultado.innerHTML="<center>Cargando ...</center>";
        //valores de los inputs
        var cadenaFormulario = 'id='+encodeURI(idProd);
        alert(cadenaFormulario);
        //instanciamos el objetoAjax
        ajax=objetoAjax();
        //uso del medotod POST
        //archivo que realizará la operacion
        //registro.php
        ajax.open("POST", destino, true);
        ajax.onreadystatechange=function() {
            if (ajax.readyState==4) {
                //mostrar resultados en esta capa
                Contenido=divResultado.innerHTML;
                alert(Contenido);
                divResultado.innerHTML = Contenido+ajax.responseText;
            }
            /*else
            {
                divResultado.innerHTML="<center>Cargando ... </center>";
            }*/
        }
        ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        //enviando los valores
        ajax.send(cadenaFormulario);
}
function eliminaProducto(num)
{
    var id='div_'+num;
    prod = document.getElementById(id);

    if (!prod){
        alert("El elemento selecionado no existe");
    } else {
        padre = prod.parentNode;
        padre.removeChild(prod);
    }

}
</script>
<style media="screen">
/* Nube de enlaces-------*/
#tagcloud{
    text-align:center;
    margin:5px;
    border: none;
}
#tagcloud .tag1{ font-size:0.9em; color:#da080c;margin:5px;}
#tagcloud .tag2{ font-size:1.2em; color:#7c9fbd;margin:5px;}
#tagcloud .tag3{ font-size:1.4em; color:#a6c4e1;margin:5px;}
#tagcloud .tag4{ font-size:1.3em; color:#0fd580;margin:5px;}
#tagcloud a{ text-decoration:none; margin:5px;}
#tagcloud a:hover{ text-decoration:underline; margin:5px; cursor:pointer;}
a:link {
    text-decoration: none;
}
a:visited {
    text-decoration: none;
}
a:hover {
    text-decoration: none;
}
a:active {
    text-decoration: none;
}
.Estilo5 {
    color: #000000;
    font-weight: bold;
}
.Estilo7 {color: #000000; font-weight: bold; font-size: 3ç; }
</style>
</head>

<body>
<?php
//include ("../jao/conexion.php");
$enlace mysql_connect("localhost""root""") or die("No pudo conectarse : " mysql_error());
mysql_select_db("name") or die("No pudo seleccionarse la BD.");
 
$cliente=$_POST['tblclientes'];
$fechaFormat=$_POST['FechaInicio'];
$fecha=cambiaf_a_mysql($fechaFormat);
$operario=$_POST['tblempleados'];
$Turno=$_POST['tbltipoturno'];
$Numero=$_POST['Numero'];
$insert="insert into tbl_op (Fecha, id_Cliente, Id_Empleado, id_TipoTurno) values ('".$fecha."',".$cliente.",".$operario.",".$Turno.")";
$resIns=mysql_query($insert);
$idop=mysql_insert_id();
/*echo"<script>alert(\"$cliente\")</script>";*/
$sql "SELECT * FROM tblproducto WHERE id_cliente='".$cliente."'";
/*echo"<script>alert(\"$sql\")</script>";*/
$resSql=mysql_query($sql);
$numProductos=mysql_num_rows($resSql);
//para el cliente
$sqlC "SELECT * FROM tblempleados WHERE Id_Empleado='".$operario."'";
/*echo"<script>alert(\"$sqlC\")</script>";*/
$resSqlC=mysql_query($sqlC);
$rowClient=mysql_fetch_array($resSqlC);
//para el N de Guiass
$sqlA "SELECT * FROM tbl_op WHERE id_op='".$idop."'";
/*echo"<script>alert(\"$sqlA\")</script>";*/
$resSqlA=mysql_query($sqlA);
$rowGuias=mysql_fetch_array($resSqlA);
//para el cliente
$sqlo "SELECT * FROM tblclientes WHERE id_Cliente='".$cliente."'";
/*echo"<script>alert(\"$sqlC\")</script>";*/
$resSqlo=mysql_query($sqlo);
$rowCliente=mysql_fetch_array($resSqlo);

?>
<div>
  <table width="905" border="0" cellpadding="0" cellspacing="0" bordercolor="0" class="inputcontacto">
  <!--DWLayoutTable-->
  <tr>
    <td width="5" height="27"></td>
    <td width="5"></td>
    <td width="7">&nbsp;</td>
    <td width="229">&nbsp;</td>
    <td width="192">&nbsp;</td>
    <td width="62">&nbsp;</td>
    <td width="98"></td>
    <td width="156"></td>
    <td width="149"></td>
    </tr>
  <tr>
    <td height="37"></td>
    <td></td>
    <td colspan="6" valign="top" background="../iconos/bg_footer.jpg"><img src="../iconos/images/card_f2.png" width="32" height="32"><span class="Estilo7"> Trabajador </span></td>
    <td></td>
    </tr>
  <tr>
    <td height="12"></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
  <tr>
    <td height="18"></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td rowspan="5" valign="top" class="menu_noti"> <div align="center"><a href=""><img src="../iconos/index_foto.jpg" width="66" height="91" border="0" /></a></div></td>
    <td></td>
    <td></td>
    </tr>
  <tr>
    <td height="22"></td>
    <td></td>
    <td></td>
    <td valign="baseline" class="menu_noti"><div align="left">Rut ...: <?php echo $rowClient['Rut'];?></div></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  <tr>
    <td height="22"></td>
    <td></td>
    <td></td>
    <td colspan="2" valign="baseline" class="menu_noti"><div align="left">Se&ntilde;or. :<?php echo $rowClient['Nombre'];?></div></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
  
  
  
  
  
  
  
  <tr>
    <td height="22"></td>
    <td></td>
    <td></td>
    <td colspan="2" valign="baseline" class="menu_noti"><div align="left">Nª OP.: <?php echo $rowGuias['id_op']; ?></div></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
  <tr>
    <td height="7"></td>
    <td></td>
    <td></td>
    <td colspan="2" rowspan="2" valign="baseline" class="subrayado"><div align="left">Fecha. :<span class="estilo2"><?php echo $rowGuias['Fecha']; ?></span></div></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
  <tr>
    <td height="15"></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
  <tr>
    <td height="33"></td>
    <td></td>
    <td></td>
    <td>&nbsp;</td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
   <tr>
    <td height="37"></td>
    <td></td>
    <td colspan="6" valign="top" background="../iconos/bg_footer.jpg"><img src="../iconos/images/move_f2.png" width="32" height="32"><span class="Estilo5"> Productos de :</span> <?php echo $rowCliente['Nombre'];?></td>
    <td></td>
    </tr>
  <tr>
    <td height="22">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
  <tr>
    <td height="30">&nbsp;</td>
    <td colspan="7" valign="top"><div class="inputcontacto" id="tagcloud">
      <?php
$NumClase
=1;
for(
$i=0$i<$numProductos$i++)
        {
        
$myrow=mysql_fetch_array($resSql);
echo 
"<a onClick=\"javascript: enviarDatos('".$myrow['id_Producto']."', 'agregaProducto.php');\" class=\"tag".$NumClase."\">".$myrow['Nombre']."</a>";
        
$NumClase++;
        if(
$NumClase==4){$NumClase=1;}
        }
?>
    </div>
    <form id="form1" name="form1" method="post" action="insertaProductos.php">
    <div style="width:80%; border:solid 1px #003366;">
        <div style="width:40%; text-align:left; float:left;">Producto</div>
        <div style="width:35%; text-align:left; float:left;">Categor&iacute;as</div>
        <div style="width:15%; text-align:left; float:left;">Unidades</div>
        <div style="width:10%; text-align:left; float:left;">Acci&oacute;n</div>
    </div>
    <div style="clear:both"></div>
    <div id="AgregaProductos" style="width:80%;">
    </div>
    <input type="hidden" name="id_op" value="<?php echo $idop;?>">
    <div style="clear:both"></div>
    <div><a href="ingr_guias.php" title="Regresar a clientes"> &lt;&lt; Regresar</a></div>
    <input type="submit" name="Enviar" value="Enviar">
</form></td>
    <td></td>
    </tr>
  <tr>
    <td height="187">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
</table>
</div>

<h3>&nbsp;</h3>

</body>
</html>
  #3 (permalink)  
Antiguo 11/03/2009, 10:49
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: tengo problemas para grabar me envia un solo reguistro

Intenta inicializar las matrices antes de manipularlas:

Código php:
Ver original
  1. $cat = $can = $prod = array();
  2. foreach(bla bla bla) {
  3. }
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 11/03/2009, 11:01
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: tengo problemas para grabar me envia un solo reguistro

Creo yo que tu problema esta en que asignas los nombre de los select de una forma y piensas que lo haces de otra.

Si ves, estas asignando el nombre de los combos con el primer parametro que envias a la función, y tratas al hacer el foreach de $_POST separar por medio de un gión bajo cuando nunca lo hay en el $key que es el nombre del campo.

Fijate bien en el HTML generado de la página y verifica que si lo que piensas hacer es lo que realmente esta pasando al momento de asignar los nombres en la función de cargar_combo.

Fijate que si llega por ejemplo un campo con nombre tbltipoturno, este será el valor de $key y si tratas de separar esto con un guión bajo no lo podrás hacer, además que luego comparas con algunas cadenas que no concuerdan con el texto de $constante.

Supongo que podría ser este el problema.

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #5 (permalink)  
Antiguo 11/03/2009, 11:37
Avatar de a83
a83
 
Fecha de Ingreso: noviembre-2005
Ubicación: Santiago de chile
Mensajes: 637
Antigüedad: 18 años, 5 meses
Puntos: 1
Pregunta Respuesta: tengo problemas para grabar me envia un solo reguistro

pana te entiendo lo que me dices me esta hablado de este modulo

Código PHP:
<?php
$enlace 
mysql_connect("localhost""root""") or die("No pudo conectarse : " mysql_error());
mysql_select_db("name") or die("No pudo seleccionarse la BD.");
$id_op=$_POST['id_op'];
foreach(
$_POST as $key => $valor)
{
    list(
$constante$numField)=split("_"trim($key));
    if(
$constante=="categoria")
    {
        
$cat[$numField]=$valor;
    }
    if(
$constante=="cantidad")
    {
        
$can[$numField]=$valor;
    }
    if(
$constante=="producto")
    {
        
$prod[$numField]=$valor;
    }
}
foreach(
$cat as $key => $valor)
echo 
"<script>alert(\"$valor\")</script>";
{
    
$Ssql="insert into tblproducciones(categoria, id_op, Cantidad, id_Produccion) values (";
    
$Ssql.=$valor.", ".$id_op.", ".$can[$key].", ".$prod[$key].")";
    echo 
"<script>alert(\"$Ssql\")</script>";
    
$resIns=mysql_query($Ssql);
}
echo 
'<head><meta http-equiv="refresh" content="0; url=ingreso_op.php"></head>';
?>

de la manera que estoy tomando los datos akip
  #6 (permalink)  
Antiguo 11/03/2009, 11:57
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: tengo problemas para grabar me envia un solo reguistro

Fijate los nombres que colocas a los combos en el formulario.

Se realizará algo de lo que colocas en el foreach de $_POST ??
Según tú cuales nombres tienes asignados a los campos del formulario?

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:28.