Foros del Web » Programando para Internet » PHP »

restricciones en formulario

Estas en el tema de restricciones en formulario en el foro de PHP en Foros del Web. estoy usando un combobox en mi formulario para jalar los datos de mi base de datos de los salones enlal cual tengo 4 salones creados, ...
  #1 (permalink)  
Antiguo 05/09/2009, 12:08
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 9
restricciones en formulario

estoy usando un combobox en mi formulario para jalar los datos de mi base de datos de los salones enlal cual tengo 4 salones creados, en los cuales asigno a los alumnos en el formulario, pero me surgio una duda, como puedo restringir mi formulario al modo que cada salon solo acepte un numero exacto de alumnos? y en caso de sobrepasarse que me pueda avisar que el salon tiene sobrecupo?


mas o menos esto hago

nombre del alumno: ingresar nombre
horario: elige horario de un combobox
salon: elige salon de un combobox, y es aqui donde quiero que haya la restriccion

de antemano gracias
  #2 (permalink)  
Antiguo 05/09/2009, 12:49
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 11
Respuesta: restricciones en formulario

No pones código... yo tampoco.

Haces una consulta a tu BD antes de armar el combobox y que te cuente los registros que ya tienes por salón (Supuéstamente debes tener un campo que identifique el salón) y si equis o ye o zeta o lo que quieras es mayor al número de alumnos que necesitas entonces que no te realice la incersión del registro.

Enjoy!
  #3 (permalink)  
Antiguo 05/09/2009, 15:48
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 8 meses
Puntos: 31
Respuesta: restricciones en formulario

Hola, Como no estoy haciendo nada y estaba un poco aburrido te hice esta demo el form esta en dos etapas usando la misma pagina.
usando $_GET[] y $_POST[]
pues ya con eso sabrás como hacerlo diferente si lo deseas...

cuando se recibe el $_GET[] el array $salas = array( Reemplaza. sala1 por myTablaSalaA que es el nombre real de la tabla
donde, if(strlen($num_rows > 50)){ sera el limite permitido a registrar en la DB.
eso se basa el campo id y así extrae el numero de registros, si el registro es
mayor a 50 no continuara.
------->NOTA, eso no quiere decir que no se podrán hacer mas registros en la db sino que con el if se pone un bloqueo, tmp al resto del código...
aquí el código:

Código PHP:
<?php 
$sel 
$_SERVER['PHP_SELF'];
function 
funcionForm(){
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
etc <input name="etc" type="text"><br />etc
<input name="etcB" type="text"><br />etc
<input name="etcC" type="text"><br />
<input name="" type="submit" value="Enviar">
</form>
<?php 
}
//---------------------------Mysql Info----------------------
$host="localhost";//Host...
$user="User";//Mysql User
$password="Pass";//Mysql Pass
$sql mysql_connect("$host","$user","$password");
if (!
$sql){
die(
'Mysql Dice... ' mysql_error());
}
mysql_select_db("Mydb"$sql) or die('Mysql Dice... '.mysql_error());//Mysql DB
//---------------------------Mysql 1-2-3-4-------------------
if(isset($_POST['etc'])){
echo 
'.......'.$_POST['etc']. ".......<br /> Resto del Código Mysql...";
}else{
//---
if(isset($_GET['salones'])){
$thesala $_GET['salones'];
$salas = array(
'sala1' => 'myTablaSalaA',//Reemplazar por el nombre de las Tablas...
'sala2' => 'myTablaSalaB',
'sala3' => 'myTablaSalaC',
'sala4' => 'myTablaSalaD',
);
if(isset(
$salas[$thesala])){
$GetTabla $salas[$thesala];
$num_rows mysql_result(mysql_query("SELECT COUNT(*) FROM $GetTabla"),0);
if(
strlen($num_rows 50)){
echo 
"Lo sentimos el Salón Seleccionado ya tienes el limite de $num_rows Seleccione otro! <a href=\"$sel\">Regresar</a>";
}else{
funcionForm();
   }
}else{
header("Location: $sel");
}
}else{
echo 
'Seleccione';
?>  
<select onChange="document.location = '<?php echo $sel;?>?salones='+this.value">  
<option>Un salon 
<!--Reemplasar if...-->
<option value="sala1">salon 1  
<option value="sala2">salon 2
<option value="sala3">salon 3  
<option value="sala4">salon 4
</select>
<?php 
  
}
}
?>

aunque todo esto lo puedes hacer en una sola tabla solo tendrías que cambiar la consulta de mysql pero bueno...

--
__________________
╬-----╬
║☺₧☻║
╬-----╬

Última edición por thezzin; 05/09/2009 a las 16:06
  #4 (permalink)  
Antiguo 05/09/2009, 23:21
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 9
Respuesta: restricciones en formulario

gracias amigo por tomarte tu tiempo pero mira, yo inserto en mi base de datos a la que llamo alumnos los datos de nombre, matricula, horario y aula, estos dos ultimos los recojo de un combobox, este es el codigo:

Código PHP:
<?php require_once('Connections/siscam.php'); ?>
<?php
function GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $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']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO alumnos (nombre, matricula, horario, aula) VALUES (%s, %s, %s, %s)",
                       
GetSQLValueString($_POST['nombre'], "text"),
                       
GetSQLValueString($_POST['matricula'], "text"),
                       
GetSQLValueString($_POST['horario'], "text"),
                       
GetSQLValueString($_POST['aula'], "text"));

  
mysql_select_db($database_siscam$siscam);
  
$Result1 mysql_query($insertSQL$siscam) or die(mysql_error());

  
$insertGoTo "datos_insertados.html";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}

mysql_select_db($database_siscam$siscam);
$query_aula "SELECT grupo_crea FROM grupos";
$aula mysql_query($query_aula$siscam) or die(mysql_error());
$row_aula mysql_fetch_assoc($aula);
$totalRows_aula mysql_num_rows($aula);

mysql_select_db($database_siscam$siscam);
$query_horario "SELECT hora FROM horarios";
$horario mysql_query($query_horario$siscam) or die(mysql_error());
$row_horario mysql_fetch_assoc($horario);
$totalRows_horario mysql_num_rows($horario);
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Documento sin t&iacute;tulo</title>
</
head>

<
body>
<
form method="post" name="form1" action="<?php echo $editFormAction; ?>">
  <
table align="center">
    <
tr valign="baseline">
      <
td nowrap align="right">Nombre:</td>
      <
td><input type="text" name="nombre" value="" size="32"></td>
    </
tr>
    <
tr valign="baseline">
      <
td nowrap align="right">Matricula:</td>
      <
td><input type="text" name="matricula" value="" size="32"></td>
    </
tr>
    <
tr valign="baseline">
      <
td nowrap align="right">Horario:</td>
      <
td><select name="horario">
        <
option value="menuitem1" >seleccionar</option>
        <?
php
do {  
?>
        <option value="<?php echo $row_horario['hora']?>"><?php echo $row_horario['hora']?></option>
        <?php
} while ($row_horario mysql_fetch_assoc($horario));
  
$rows mysql_num_rows($horario);
  if(
$rows 0) {
      
mysql_data_seek($horario0);
      
$row_horario mysql_fetch_assoc($horario);
  }
?>
      </select>
      </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">Aula:</td>
      <td><select name="aula">
        <option value="menuitem1" >seleccionar</option>
        <?php
do {  
?>
        <option value="<?php echo $row_aula['grupo_crea']?>"><?php echo $row_aula['grupo_crea']?></option>
        <?php
} while ($row_aula mysql_fetch_assoc($aula));
  
$rows mysql_num_rows($aula);
  if(
$rows 0) {
      
mysql_data_seek($aula0);
      
$row_aula mysql_fetch_assoc($aula);
  }
?>
      </select>
      </td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td><input type="submit" value="Insertar registro"></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1">
</form>
<p>&nbsp;</p>
</body>
</html>
<?php
mysql_free_result
($aula);

mysql_free_result($horario);
?>
hasta ahi todo bien ahora, en el campo aula, recogido por un combobox, quiero que haya una restriccion, de solo recoger 40 datos para cada aula, entonces lo que quiero hacer es recogerlo en consultas por salon, para tener el control por salon, lo que no se es como limitar para que el sistema solo registre 40 datos por aula, y la verdad me revolvistes un poco, aunque parte del codigo lo probare orita y luego te cuento gracias de nuevo
  #5 (permalink)  
Antiguo 06/09/2009, 00:49
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 9
Respuesta: restricciones en formulario

seria mas facil si primero registro a los alumnos y luego les asigno el salon? como harian eso?
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 16:16.