Como crear una condición que se cumpla hasta que la variable alcance un valor Total igual a 21

A continuación te adjunto un código de un carrito que estoy llenando con unos cursos, lo que deseo es controlar la cantidad Total de unidades de crédito a inscribir; es decir el usuario puede inscribir hasta un máximo de 21 Unidades de Créditos después de allí no puede inscribir mas cursos, lo que no se es en que parte del código de abajo debo poner la condición. Yo lo estaba haciendo en la parte que te marco en negritas pero no me funciona. Agradezco tu ayuda. Gracias.
<?php
session_start();
include ('conexión.php');?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<style type="text/css">
<!--
.Estilo1 {color: #9999FF}
.Estilo2 {color: #FFFFCC}
-->
</style>
</head>
<body>
<p>MIS CURSOS</p>
<p>&nbsp;</p>
<p>Sus cursos inscritos hasta el momento son:</p>
<?php
if (isset($_POST['id_txt'])){
$id=$_POST['id_txt'];
$sortorder=$_POST['sortorder'];
$fullname=$_POST['fullname'];
$shortname=$_POST['shortname'];
$profesor=$_POST['profesor'];
$unicre=$_POST['unicre'];
$cantidad=$_POST['cantidad'];
$costo=$_POST['costo'];
$mi_carrito[]=array('id'=>$id,'sortorder'=>$sortorder,'fullname'=>$fullname,'shortname'=>$shortname,'profesor'=>$profesor,'unicre'=>$unicre,'cantidad'=>$cantidad,'costo'=>$costo);
//print_r($mi_carrito);
}
if(isset($_SESSION['carrito'])){
$mi_carrito=$_SESSION['carrito'];
if (isset($_POST['id_txt'])){
$id=$_POST['id_txt'];
$sortorder=$_POST['sortorder'];
$fullname=$_POST['fullname'];
$shortname=$_POST['shortname'];
$profesor=$_POST['profesor'];
$unicre=$_POST['unicre'];
$cantidad=$_POST['cantidad'];
$costo=$_POST['costo'];
$pos=-1;
for($i=0;$i<count($mi_carrito);$i++){
if($id==$mi_carrito[$i]['id']){
$pos=$i;
}
}
if($pos<>-1){
$cuanto=$mi_carrito[$pos]['cantidad']+$cantidad;
$mi_carrito[$pos]=array('id'=>$id,'sortorder'=>$sortorder,'fullname'=>$fullname,'shortname'=>$shortname,'profesor'=>$profesor,'unicre'=>$unicre,'cantidad'=>$cuanto,'costo'=>$costo);
}else{
$mi_carrito[]=array('id'=>$id,'sortorder'=>$sortorder,'fullname'=>$fullname,'shortname'=>$shortname,'profesor'=>$profesor,'unicre'=>$unicre,'cantidad'=>$cantidad,'costo'=>$costo);
}
}
}
if(isset($_POST['id2'])){
$indice=$_POST['id2'];
$cuanto=$_POST['cantidad2'];
$mi_carrito[$indice]['cantidad']=$cuanto;
}
if(isset($_POST['id3'])){
$indice=$_POST['id3'];
$mi_carrito[$indice]=NULL;
}
if(isset($mi_carrito))$_SESSION['carrito']=$mi_carrito;
?>
<table width="603" height="146" border="0">
<tr>
<td colspan="8" align="center">LISTADO DE CURSOS SELECCIONADOS </td>
</tr>
<tr>
<td align="center"><span class="Estilo1">ID</span></td>
<td align="center"><span class="Estilo1">CÓDIGO</span></td>
<td align="center"><span class="Estilo1">NOMBRE DEL CURSO</span></td>
<td align="center"><span class="Estilo1">DESCRIPCIÓN</span></td>
<td align="center"><span class="Estilo1">PROFESOR</span></td>
<td align="center"><span class="Estilo1">UNIDADES DE CRÉDITO</span></td>
<td align="center"><span class="Estilo1">COSTO POR UNID</span></td>
<td align="center"><span class="Estilo1">SUBTOTAL</span></td>
<td align="center"><span class="Estilo1">&nbsp;</span></td>
</tr>
<?php
if(isset($mi_carrito)){
$total=0;
$b=21;
for($i=0;$i<count($mi_carrito);$i++){
if ($mi_carrito[$i]<>NULL and $cantidad <=$b)
{
?>
<tr align="center">
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['id'] ?></td>
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['sortorder']; ?></td>
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['fullname']; ?></td>
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['shortname']; ?></td>
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['profesor']; ?></td>
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['unicre']; ?></td>
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['costo']; ?></td>
<?php
$cantidad=$mi_carrito[$i]['cantidad']+$mi_carrito[$i]['unicre'];
$cant=$cant+$cantidad;
$subtotal=$mi_carrito[$i]['costo']*$mi_carrito[$i]['unicre'];
$total=$total+$subtotal;
?>
<td align="center" bgcolor="#FFFFCC"><?php echo $subtotal?></td>
<td bgcolor="#FFFFCC">
<form action="" method="post">
<input name="id3" type="hidden" value="<?php echo $i ?>" />
<input name="Input" type="image" src="imágenes/borrar.jpeg" />
</form></td>
</tr>
<?php
}else {
echo 'No puede inscribir mas cursos';
}
}
}
?>
<tr>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td align="center"bgcolor="#FFFFCC">TOTAL U.C</td>
<td...

1 respuesta

Respuesta
1

Asegurate de que las verbales de tu for y $cantidad estén enviando los datos en cada recarga, puedes mostrarlos en un echo, o con un mensaje de alerta solo para asegurarte que las variables que tienes dentro de tu if ($mi_carrito[$i]<>NULL and $cantidad <=$b) las estas enviando cada vez que recarga el sistema, o ponlo de forma contraria.

quizás no funciona por eso porque tal vez pierde algún dato en el proceso

if($cantidad=$b){ echo "no puede seguiré inscribiendo"; }else{

Todo tu formulario

}

Gracias por la orientación. Lo resolví colocando la condición en esta parte del código (abajo en negritas) pero a pesar de que me muestra el mensaje de que no puede inscribir mas cursos lo incluye, me parece que se vuelve a ejecutar el for, ahora si no se entonces donde colocar la condición para que no agregue ese curso cuando la variable $cant ya sea mayor a $b. No se si estoy usando mal el operador y en vez de mayor sea mayor e igual, lo que deseo realmente es que el usuario no pueda inscribir mas cursos cuando llegue a la cantidad de la variable $b.

<?php
session_start();
include ('conexión.php');?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<style type="text/css">
<!--
.Estilo1 {color: #9999FF}
.Estilo2 {color: #FFFFCC}
-->
</style>
</head>
<body>
<p>MIS CURSOS</p>
<p>&nbsp;</p>
<p>Sus cursos inscritos hasta el momento son:</p>
<script type="text/javascript">
function ventana(url,nombre,anchura,altura){
var ventana;
altura +=40;
anchura +=40;
var cadena = "height=" + altura + ",width=" + anchura + ",menubar=no,resizable=yes,status=no,scrollbars=yes,toolbar=no";
var ventana=window.open(url, nombre, cadena);
ventana.focus();
}
</script>
<?php
if (isset($_POST['id_txt'])){
$id=$_POST['id_txt'];
$sortorder=$_POST['sortorder'];
$fullname=$_POST['fullname'];
$shortname=$_POST['shortname'];
$profesor=$_POST['profesor'];
$unicre=$_POST['unicre'];
$cantidad=$_POST['cantidad'];
$costo=$_POST['costo'];
$mi_carrito[]=array('id'=>$id,'sortorder'=>$sortorder,'fullname'=>$fullname,'shortname'=>$shortname,'profesor'=>$profesor,'unicre'=>$unicre,'cantidad'=>$cantidad,'costo'=>$costo);
//print_r($mi_carrito);
}
if(isset($_SESSION['carrito'])){
$mi_carrito=$_SESSION['carrito'];
if (isset($_POST['id_txt'])){
$id=$_POST['id_txt'];
$sortorder=$_POST['sortorder'];
$fullname=$_POST['fullname'];
$shortname=$_POST['shortname'];
$profesor=$_POST['profesor'];
$unicre=$_POST['unicre'];
$cantidad=$_POST['cantidad'];
$costo=$_POST['costo'];
$pos=-1;
for($i=0;$i<count($mi_carrito);$i++){
if($id==$mi_carrito[$i]['id']){
$pos=$i;
}
}
if($pos<>-1){
$cuanto=$mi_carrito[$pos]['cantidad']+$cantidad;
$mi_carrito[$pos]=array('id'=>$id,'sortorder'=>$sortorder,'fullname'=>$fullname,'shortname'=>$shortname,'profesor'=>$profesor,'unicre'=>$unicre,'cantidad'=>$cuanto,'costo'=>$costo);
}else{
$mi_carrito[]=array('id'=>$id,'sortorder'=>$sortorder,'fullname'=>$fullname,'shortname'=>$shortname,'profesor'=>$profesor,'unicre'=>$unicre,'cantidad'=>$cantidad,'costo'=>$costo);
}
}
}
if(isset($_POST['id2'])){
$indice=$_POST['id2'];
$cuanto=$_POST['cantidad2'];
$mi_carrito[$indice]['cantidad']=$cuanto;
}
if(isset($_POST['id3'])){
$indice=$_POST['id3'];
$mi_carrito[$indice]=NULL;
}
if(isset($mi_carrito))$_SESSION['carrito']=$mi_carrito;
?>
<table width="603" height="146" border="0">
<tr>
<td colspan="8" align="center">LISTADO DE CURSOS SELECCIONADOS </td>
</tr>
<tr>
<td align="center"><span class="Estilo1">ID</span></td>
<td align="center"><span class="Estilo1">CODIGO</span></td>
<td align="center"><span class="Estilo1">NOMBRE DEL CURSO</span></td>
<td align="center"><span class="Estilo1">DESCRIPCION</span></td>
<td align="center"><span class="Estilo1">PROFESOR</span></td>
<td align="center"><span class="Estilo1">UNIDADES DE CREDITO</span></td>
<td align="center"><span class="Estilo1">COSTO X UNID</span></td>
<td align="center"><span class="Estilo1">SUBTOTAL</span></td>
<td align="center"><span class="Estilo1">&nbsp;</span></td>
</tr>
<?php
if(isset($mi_carrito)){
$total=0;
$b=8;
for($i=0;$i<count($mi_carrito);$i++){
if ($mi_carrito[$i]<>NULL)
{
?>
<tr align="center">
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['id'] ?></td>
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['sortorder']; ?></td>
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['fullname']; ?></td>
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['shortname']; ?></td>
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['profesor']; ?></td>
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['unicre']; ?></td>
<td align="center" bgcolor="#FFFFCC"><?php echo $mi_carrito[$i]['costo']; ?></td>
<?php
$cantidad=$mi_carrito[$i]['cantidad']+$mi_carrito[$i]['unicre'];
$cant=$cant+$cantidad;
if ($cant>$b){
echo"<script type='text/javascript'>";
echo"window.alert('No puede inscribir mas cursos');";
echo '</script>';}
$subtotal=$mi_carrito[$i]['costo']*$mi_carrito[$i]['unicre'];
$total=$total+$subtotal;
?>
<td align="center" bgcolor="#FFFFCC"><?php echo $subtotal?></td>
<td bgcolor="#FFFFCC">
<form action="" method="post">
<input name="id3" type="hidden" value="<?php echo $i ?>" />
<input name="Input" type="image" src="imagenes/borrar.jpeg" />
</form></td>
</tr>
<?php
}
}
}
?>
<tr>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td align="center"bgcolor="#FFFFCC">TOTAL U.C</td>
<td align="center" bgcolor="#FFFFCC"><?php if (isset($cant)) echo $cant ?></td>
<td align="center" bgcolor="#FFFFCC">TOTAL</td>
<td align="center" bgcolor="#FFFFCC"><?php if (isset($total)) echo $total ?></td>
<td bgcolor="#FFFFCC">&nbsp;</td>
</tr>
<tr>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC"><a href="javascript:void" onClick="javascript:ventana('http://prueba.virtuniversidad.com/mps/registro.php','nuevaventana', 700, 500 )">Cancelar Inscripcion</a>
</td>
<td bgcolor="#FFFFCC">&nbsp;</td>
<td bgcolor="#FFFFCC"></td>
</table>
<p><a href="principal.php">Regresar</a></p>
<p>&nbsp;</p>
</body>
</html>

¿Me parece que funciona si le das a regresar vuelves al formulario de añadir el curso? No entendí bn,

Pero ademas me parece que te falta el uso del else (si no)

if(tus condiciones){mensaje "no puedes agregar mas"} else { puedes seguir agregando [botón] [formulario] }

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas