Foros del Web » Programando para Internet » PHP »

problemas con el mysql_insert_id()

Estas en el tema de problemas con el mysql_insert_id() en el foro de PHP en Foros del Web. buenas. estoy desarrollando una aplcacion que me permite ingresar datos. me explico. tengo un sistema de ingresar productos de usb, yo muestro una lista de ...
  #1 (permalink)  
Antiguo 03/07/2009, 13:43
(Desactivado)
 
Fecha de Ingreso: junio-2009
Mensajes: 256
Antigüedad: 14 años, 10 meses
Puntos: 1
problemas con el mysql_insert_id()

buenas. estoy desarrollando una aplcacion que me permite ingresar datos. me explico. tengo un sistema de ingresar productos de usb, yo muestro una lista de datos que ellos ingresaran.

mejor coloco el codigo html para que lo vean.

Código PHP:
    <?php
        
for($i=1;$i<10;$i++){
    
?>
        <table width="287" border="0" cellspacing="1" cellpadding="0">
          <tr>
            <td width="30"><input type="checkbox" name="impresion[<?=$i?>]" id="impresion" value = "<?=$i?>" /></td>
            <td width="135"><input name="tipo_impresion_<?=$i?>" type="text" class="objetoformulario" id="tipo_impresion" /></td>
            <td width="18"> &nbsp;$              </td>
            <td width="104"><input name="precio_impresion_<?=$i?>" type="text" class="objetoformulario" id="precio_impresion" size="12" /></td>
          </tr>
        </table>
        <input type="hidden" name="chk2" id="chk2" value="<?=$i?>" />
    <?php
        
}
    
?>
en mi proceso de agregar lso datos, no me registra el ultimo registro. mi tabl se llama productos. el id del producto es autogenerado. donde inserto los datos es en otra tabla imprecio_productos. en el codigo html que coloque, hago un check, ingreso el tipo de impresion, el precio de impresion.

este es mi codigo que procesa el insert.

Código PHP:
            $idproducto mysql_insert_id();
                for(
$b 0$b $_POST['chk2']; $b++){
                    
$impresion             $_POST['impresion'][$b];
                    
$tipo_impresion     $_POST['tipo_impresion_'.$b];
                    
$precio_impresion     $_POST['precio_impresion_'.$b];
                    
                    if((!empty(
$tipo_impresion)) && (isset($tipo_impresion)) && (!empty($precio_impresion)) && (isset($precio_impresion))){
                        
                        
$sql_tipos_impresion  "insert into miusb_impresion_precio(idproducto,impresion,tipo_impresion,precio_impresion)";
                        
$sql_tipos_impresion .= "values('$idproducto','$impresion','$tipo_impresion','$precio_impresion')";
                        
                        echo 
$sql_tipos_impresion."<br/>";
                        
                        
mysql_query($sql_tipos_impresion) or die(mysql_error());
                    }
                    
                } 
  #2 (permalink)  
Antiguo 03/07/2009, 14:43
 
Fecha de Ingreso: marzo-2009
Mensajes: 50
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: problemas con el mysql_insert_id()

El problema es que estas llamando la funcion mysql_insert_id() antes de haber hecho alguna insercion en la base de datos, mysql_insert_id debe ser llamado DESPUES y no antes del INSERT.

Si el valor es autogenerado no es necesario que se lo proporciones a MySQL, de manera que puede quedar asi tu codigo

Código PHP:
 $sql_tipos_impresion  "insert into miusb_impresion_precio(impresion,tipo_impresion,precio_impresion)";
                        
$sql_tipos_impresion .= "values('$impresion','$tipo_impresion','$precio_impresion')"

Última edición por tunait; 10/07/2009 a las 11:09 Razón: remover firma
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 21:13.