Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

ayuda con registro

Estas en el tema de ayuda con registro en el foro de Mysql en Foros del Web. hola tengo un problema , tenga una base de datos para crear torneos pero a la hora de que se registren los jugadores , solo ...
  #1 (permalink)  
Antiguo 29/11/2010, 18:37
 
Fecha de Ingreso: noviembre-2010
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
ayuda con registro

hola tengo un problema , tenga una base de datos para crear torneos pero a la hora de que se registren los jugadores , solo se puede registrar un solo jugador cunado quieres registrarse el segundo jugador le da error cual se ria el problema [email protected] estas es la pagina http://www.we8-pes4.freeiz.com/
  #2 (permalink)  
Antiguo 29/11/2010, 18:51
Avatar de Willy_N  
Fecha de Ingreso: diciembre-2009
Ubicación: Cádiz
Mensajes: 334
Antigüedad: 14 años, 4 meses
Puntos: 18
Respuesta: ayuda con registro

Con tan escasa información como das hará falta un Rappel con una bola de cristal para poder decirte algo sensato.

Elabora un poco más hombre, aunque fuera solamente por mostrar tu respeto a los que te leen con interés y ganas de ayudarte.
  #3 (permalink)  
Antiguo 29/11/2010, 19:23
 
Fecha de Ingreso: noviembre-2010
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: ayuda con registro

esta es la estructura para phpMyAdmin solo se puede registrar una persona
Código PHP:
DROP TABLE IF EXISTS `encuentros`;
CREATE TABLE `encuentros` (
  `
idint(11NOT NULL auto_increment,
  `
id_1int(11NOT NULL default '0',
  `
id_2int(11NOT NULL default '0',
  `
resultadovarchar(255NOT NULL default '',
  `
ganadorint(11NOT NULL default '-1',
  `
fechaint(11NOT NULL default '0',
  `
id_juegoint(11NOT NULL default '0',
  
PRIMARY KEY  (`id`)
ENGINE=MyISAM;


-- 
-- 
Estructura de tabla para la tabla `equipos`
-- 

DROP TABLE IF EXISTS `equipos`;
CREATE TABLE `equipos` (
  `
idint(11NOT NULL auto_increment,
  `
id_juegoint(11NOT NULL default '0',
  `
nombre_clanvarchar(255NOT NULL default '',
  `
id_jugadoresvarchar(255NOT NULL default '',
  `
id_suplentesvarchar(255NOT NULL default '',
  `
ip_registrovarchar(15NOT NULL default '',
  
PRIMARY KEY  (`id`)
ENGINE=MyISAM COMMENT='el primer ID de los jugadores es el capitan del equipo';

-- 
-- 
Estructura de tabla para la tabla `juegos`
-- 

DROP TABLE IF EXISTS `juegos`;
CREATE TABLE `juegos` (
  `
idint(11NOT NULL auto_increment,
  `
nombrevarchar(255NOT NULL default '',
  `
numero_jugadorestinyint(4NOT NULL default '0',
  `
numero_suplentestinyint(4NOT NULL default '0',
  `
inscripcion_abiertaint(11NOT NULL default '1',
  `
tipo_torneoint(11NOT NULL default '1',
  `
cuadrotext NOT NULL,
  
PRIMARY KEY  (`id`)
ENGINE=MyISAM ;

-- --------------------------------------------------------

-- 
-- 
Estructura de tabla para la tabla `jugadores`
-- 

DROP TABLE IF EXISTS `jugadores`;
CREATE TABLE `jugadores` (
  `
idint(11NOT NULL auto_increment,
  `
nickvarchar(255NOT NULL default '',
  `
nombrevarchar(255NOT NULL default '',
  `
dnivarchar(9NOT NULL default '',
  `
localizaciontext NOT NULL,
  `
id_juegoint(11NOT NULL default '0',
  
PRIMARY KEY  (`id`)
ENGINE=MyISAM 
  #4 (permalink)  
Antiguo 30/11/2010, 07:07
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola jorge1353

Muevo tu tema al foro de Mysql desde Web general.

Saludos,
  #5 (permalink)  
Antiguo 03/12/2010, 22:00
 
Fecha de Ingreso: noviembre-2010
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: ayuda con registro

puedo pasarles el nombre de usuario pe donde esta alojado la web si me pueden ayudar
  #6 (permalink)  
Antiguo 04/12/2010, 08:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ayuda con registro

En principio, la tabla "jugadores" no tiene restricciones tales que te impidan insertar más de un jugador.
La única duda es procedimental: ¿Cómo estás intentando insertarlo? ¿Estás enviando manualmente el ID del jugador en el INSERT?
¿Podrías postear un ejemplo de datos que intentaste insertar y fallaron?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 04/12/2010, 22:20
 
Fecha de Ingreso: noviembre-2010
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: ayuda con registro

Cita:
Iniciado por gnzsoloyo Ver Mensaje
En principio, la tabla "jugadores" no tiene restricciones tales que te impidan insertar más de un jugador.
La única duda es procedimental: ¿Cómo estás intentando insertarlo? ¿Estás enviando manualmente el ID del jugador en el INSERT?
¿Podrías postear un ejemplo de datos que intentaste insertar y fallaron?
si ya lo intente manual mente pero en la pagina no aparece el registro del jugador
ai te pase algo de mis datos si me podes ayudar
  #8 (permalink)  
Antiguo 08/12/2010, 17:30
 
Fecha de Ingreso: noviembre-2010
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: ayuda con registro

Cita:
Iniciado por jorge1353 Ver Mensaje
hola tengo un problema , tenga una base de datos para crear torneos pero a la hora de que se registren los jugadores , solo se puede registrar un solo jugador cunado quieres registrarse el segundo jugador le da error cual se ria el problema [email protected] estas es la pagina http://www.we8-pes4.freeiz.com/
Código PHP:
Ver original
  1. <?php
  2.     $CONFIG=array(
  3.  
  4.     //DATOS DE LA BASE DE DATOS
  5.         "dbhost" =>     "localhost",
  6.         "dbuser" =>     "802",
  7.         "dbpasswd" =>   "123",
  8.         "dbname" =>     "torneos",
  9.    
  10.     //VERSION
  11.         "version" =>

alguna error aca
  #9 (permalink)  
Antiguo 08/12/2010, 21:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ayuda con registro

Cita:
si ya lo intente manual mente pero en la pagina no aparece el registro del jugador
ai te pase algo de mis datos si me podes ayudar
Genial, pero ¿qué fue lo que intentaste?
¿Con qué datos lo intentaste?
¿Con qué interfase hiciste la prueba manual?
¿Verificaste las cosas que te pasé por MP?
¿Comprobaste que realmente la sentencia de INSERT esté bien construida?
¿Programaste los métodos para que te devuelvan el error de MySQL que pueda producirse?


Te reitero un detalle: No existe en tu estructura de tablas ninguna razón para el comportamiento que comentas que tienes en el sistema, por lo que si hay un error no es estructural sino procedimental. Lo que hay que determinar es si es procedimental de PHP o de MySQL.

MP:
Cita:
Aclaremos que no soy experto en PHP, pero como manejo varios lenguajes, y he programado bastante en ellos, puedo seguir la lógica del PHP.
Leí parte de tu código para comprender cómo construyes las sentencias de SQL, y hay ciertas cosas que me causan dudas.
SQL tiene formas estrictas de manejar la sintaxis de los datos y que en esencia es fácil de descibir:
- Todo dato numérico se escribe solamente con su valor,
- todo dato de cadena de caracteres va entre apóstrofes, y su contenido escapado.
- toda fecha se deben encerrar entre caracteres determinados (apóstrofes en el caso de MySQL),
- todo dato de hora se coloca entre apostrofes,
- todo valor que exista como función de SQL debe ir con su nombre de función sin apostrofado.

En tu caso tu construyes el conjunto de datos así:
Código PHP:
Ver original
  1. if (count ($res2) == 0)
  2.       {
  3.           $tmp=array (
  4.               "nick" => addslashes (strip_tags ($jugador["nick"])),
  5.               "nombre" => addslashes (strip_tags ($jugador["nombre"])),
  6.               "dni" => strtoupper ($jugador["dni"]),
  7.               "id_juego" => $_SESSION['id_juego'],
  8.               "localizacion" => addslashes (strip_tags ($jugador["localizacion"]))
  9.               );
  10.           $id_jug = $BD->putTabla ("jugadores", $tmp);
  11.           $tmp=array (        
  12.               "nombre_clan" => addslashes (strip_tags ($jugador["nick"])),
  13.               "id_juego" => $_SESSION['id_juego'],
  14.               "id_jugadores" => $id_jug,
  15.               "ip_registro" => realip (),
  16.               );
  17.           $BD->putTabla ("equipos", $tmp);
  18.           $error = false;
  19.       }
y en este código creas y ejecutas la sentencia:
Código PHP:
Ver original
  1. function putTabla ($tabla, $array)
  2. {        
  3.     $valores= implode ("','", $array);
  4.     $campos= implode (",", array_keys ($array));
  5.  
  6.     $query = "INSERT INTO $tabla ($campos) VALUES ('$valores')";                            
  7.     mysql_query ($query ,$this->link);
  8.     return (mysql_insert_id ($this->link));
  9. }
En principio pareciera estar bien, pero no estoy seguro de que el valor tomado por $query esté correctamente escrito. Digo esto porque implode() crea una cadena desde un array, agregándole un separador. Pero tu estás poniendo en el separador los apóstrofes sin considerar los iniciales y finales, por lo que algún dato puede estar entrando mal.

Otro defecto que le veo a la función, es que tu estás dando por sentado que el resultado ha sido correcto, por lo que no tienes resuelto qué hacer si devuelve un error (control de errores), ni tampoco recuperas mensaje de error alguno, por lo que si falló la sentencia, no sabemos por qué.

La primera sugerencia que te daría es que recuperes el valor de $query para ver qué es lo que realmente estás mandando.
La segunda y muy importante, es que captures los errores que puedan darse en la ejecución. SI no se está insertando el segundo registro, debe ser forzosamente porque está devolviendo un error o un warning, y en ese caso mysql_insert_id() devuelve cero (0), por lo que jamás leerá otro registro.
En cualquier caso hay que ver qué es lo que MySQL dice.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 08/12/2010 a las 21:43
  #10 (permalink)  
Antiguo 08/12/2010, 21:49
 
Fecha de Ingreso: noviembre-2010
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: ayuda con registro

te lo ago en dos partes el registro que tengo
la primera parte
Código PHP:
Ver original
  1. <?php
  2.  
  3. // EL PRINCIPIO
  4. require "inc/phpcode/comun_top.php";
  5.  
  6. //VARIABLES VARIAS
  7.     $variables_sustituir->nuevaVariable ("{TITLE}", "Incribirse a los torneos");
  8.  
  9. //CABECERA
  10.     echo $variables_sustituir->parsearTemplate ("inc/template/comun_top.tpl");
  11.  
  12. // COMPRUEBO SI ESTOY ENVIANDO UN FORMULARIO DE REGISTRO
  13.     session_start ();  
  14.     if (isset ($var_modo) && $var_modo == "submit" && isset ($_SESSION['id_juego']))
  15.     {      
  16.         $error = true;
  17.        
  18.         // OBTENGO EL JUEGO A PARTIR DEL ID
  19.         $res = $BD->getTabla ("juegos", "id", $_SESSION['id_juego']);
  20.        
  21.         //COMPROBACIONES
  22.         if (count ($res) == 0 || $res[0]["inscripcion_abierta"] != 1)
  23.         {
  24.             header ("Location: registrarse.php");
  25.             exit ();
  26.         }
  27.        
  28.        
  29.         if (!(isset ($_SESSION['numero_seguridad']) && $_SESSION['numero_seguridad'] == $_POST["comprobacion"]))
  30.             $variables_sustituir->nuevaVariable ("{ERROR}", "ERROR: Codigo de comprobación incorrecto");
  31.         else
  32.         {   // CODIGO DE SEGURIDAD CORRECTO
  33.            
  34.             // TORNEO INDIVIDUAL
  35.             if  ($res[0]["numero_jugadores"]==1)
  36.             {
  37.                 $jugador = $_POST["jugador"];
  38.                
  39.                 // COMPRUEBO LOS DATOS
  40.                 if (comprobar_datos_jugador ($jugador))
  41.                 {
  42.                     $res2 = $BD->getTabla ("jugadores", "id_juego", $_SESSION['id_juego'], " AND dni = '". strtoupper($jugador["dni"]) ."'");
  43.                                        
  44.                     // SI EL JUGADOR NO ESTABA DADO DE ALTA ANTERIORMENTE EN ESE JUEGO
  45.                     if (count ($res2) == 0)
  46.                     {
  47.                         $tmp=array (
  48.                             "nick" => addslashes (strip_tags ($jugador["nick"])),
  49.                             "nombre" => addslashes (strip_tags ($jugador["nombre"])),
  50.                             "dni" => strtoupper ($jugador["dni"]),
  51.                             "id_juego" => $_SESSION['id_juego'],
  52.                             "localizacion" => addslashes (strip_tags ($jugador["localizacion"]))
  53.                             );
  54.                         $id_jug = $BD->putTabla ("jugadores", $tmp);
  55.                        
  56.                         //$res2 = $BD->getTabla ("jugadores", "id_juego", $_SESSION['id_juego'], " AND dni = '". strtoupper($jugador["dni"]) ."'");
  57.                         $tmp=array (           
  58.                             "nombre_clan" => addslashes (strip_tags ($jugador["nick"])),
  59.                             "id_juego" => $_SESSION['id_juego'],
  60.                             "id_jugadores" => $id_jug,
  61.                             "ip_registro" => realip (),
  62.                             );
  63.                         $BD->putTabla ("equipos", $tmp);
  64.                        
  65.                         $error = false;
  66.                     }else
  67.                         $variables_sustituir->nuevaVariable ("{ERROR}", "ERROR: El jugador ya esta dado de alta en este juego");
  68.                 }else
  69.                     $variables_sustituir->nuevaVariable ("{ERROR}", "ERROR: Datos del jugador incorrectos");
  70.                
  71.            
  72.             // TORNEO DE EQUIPOS
  73.             }else if ($res[0]["numero_jugadores"] > 1)
  74.             {          
  75.                 // COMPRUEBO EL CLAN                               
  76.                 if (isset ($_POST["clan"]) && trim ($_POST["clan"]) != "")
  77.                 {
  78.                     $res2 = $BD->getTabla ("equipos", "id_juego", $_SESSION['id_juego'], " AND nombre_clan = '". trim ($_POST["clan"]) ."'");
  79.                     if (count ($res2) == 0)
  80.                     {
  81.                         $jugadores = array();
  82.                         for ($i=0; $i<$res[0]["numero_jugadores"] && !$tmp_error; $i++)
  83.                         {
  84.                             $jugador = $_POST["jugador" . $i];
  85.                             // USO ESTA VARIABLE PARA CONTROLAR CUANDO HAY UN FALLO
  86.                             $tmp_error = true;
  87.                
  88.                             // COMPRUEBO LOS DATOS
  89.                             if (comprobar_datos_jugador ($jugador))
  90.                             {
  91.                                 $res2 = $BD->getTabla ("jugadores", "id_juego", $_SESSION['id_juego'], " AND dni = '". strtoupper($jugador["dni"]) ."'");
  92.                                                    
  93.                                 // SI EL JUGADOR NO ESTABA DADO DE ALTA ANTERIORMENTE EN ESE JUEGO
  94.                                 if (count ($res2) == 0)
  95.                                 {
  96.                                     $jugadores[]=array (
  97.                                         "nick" => addslashes (strip_tags ($jugador["nick"])),
  98.                                         "nombre" => addslashes (strip_tags ($jugador["nombre"])),
  99.                                         "dni" => strtoupper ($jugador["dni"]),
  100.                                         "id_juego" => $_SESSION['id_juego'],
  101.                                         "localizacion" => addslashes (strip_tags ($jugador["localizacion"]))
  102.                                         );
  103.                                     $tmp_error = false;
  104.                                 }else
  105.                                     $variables_sustituir->nuevaVariable ("{ERROR}", "ERROR: Un jugador ya esta dado de alta en este torneo");
  106.                             }else
  107.                                 $variables_sustituir->nuevaVariable ("{ERROR}", "ERROR: Datos de un jugador incorrectos");                         
  108.                         }
  109.                        
  110.                         $suplentes = array();
  111.                         for ($i=0; $i<$res[0]["numero_suplentes"]; $i++)
  112.                         {
  113.                             $jugador = $_POST["suplente" . $i];                    
  114.                
  115.                             // COMPRUEBO LOS DATOS
  116.                             if (comprobar_datos_jugador ($jugador))
  117.                             {
  118.                                 $res2 = $BD->getTabla ("jugadores", "id_juego", $_SESSION['id_juego'], " AND dni = '". strtoupper($jugador["dni"]) ."'");
  119.                                                    
  120.                                 // SI EL JUGADOR NO ESTABA DADO DE ALTA ANTERIORMENTE EN ESE JUEGO
  121.                                 if (count ($res2) == 0)
  122.                                 {
  123.                                     $suplentes[]=array (
  124.                                         "nick" => addslashes (strip_tags ($jugador["nick"])),
  125.                                         "nombre" => addslashes (strip_tags ($jugador["nombre"])),
  126.                                         "dni" => strtoupper ($jugador["dni"]),
  127.                                         "id_juego" => $_SESSION['id_juego'],
  128.                                         "localizacion" => addslashes (strip_tags ($jugador["localizacion"]))
  129.                                         );                                 
  130.                                 }else
  131.                                     $variables_sustituir->nuevaVariable ("{ERROR}", "ERROR: Un suplente ya esta dado de alta en este torneo");
  132.                             }
  133.                         }
  134.                        
  135.                         // TODO CORRECTO ASI Q PROCEDO A INTRODUCIR LOS DATOS EN LA BASE DE DATOS
  136.                         if (!$tmp_error)
  137.                         {
  138.                             $id_jugadores = array();
  139.                             foreach ($jugadores as $tmp)
  140.                             {
  141.                                 $id_jugadores[] = $BD->putTabla ("jugadores", $tmp);
  142.                                
  143.                                 //$res2 = $BD->getTabla ("jugadores", "id_juego", $_SESSION['id_juego'], " AND dni = '". $tmp["dni"] ."'");
  144.                                 //$id_jugadores[]=$res2[0]["id"];
  145.                             }
  146.                            
  147.                             $id_suplentes = array();
  148.                             foreach ($suplentes as $tmp)
  149.                             {
  150.                                 $id_suplentes[]=$BD->putTabla ("jugadores", $tmp);
  151.                                
  152.                                 //$res2 = $BD->getTabla ("jugadores", "id_juego", $_SESSION['id_juego'], " AND dni = '". $tmp["dni"] ."'");
  153.                                 //$id_suplentes[]=$res2[0]["id"];
  154.                             }
  #11 (permalink)  
Antiguo 08/12/2010, 21:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ayuda con registro

Todo esto ya lo vi, lo analicé, y no me responde las preguntas que hago:
1) Cómo queda armada finalmente la sentencia INSERT? (la cadena de texto que se enviara a la función mysql_query()).
2) ¿Verificaste o capturaste los posibles errores respondidos por MySQL?
3) ¿Con qué interfase y con qué datos probaste la inserción manualmente?

Entiende que hay dos puntos críticos en el asunto: La sentencia creada y la respuesta de MySQL. El resto es prácticamente irrelevante para tu problema. Es allí donde está el corazón del asunto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 08/12/2010, 21:54
 
Fecha de Ingreso: noviembre-2010
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: ayuda con registro

es lo que sigue des del 154
Código PHP:
Ver original
  1. $tmp=array (                           
  2.                                 "id_juego" => $_SESSION['id_juego'],
  3.                                 "nombre_clan" => addslashes(strip_tags ($_POST["clan"])),
  4.                                 "id_jugadores" => implode(",", $id_jugadores),
  5.                                 "id_suplentes" => implode(",", $id_suplentes),
  6.                                 "ip_registro" => realip (),
  7.                             );
  8.                             $BD->putTabla ("equipos", $tmp);
  9.                        
  10.                             $error = false;
  11.                         }
  12.                                                
  13.                     }else
  14.                         $variables_sustituir->nuevaVariable ("{ERROR}", "ERROR: El clan ya esta inscrito a este torneo");
  15.                 }else
  16.                     $variables_sustituir->nuevaVariable ("{ERROR}", "ERROR: Nombre del clan incorrecto");
  17.                                                
  18.             }
  19.            
  20.         }      
  21.         unset ($_SESSION['numero_seguridad']);
  22.        
  23.         if ($error)
  24.             $var_id_juego = $_SESSION['id_juego'];
  25.         else
  26.         {
  27.             header("Location: registrarse.php?modo=exito");
  28.             exit ();   
  29.         }
  30.        
  31.     }else if (isset ($var_modo) && $var_modo == "exito" && isset ($_SESSION['id_juego']))
  32.     {      
  33.         $res = $BD->getTabla ("juegos", "id", $_SESSION['id_juego']);      
  34.         echo "<div class='divExito'>Registrado al torneo de " . $res[0]["nombre"] . "</div>";
  35.         unset ($_SESSION['id_juego']);
  36.         header( 'refresh: 3; url=index.php');
  37.     }
  38.    
  39.    
  40.     // EL MODO POR DEFECTO
  41.     if (!isset ($var_id_juego))
  42.     {
  43.         $cuerpo = file_get_contents  ("inc/template/registrarse_body.tpl");
  44.         $res = $BD->getTabla ("juegos", "numero_jugadores", "1", " AND inscripcion_abierta = '1'");
  45.         if (count ($res)>0)
  46.         {
  47.             echo "<h4>Torneos individuales</h4>";
  48.             foreach ($res as $fila)
  49.             {
  50.                 $variables_sustituir->nuevaVariable ("{REGISTRARSE_LINK}", "registrarse.php?id_juego=". $fila["id"]);
  51.                 $variables_sustituir->nuevaVariable ("{REGISTRARSE_NOMBRE}", $fila["nombre"]);
  52.                
  53.                 echo $variables_sustituir->parsearCadena ($cuerpo);
  54.             }          
  55.         }
  56.         $res = $BD->getTabla ("juegos", "", "", "WHERE `numero_jugadores` > '1' AND inscripcion_abierta = '1'");
  57.         if (count ($res)>0)
  58.         {
  59.             echo "<h4>Torneos de equipo</h4>";
  60.             foreach ($res as $fila)
  61.             {
  62.                 $variables_sustituir->nuevaVariable ("{REGISTRARSE_LINK}", "registrarse.php?id_juego=". $fila["id"]);
  63.                 $variables_sustituir->nuevaVariable ("{REGISTRARSE_NOMBRE}", $fila["nombre"]);
  64.                
  65.                 echo $variables_sustituir->parsearCadena ($cuerpo);
  66.             }          
  67.         }
  68.     }else
  69.     // MODO DE REGISTRO A UN JUEGO EN PARTICULAR
  70.     {
  71.         // COMPRUEBO Q ES UN ID VALIDO
  72.         $res = $BD->getTabla ("juegos", "id", $var_id_juego);
  73.         if (count ($res) == 0 || $res[0]["inscripcion_abierta"] != 1)
  74.         {
  75.             header ("Location: registrarse.php");
  76.             exit ();
  77.         }
  78.                
  79.         $_SESSION['id_juego'] = $var_id_juego;     
  80.                        
  81.         // EL REGISTRO ES DIFERENTE EN FUNCION DE QUE SEA INDIVIDUAL O COLECTIVO
  82.         if  ($res[0]["numero_jugadores"]==1)
  83.         {
  84.             $cuerpo = file_get_contents  ("inc/template/registrarse_jugador.tpl");
  85.                                                        
  86.             // PRINCIPIO DEL FORMULARIO
  87.             $variables_sustituir->nuevaVariable ("{FORMULARIO_TITULO}", "Inscribiendose en el torneo de " . $res[0]["nombre"]);
  88.             echo $variables_sustituir->parsearTemplate ("inc/template/registrarse_form_top.tpl");
  89.            
  90.             $variables_sustituir->nuevaVariable ("{JUGADOR_TITULO}", "Jugador");
  91.             $variables_sustituir->nuevaVariable ("{JUGADOR}", "jugador");
  92.             echo $variables_sustituir->parsearCadena ($cuerpo);
  93.            
  94.             // FIN DEL FORMULARIO
  95.             echo $variables_sustituir->parsearTemplate ("inc/template/registrarse_form_bottom.tpl");
  96.            
  97.         }else if  ($res[0]["numero_jugadores"]>1)
  98.         {
  99.             $cuerpo = file_get_contents  ("inc/template/registrarse_jugador.tpl");
  100.            
  101.             // PRINCIPIO DEL FORMULARIO
  102.             $variables_sustituir->nuevaVariable ("{FORMULARIO_TITULO}", "Inscribiendose en el torneo de " . $res[0]["nombre"]);
  103.             echo $variables_sustituir->parsearTemplate ("inc/template/registrarse_form_top.tpl");
  104.            
  105.             echo $variables_sustituir->parsearTemplate ("inc/template/registrarse_equipo.tpl");
  106.            
  107.             // LOS JUGADORES
  108.             echo "<h3>Debes rellenar todos los jugadores</h3>El primer jugador se considerará el capitán del equipo";          
  109.             for ($i=0; $i<$res[0]["numero_jugadores"]; $i++)
  110.             {
  111.                 $variables_sustituir->nuevaVariable ("{JUGADOR_TITULO}", "Jugador ". ($i+1));
  112.                 $variables_sustituir->nuevaVariable ("{JUGADOR}", "jugador$i");
  113.                 echo $variables_sustituir->parsearCadena ($cuerpo);
  114.             }
  115.            
  116.             // LOS JUGADORES SUPLENTES         
  117.             echo "<h3>No es obligatorio tener suplentes</h3>";
  118.             for ($i=0; $i<$res[0]["numero_suplentes"]; $i++)
  119.             {
  120.                 $variables_sustituir->nuevaVariable ("{JUGADOR_TITULO}", "Suplente ". ($i+1));
  121.                 $variables_sustituir->nuevaVariable ("{JUGADOR}", "suplente$i");
  122.                 echo $variables_sustituir->parsearCadena ($cuerpo);
  123.             }
  124.            
  125.             // FIN DEL FORMULARIO
  126.             echo $variables_sustituir->parsearTemplate ("inc/template/registrarse_form_bottom.tpl");
  127.         }
  128.     }
  129.    
  130. // EL FIN
  131. require "inc/phpcode/comun_bottom.php";
  132.  
  133. ?>
  #13 (permalink)  
Antiguo 08/12/2010, 21:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ayuda con registro

Insisto:
Cita:
1) Cómo queda armada finalmente la sentencia INSERT? (la cadena de texto que se enviara a la función mysql_query()).
2) ¿Verificaste o capturaste los posibles errores respondidos por MySQL?
3) ¿Con qué interfase y con qué datos probaste la inserción manualmente?
Todo lo que has puesto de PHP no afecta el punto esencial, que es lo que ya te expresé: 1) Sentencia, 2) Respuesta de MySQL, 3) Datos de la prueba.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 08/12/2010, 21:57
 
Fecha de Ingreso: noviembre-2010
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: ayuda con registro

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Todo esto ya lo vi, lo analicé, y no me responde las preguntas que hago:
1) Cómo queda armada finalmente la sentencia INSERT? (la cadena de texto que se enviara a la función mysql_query()).
2) ¿Verificaste o capturaste los posibles errores respondidos por MySQL?
3) ¿Con qué interfase y con qué datos probaste la inserción manualmente?

Entiende que hay dos puntos críticos en el asunto: La sentencia creada y la respuesta de MySQL. El resto es prácticamente irrelevante para tu problema. Es allí donde está el corazón del asunto.

el registro que tengo es estre esta en dos partes
  #15 (permalink)  
Antiguo 08/12/2010, 21:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ayuda con registro

Eso no es importante:
Cita:
1) Cómo queda armada finalmente la sentencia INSERT? (la cadena de texto que se enviara a la función mysql_query()).
2) ¿Verificaste o capturaste los posibles errores respondidos por MySQL?
3) ¿Con qué interfase y con qué datos probaste la inserción manualmente?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #16 (permalink)  
Antiguo 08/12/2010, 22:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ayuda con registro

Mira, para que veas que no es la tabla en sí lo que puede ocasionar el problema, sino la forma en que se use, comé tu script, generé la base y ejecuté estas tres sentencias:
Código MySQL:
Ver original
  1. mysql> INSERT INTO jugadores(nick, nombre, dni, localizacion, id_juego)
  2.     -> VALUES('JAM56', 'ALBERTO DIAZ YADAROLA', 12345567, 'MI CASA', 1);
  3. Query OK, 1 row affected (0.10 sec)
  4.  
  5. mysql> INSERT INTO jugadores(nick, nombre, dni, localizacion, id_juego)
  6.     -> VALUES('MANUELVER', 'MANUEL VERGARA LEMOS', 145567, 'CASALES', 1);
  7. Query OK, 1 row affected (0.00 sec)
  8.  
  9. mysql> SELECT * FROM jugadores;
  10. +----+-----------+-----------------------+----------+--------------+----------+
  11. | id | nick      | nombre                | dni      | localizacion | id_juego |
  12. +----+-----------+-----------------------+----------+--------------+----------+
  13. |  1 | JAM56     | ALBERTO DIAZ YADAROLA | 12345567 | MI CASA      |        1 |
  14. |  2 | MANUELVER | MANUEL VERGARA LEMOS  | 145567   | CASALES      |        1 |
  15. +----+-----------+-----------------------+----------+--------------+----------+
  16. 2 rows in set (0.00 sec)
Como puedes apreciar, ambos registros se insertaron perfectamente. Ahora bien, si, como sospecho, la sentencia de inserción no se generó correctamente (no tiene los apóstrofes inicial y final de los valores), podría suceder esto:
Código MySQL:
Ver original
  1. mysql> INSERT INTO jugadores(nick, nombre, dni, localizacion, id_juego)
  2.     -> VALUES(FEDERICOVB','FEDERICO VELEZ BUENO', 145567, 'CASALES', '1);
  3. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
  4. corresponds to your MySQL server version for the right syntax to use near '','FEDERICO
  5. VELEZ BUENO', 145567, 'CASALES',
  6. '1)' at line 2
Pero es una situación indetectable con el código de creación y ejecución de la sentencia que tu tienes.
O bien, si estás manejando los ID autonuméricos por ti mismo, podría darse esta situación:
Código MySQL:
Ver original
  1. mysql> INSERT INTO jugadores(id, nick, nombre, dni, localizacion, id_juego)
  2.     -> VALUES('1','FEDERICOVB','FEDERICO VELEZ BUENO', 145567, 'CASALES', '1');
  3. ERROR 1062 (23000): Duplicate entry '1' for key 1
  4. mysql>
Tampoco es detectable en tu sistema, porque no capturas los errores de MySQL...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #17 (permalink)  
Antiguo 13/12/2010, 21:01
 
Fecha de Ingreso: noviembre-2010
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: ayuda con registro

Cita:
Iniciado por jorge1353 Ver Mensaje
hola tengo un problema , tenga una base de datos para crear torneos pero a la hora de que se registren los jugadores , solo se puede registrar un solo jugador cunado quieres registrarse el segundo jugador le da error cual se ria el problema [email protected] estas es la pagina http://www.we8-pes4.freeiz.com/
agradesco a todos los que me trataron de ayudar como soy novato en todo esto , el problema no lo solucione es proble de escritura de php

Etiquetas: registro
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 00:42.