Foros del Web » Programando para Internet » PHP » Zend »

varios registros a base de datos

Estas en el tema de varios registros a base de datos en el foro de Zend en Foros del Web. Buenas a todos los amigos del foro. Tengo un carrito de la compra del que quiero enviar datos a la base de datos una vez ...
  #1 (permalink)  
Antiguo 26/02/2011, 18:48
 
Fecha de Ingreso: abril-2010
Mensajes: 52
Antigüedad: 14 años, 7 meses
Puntos: 0
varios registros a base de datos

Buenas a todos los amigos del foro.


Tengo un carrito de la compra del que quiero enviar datos a la base de datos una vez el usuario ha confirmado los datos.
El problema es que solo se inserta el último producto añadido al carro. No consigo añadir todas las lineas.

Aqui los datos del carrito recogidos para la confirmación:

<form action="resumen3.php" method="post">

<p><table width="94%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="7" bgcolor="#CCCCCC"><strong>Estos son los datos de Tu pedido:</strong></td>
</tr>
<td colspan="7">&nbsp;</td>
<tr>

<td width="7%" bgcolor="#666"><strong>ref</strong></td>
<td width="10%" bgcolor="#666"><strong>familia</strong></td>
<td width="29%" bgcolor="#666"><strong>poblacion</strong></td>
<td width="7%" align="left" bgcolor="#666"><strong>precio</strong></td>
<td width="19%" align="center" bgcolor="#666"><strong>participantes</strong></td>
<td width="16%" align="right" bgcolor="#666"><div align="center"><strong>total</strong></div></td>
</tr>
<?php

if(isset($_SESSION['carrito'])){
$total=0;
for($i=0;$i<=count($carrito_mio)-1;$i ++){
if($carrito_mio[$i]!=NULL){
?>

<tr>

<td valign="left" bgcolor="#999"><? print $carrito_mio[$i]['ref']; ?></td>
<td align="left" valign="top" bgcolor="#999"><? print $carrito_mio[$i]['familia']; ?></td>
<td align="left" valign="top" bgcolor="#999"><? print $carrito_mio[$i]['poblacion']; ?></td>
<td align="left" valign="top" bgcolor="#999"><? print $carrito_mio[$i]['precio']; ?></td>
<td align="center" valign="top" bgcolor="#999"><? print $carrito_mio[$i]['cantidad']; ?></td>
<td align="right" valign="top" bgcolor="#999"><div align="center">
<? print $carrito_mio[$i]['precio'] * $carrito_mio[$i]['cantidad']; ?>
</div></td>
</tr>
<?
$total=$total + ($carrito_mio[$i]['precio'] * $carrito_mio[$i]['cantidad']);
}
}
}
?>
<tr>

<td>&nbsp;</td>

<td>&nbsp;</td>
<td><strong>total:</strong></td>
<td align="right"><?
if(isset($_SESSION['carrito'])){
print $total;
}
?> Euros </td>
</tr>
<tr>


<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td align="right"><input type="submit" name="Submit" value="Enviar pedido a PayPal" /></td>
</tr>
</table>
</p></form>


Aqui el envio de los datos a la base de datos:


$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

$insertSQL = sprintf("INSERT INTO tabla (numeroPedido, ref, familia, totalPedido, precio, cantidad, nombreUsuario, pagado) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($numPedido, "int"),
GetSQLValueString($ref, "int"),
GetSQLValueString($familia, "text"),
GetSQLValueString($total, "int"),
GetSQLValueString($precio, "int"),
GetSQLValueString($cantidad, "int"),
GetSQLValueString($nombreUsuario, "text"),
GetSQLValueString('n', "text"));

mysql_select_db($database_conexion, $conexion);
$Result1 = mysql_query($insertSQL, $conexion) or die(mysql_error());


Y Solo se inserta la última fila del carrito.


Os agradezco de antemano cualquier ayuda y sugerencia para solucionar mi problema.

Saludos,
  #2 (permalink)  
Antiguo 27/02/2011, 00:33
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 15 años
Puntos: 25
Respuesta: varios registros a base de datos

pero donde esta el input
__________________
cada vez que aprendes algo te crees que no sabes nada
  #3 (permalink)  
Antiguo 27/02/2011, 00:42
 
Fecha de Ingreso: octubre-2009
Mensajes: 245
Antigüedad: 15 años, 1 mes
Puntos: 17
Respuesta: varios registros a base de datos

Recuerda que cada item es un insert en tu base de datos, en la tabla que esté haciendo el registro de la compra
__________________
Saludos.
  #4 (permalink)  
Antiguo 27/02/2011, 03:20
 
Fecha de Ingreso: abril-2010
Mensajes: 52
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: varios registros a base de datos

Arros:

Gracias por echarme un cable:

El form de arriba recoge los datos del carrito y despues de confirmación los envio a la base de datos.

Aqui al completo:;

<form action="resumen3.php" method="post">

<p><table width="94%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="7" bgcolor="#CCCCCC"><strong>Estos son los datos de Tu pedido:</strong></td>
</tr>
<td colspan="7">&nbsp;</td>
<tr>

<td width="7%" bgcolor="#666"><strong>ref</strong></td>
<td width="10%" bgcolor="#666"><strong>familia</strong></td>
<td width="29%" bgcolor="#666"><strong>poblacion</strong></td>
<td width="7%" align="left" bgcolor="#666"><strong>precio</strong></td>
<td width="19%" align="center" bgcolor="#666"><strong>participantes</strong></td>
<td width="16%" align="right" bgcolor="#666"><div align="center"><strong>total</strong></div></td>
</tr>
<?php

if(isset($_SESSION['carrito'])){
$total=0;
for($i=0;$i<=count($carrito_mio)-1;$i ++){
if($carrito_mio[$i]!=NULL){
?>

<tr>

<td valign="left" bgcolor="#999"><? print $carrito_mio[$i]['ref']; ?></td>
<td align="left" valign="top" bgcolor="#999"><? print $carrito_mio[$i]['familia']; ?></td>
<td align="left" valign="top" bgcolor="#999"><? print $carrito_mio[$i]['poblacion']; ?></td>
<td align="left" valign="top" bgcolor="#999"><? print $carrito_mio[$i]['precio']; ?></td>
<td align="center" valign="top" bgcolor="#999"><? print $carrito_mio[$i]['cantidad']; ?></td>
<td align="right" valign="top" bgcolor="#999"><div align="center">
<? print $carrito_mio[$i]['precio'] * $carrito_mio[$i]['cantidad']; ?>
</div></td>
</tr>
<?
$total=$total + ($carrito_mio[$i]['precio'] * $carrito_mio[$i]['cantidad']);
}
}
}
?>
<tr>

<td>&nbsp;</td>

<td>&nbsp;</td>
<td><strong>total:</strong></td>
<td align="right"><?
if(isset($_SESSION['carrito'])){
print $total;
}
?> Euros </td>
</tr>
<tr>


<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td align="right"><input type="submit" name="Submit" value="Enviar pedido a PayPal" /></td>
</tr>
</table>
</p></form>


ENVIO A BASE DE DATOS:

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

$insertSQL = sprintf("INSERT INTO bonocompra (numeroPedido, ref, familia, totalPedido, precio, cantidad, nombreUsuario, pagado) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($numPedido, "int"),
GetSQLValueString($ref, "int"),
GetSQLValueString($familia, "text"),
GetSQLValueString($total, "int"),
GetSQLValueString($precio, "int"),
GetSQLValueString($cantidad, "int"),
GetSQLValueString($nombreUsuario, "text"),
GetSQLValueString('n', "text"));

mysql_select_db($database_cnxaventuras, $cnxaventuras);
$Result1 = mysql_query($insertSQL, $cnxaventuras) or die(mysql_error());

?>
  #5 (permalink)  
Antiguo 27/02/2011, 03:22
 
Fecha de Ingreso: abril-2010
Mensajes: 52
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: varios registros a base de datos

Cita:
Iniciado por JaimeSavines Ver Mensaje
Recuerda que cada item es un insert en tu base de datos, en la tabla que esté haciendo el registro de la compra
.

Hola Jaime,
Puedes expicarte un poco mas?, no lo pillo...

Etiquetas: php, registros
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 07:20.