Foros del Web » Programando para Internet » PHP »

sobre formulario con recordset union all

Estas en el tema de sobre formulario con recordset union all en el foro de PHP en Foros del Web. hola buenas tardes, necesito que me ayuden con un formulario de actualización de registros. Tengo un formulario que me muestra un registro de un calendario ...
  #1 (permalink)  
Antiguo 31/07/2010, 11:14
 
Fecha de Ingreso: julio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
sobre formulario con recordset union all

hola buenas tardes, necesito que me ayuden con un formulario de actualización de registros. Tengo un formulario que me muestra un registro de un calendario de partidos en el que cuando mi equipo es local el campo (local)= 0 y si es (visitante)=1. Cuando relleno las casillas local - visitante y le doy al botón GRABAR si el campo (local)=0 me respeta el resultado, pero si el campo (local)=1 me da la vuelta al resultado. No se como solucionarlo, aquí os dejo el código que he usado. Muchas gracias.



<body>
<table width="460" border="1" align="center">
<tr>
<td width="452" height="287" bgcolor="#EEEEEE"><div align="center">
<span class="Estilo11">Modifica el resultado </span>
<form id="form1" name="form1" method="get" action="">
<input name="campoID" type="hidden" id="campoID" value="<?php echo $row_Calendario['idCalendario']; ?>" />
</form>
<form method="post" name="form2" action="<?php echo $editFormAction; ?>">
<table align="center">
<tr valign="baseline">
<td align="right" nowrap><div align="left" class="Estilo9">Equipo Local</div></td>
<td><div align="left">
<input name="equipolocal" type="text" disabled="disabled" id="equipolocal" value="<?php echo $row_Calendario['NombreEquipo']; ?>" size="32" readonly="true">
</div></td>
</tr>
<tr valign="baseline">
<td align="right" nowrap><div align="left" class="Estilo9">MarcadorLocal</div></td>
<td><div align="left">
<input name="local" type="text" id="local" value="<?php echo $row_Calendario['marcadorLocal']; ?>" size="5">
</div></td>
</tr>
<tr valign="baseline">
<td align="right" nowrap><div align="left" class="Estilo9">Equipo Visitante </div></td>
<td><div align="left">
<input name="equipovisitante" type="text" disabled="disabled" id="equipovisitante" value="<?php echo $row_Calendario['EXPR1']; ?>" size="32" readonly="true">
</div></td>
</tr>
<tr valign="baseline">
<td align="right" nowrap><div align="left" class="Estilo9">Marcador Visitante</div></td>
<td><div align="left">
<input name="Visitante" type="text" id="Visitante" value="<?php echo $row_Calendario['marcadorVisitante']; ?>" size="5">
</div></td>
</tr>
</table>
<p align="center">
<input type="hidden" name="MM_update" value="form2">
<input type="hidden" name="idCalendario" value="<?php echo $row_Calendario['idCalendario']; ?>">
<input name="Grabar" type="submit" id="Grabar" onclick="MM_popupMsg('Resultado grabado correctamente')" value="Grabar"/>
<input name="salir" type="submit" id="salir" onclick="MM_goToURL('self','Detalle_Modifico_Jorna da.php?id=<?php echo $row_Calendario['idFechaJornada']; ?>');return document.MM_returnValue" value="Salir" /></p>
</form>

</div></td>
</tr>
</table>
<p>&nbsp;</p>
</body>


SIENDO EL CODIGO PHP USADO EL SIGUIENTE:


<?php require_once('Connections/competicion.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_update"])) && ($_POST["MM_update"] == "form2")) {

$updateSQL = sprintf("UPDATE tblcalendario SET marcadorLocal=%s, marcadorVisitante=%s WHERE idCalendario=%s",
GetSQLValueString($_POST['local'], "text"),
GetSQLValueString($_POST['Visitante'], "text"),
GetSQLValueString($_POST['idCalendario'], "int"));



mysql_select_db($database_competicion, $competicion);
$Result1 = mysql_query($updateSQL, $competicion) or die(mysql_error());
}

$colname_Calendario = "-1";
if (isset($_GET['id'])) {
$colname_Calendario = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($database_competicion, $competicion);
$query_Calendario = sprintf("(SELECT tblcalendario.idCalendario, tblcalendario.jornada, tblhorarios.horario, tblcategorias.NombreEquipo, tblcalendario.marcadorLocal, CONCAT(tblclubes.nombrecorto, ' ', tblnivel.nombrenivel) as EXPR1, tblcalendario.marcadorVisitante, tblcalendario.local, tblcalendario.idFechaJornada, tblcategorias.idCategoria FROM tblnivel INNER JOIN (((tblcategorias INNER JOIN tblequiposcategorias ON tblcategorias.idCategoria = tblequiposcategorias.idCategoria) INNER JOIN tblequipo ON tblequiposcategorias.idEquipoCategoria = tblequipo.idEquipoCategoria) INNER JOIN (tblclubes INNER JOIN (tblhorarios INNER JOIN (tblequiposcompeticion INNER JOIN tblcalendario ON tblequiposcompeticion.IdEquiposCompeticion = tblcalendario.idEquipoCompeticion) ON tblhorarios.IdHorario = tblcalendario.idHorario) ON tblclubes.idClub = tblequiposcompeticion.IdClub) ON tblequipo.idEquipo = tblcalendario.idequipo) ON tblnivel.idNivel = tblequiposcompeticion.idNivel WHERE (((tblcalendario.idCalendario)=%s) AND ((tblcalendario.local)='0')) ORDER BY tblcalendario.idequipo) UNION ALL (SELECT tblcalendario.idCalendario, tblcalendario.jornada, tblhorarios.horario, CONCAT(tblclubes.nombrecorto, ' ', tblnivel.nombrenivel) as EXPR1, tblcalendario.marcadorVisitante, tblcategorias.NombreEquipo, tblcalendario.marcadorLocal, tblcalendario.local, tblcalendario.idFechaJornada, tblcategorias.idCategoria FROM tblnivel INNER JOIN (((tblcategorias INNER JOIN tblequiposcategorias ON tblcategorias.idCategoria = tblequiposcategorias.idCategoria) INNER JOIN tblequipo ON tblequiposcategorias.idEquipoCategoria = tblequipo.idEquipoCategoria) INNER JOIN (tblclubes INNER JOIN (tblhorarios INNER JOIN (tblequiposcompeticion INNER JOIN tblcalendario ON tblequiposcompeticion.IdEquiposCompeticion = tblcalendario.idEquipoCompeticion) ON tblhorarios.IdHorario = tblcalendario.idHorario) ON tblclubes.idClub = tblequiposcompeticion.IdClub) ON tblequipo.idEquipo = tblcalendario.idequipo) ON tblnivel.idNivel = tblequiposcompeticion.idNivel WHERE (((tblcalendario.idCalendario)=%s) AND ((tblcalendario.local)='1')) ORDER BY tblcalendario.idequipo)", $colname_Calendario,$colname_Calendario);
$Calendario = mysql_query($query_Calendario, $competicion) or die(mysql_error());
$row_Calendario = mysql_fetch_assoc($Calendario);
$totalRows_Calendario = mysql_num_rows($Calendario);
?>
  #2 (permalink)  
Antiguo 31/07/2010, 15:53
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: sobre formulario con recordset union all

Hola
bueno, creo que puedes agregar el script de la creación de la bd
sin embargo, me atrevo a decir que es el orden de la consulta lo que necesitas cambiar,
pues hasta donde veo siempre haces la misma sin importar si es visitante o local,
en cuyo caso yo haría una consulta inicial para saber si es local o visitante,
y dependiendo del resultado de esta primera consulta ejecuto la siguiente con
los campos en el orden en el que se necesitan
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 01/08/2010, 10:58
 
Fecha de Ingreso: julio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: sobre formulario con recordset union all

Veras, no entiendo mucho de script ni php, soy principiante en estos temas ya que los formularios los he hecho con el asistente de dreamweaver. El formulario me funciona bien cuando se abre ya que me muestra los registros de una consulta de columnas cruzadas para que cuando el valor en la tabla (tblcalendario.local) sea igual a 0, mi equipo local aparezca arriba así como su resultado y abajo el equipo visitante también con su resultado, al darle a grabar se ejecuta perfectamente, pero cuando el valor en la tabla (tblcalendario.local) es igual a 1 , me muestra también bien en primera posición el equipo visitante con su resultado y posteriormente mi equipo, pero al modificar el valor y darle a grabar, cuando se refresca el formulario los valores del campo de texto (local) me pasan al campo de texto (visitante) y viceversa.
No se si se entiende la idea, no se como solucionarlo.
  #4 (permalink)  
Antiguo 02/08/2010, 19:07
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: sobre formulario con recordset union all

Hola
bueno, pues como te dije en el post anterior, el problema es el orden de los campos en la consulta, y ya te comente como solucionarlo, tienes que hacer una u otra consulta (cambiar el orden de los campos de la consulta) dependiendo si el equipo es local o visitante
por ende primero tienes que consultar si es local o visitante, y luego usas un if, que pregunte si es local traiga estos campos en tal orden, y si no los mismos campos pero en diferente orden
la cosa es que como bien dices, te faltan conocimientos en scripts, si no sabes
mucho de php te recomiendo ir a webestilo.com. sitio donde encontrarás
tutoriales de php

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 04/08/2010, 00:34
 
Fecha de Ingreso: julio-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: sobre formulario con recordset union all

La verdad es que he hecho lo que has indicado y me ha salido bien, ahora me salen los parametros bien y los actualiza también bien, ya que he insertado un "if" según si el partido es local o visitante y después he ejecutado las dos consultas por separado, actualizandose bien. Ahora lo que también me gustaría sería como se podria variar la posición de estos valores en los cuadros de texto según si fuera local o visitante.

Las fotos son el ejemplo de los dos casos



Aquí te dejo el código generado. Muchas gracias.

<?php require_once('Connections/competicion.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_update"])) && ($_POST["MM_update"] == "form2")) {
$updateSQL = sprintf("UPDATE tblcalendario SET marcadorLocal=%s, marcadorVisitante=%s WHERE idCalendario=%s",
GetSQLValueString($_POST['marcadorLocal'], "text"),
GetSQLValueString($_POST['marcadorVisitante'], "text"),
GetSQLValueString($_POST['idCalendario'], "int"));

mysql_select_db($database_competicion, $competicion);
$Result1 = mysql_query($updateSQL, $competicion) or die(mysql_error());
}

$tipoLocal_local = "-1";
if (isset($_GET['id'])) {
$tipoLocal_local = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($database_competicion, $competicion);
$query_local = sprintf("SELECT tblcalendario.idCalendario, tblcalendario.`local`, tblcalendario.idFechaJornada FROM tblcalendario WHERE tblcalendario.idCalendario=%s", $tipoLocal_local);
$local = mysql_query($query_local, $competicion) or die(mysql_error());
$row_local = mysql_fetch_assoc($local);
$totalRows_local = mysql_num_rows($local);

$colname_Jornada = "-1";
if (isset($row_local['idCalendario'])) {
$colname_Jornada = (get_magic_quotes_gpc()) ? $row_local['idCalendario'] : addslashes($row_local['idCalendario']);
}
mysql_select_db($database_competicion, $competicion);

if ($row_local['local']== 0) {
$query_Jornada = sprintf("SELECT tblcalendario.idCalendario, tblcalendario.jornada, tblhorarios.horario, tblcategorias.NombreEquipo, tblcalendario.marcadorLocal, CONCAT(tblclubes.nombrecorto, ' ', tblnivel.nombrenivel) as EXPR1, tblcalendario.marcadorVisitante, tblcalendario.local, tblcalendario.idFechaJornada, tblcategorias.idCategoria FROM tblnivel INNER JOIN (((tblcategorias INNER JOIN tblequiposcategorias ON tblcategorias.idCategoria = tblequiposcategorias.idCategoria) INNER JOIN tblequipo ON tblequiposcategorias.idEquipoCategoria = tblequipo.idEquipoCategoria) INNER JOIN (tblclubes INNER JOIN (tblhorarios INNER JOIN (tblequiposcompeticion INNER JOIN tblcalendario ON tblequiposcompeticion.IdEquiposCompeticion = tblcalendario.idEquipoCompeticion) ON tblhorarios.IdHorario = tblcalendario.idHorario) ON tblclubes.idClub = tblequiposcompeticion.IdClub) ON tblequipo.idEquipo = tblcalendario.idequipo) ON tblnivel.idNivel = tblequiposcompeticion.idNivel WHERE (((tblcalendario.idCalendario)=%s) AND ((tblcalendario.local)='0')) ORDER BY tblcalendario.idequipo",
$colname_Jornada,$colname_Jornada);
$Jornada = mysql_query($query_Jornada, $competicion) or die(mysql_error());
$row_Jornada = mysql_fetch_assoc($Jornada);
$totalRows_Jornada = mysql_num_rows($Jornada);
}
else {
$query_Jornada = sprintf("SELECT tblcalendario.idCalendario, tblcalendario.jornada, tblhorarios.horario, CONCAT(tblclubes.nombrecorto, ' ', tblnivel.nombrenivel) as EXPR1, tblcalendario.marcadorVisitante, tblcategorias.NombreEquipo, tblcalendario.marcadorLocal, tblcalendario.local, tblcalendario.idFechaJornada, tblcategorias.idCategoria FROM tblnivel INNER JOIN (((tblcategorias INNER JOIN tblequiposcategorias ON tblcategorias.idCategoria = tblequiposcategorias.idCategoria) INNER JOIN tblequipo ON tblequiposcategorias.idEquipoCategoria = tblequipo.idEquipoCategoria) INNER JOIN (tblclubes INNER JOIN (tblhorarios INNER JOIN (tblequiposcompeticion INNER JOIN tblcalendario ON tblequiposcompeticion.IdEquiposCompeticion = tblcalendario.idEquipoCompeticion) ON tblhorarios.IdHorario = tblcalendario.idHorario) ON tblclubes.idClub = tblequiposcompeticion.IdClub) ON tblequipo.idEquipo = tblcalendario.idequipo) ON tblnivel.idNivel = tblequiposcompeticion.idNivel WHERE (((tblcalendario.idCalendario)=%s) AND ((tblcalendario.local)='1')) ORDER BY tblcalendario.idequipo",
$colname_Jornada,$colname_Jornada);
$Jornada = mysql_query($query_Jornada, $competicion) or die(mysql_error());
$row_Jornada = mysql_fetch_assoc($Jornada);
$totalRows_Jornada = mysql_num_rows($Jornada);
}

?>

<!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">
<!--
.Estilo2 {font-family: Arial, Helvetica, sans-serif; font-weight: bold; }
.Estilo12 {font-family: Arial; font-size: 14px; color: #FF0000; font-weight: bold; }
.Estilo14 {color: #000000}
.Estilo15 {
font-size: 24px;
font-family: Arial;
color: #FFFFFF;
}
body {
background-color: #E8EDA3;
}
-->
</style>


<script>
<!--
function MM_goToURL() { //v3.0
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//-->
</script>

</head>

<body>
<div align="center"><br />
<br />

<tr>
<td width="381" height="235" bgcolor="#006292">

<div align="center" class="Estilo2"><br />
<table width="378" border="1">
<tr>
<td width="368" bgcolor="#004080"><div align="center"><span class="Estilo14"><span class="Estilo15">MODIFICA LOS RESULTADOS</span></span></div></td>
</tr>
</table>
<br />
<br />
</div>
<form id="form1" name="form1" method="post" action="">
<input name="campoId" type="hidden" id="campoId" value="<?php echo $row_local['idCalendario']; ?>" />
</form>

<form method="post" name="form2" action="<?php echo $editFormAction; ?>">
<table width="184" align="center">
<tr valign="baseline">
<td width="148" align="right" nowrap>

<div align="left">
<input name="EquipoLocal" type="text" disabled="disabled" id="EquipoLocal" value="<?php echo $row_Jornada['NombreEquipo']; ?>" readonly="true">
</div></td>
<td width="24">

<div align="center">
<input type="text" name="marcadorLocal" value="<?php echo $row_Jornada['marcadorLocal']; ?>" size="3" />
</div></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><div align="left" class="Estilo12">

<div align="left"><br />
<br />
</div>
</div></td>
<td>
<div align="center"></div></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><div align="left">
<input name="EquipoVisitante" type="text" disabled="disabled" id="EquipoVisitante" value="<?php echo $row_Jornada['EXPR1']; ?>" readonly="true" />
</div></td>
<td><div align="center">
<input type="text" name="marcadorVisitante" value="<?php echo $row_Jornada['marcadorVisitante']; ?>" size="3" />
</div></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><div align="left"><span class="Estilo12"><br />
<br />
</span></div></td>
<td><div align="center"></div></td>
</tr>
<tr valign="baseline">
<td colspan="2" align="right" nowrap><div align="center" class="Estilo12">

<div align="center">
<input type="submit" value="Grabar">
<input name="Submit" type="submit" onclick="MM_goToURL('self','Detalle_Modifico_Jorna da.php?id=<?php echo $row_local['idFechaJornada']; ?>');return document.MM_returnValue" value="Salir" />
</div>
</div></td>
</tr>
</table>
<input type="hidden" name="MM_update" value="form2">
<input type="hidden" name="idCalendario" value="<?php echo $row_Jornada['idCalendario']; ?>">
</form></td>
</tr>

<br />
<br />
<br />
</div>
</body>
</html>
<?php
mysql_free_result($local);

mysql_free_result($Jornada);
?>

Última edición por viento256; 04/08/2010 a las 00:46
  #6 (permalink)  
Antiguo 04/08/2010, 09:04
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: sobre formulario con recordset union all

bueno, pues la imagen que pusiste quien es local en cada parte? en todo caso, lo solucionas del mismo modo que ya solucionaste las consultas, con un if en cada campo a mostrar que pregunte si es local o visitante, y dependiendo de esto, que muestre la info al principio o al final, así por ej si es local por ej siempre los muestre arriba, y si es visitante, entonces que los muestre abajo, o bueno, el orden que ya tu prefieras, pero pues igualmente lo solucionas con las condiciones
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: recordset, union, formulario
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 02:18.