PHP - Ayuda con un insert

 
Vista:
Imágen de perfil de jose
Val: 22
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un insert

Publicado por jose (9 intervenciones) el 11/07/2018 14:46:37
Saludos, estoy haciendo un sistema para manejar los certificados de unos curso y al realizar el listado de los participantes lo hace perfectamente, el problema es que esos resultados se generan en una tabla html y tengo que enviarlos a la base de datos, pero cuando lo hago me repite los registros. Claro, eso porque tengo el insert dentro de un while, si lo hago fuera del while no me reconoce la variable que tiene los datos, por favor si me pueden ayudar, gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<table class="table table-hover table-responsive">
    <tr class="info"><td><strong>Cédula</strong></td>
        <td><strong>Nombre</strong></td>
        <td><strong>Apellido</strong></td>
        <td><strong>Realizado en fecha</strong></td>
        <td><strong>Certificar</strong></td></tr>
    <?php
 
    while ($registro = mysqli_fetch_array($resultado,MYSQLI_BOTH)) {
        echo "<tr class='active'><td>{$registro['cedula']}</td>";
        echo "<td>{$registro['nombrep']}</td>";
        echo "<td>{$registro['apellido']}</td>";
        echo "<td>{$registro['fechaInicio']}</td>";
        echo "<td> <input type='checkbox' name='certifica'></tr>";
 
        $certificar_part = "INSERT INTO certificado
         VALUES|(NULL,'$registro[idp]','$categoriaCodigoSeleccionado','$fechaCurso')";
 
    }
 
echo "</table>";
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de John
Val: 91
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un insert

Publicado por John (33 intervenciones) el 11/07/2018 17:23:48
Hola Jose, prueba esto:
guarda en variables los resultados que obtienes del while
lo tienes asi:
1
echo "<td>{$registro['nombrep']}</td>";

intenta asi
1
echo "<td>{$nombre=$registro['nombrep']}</td>";

con esto ya puedes sacar el nombre del while y utilizarlo en un insert que este obviamente x fuera del while tambien.

1
2
3
$certificar_part = "INSERT INTO certificado

         VALUES|(NULL,'$nombre,etc,etc,etc)";

espero entiendas y te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de jose
Val: 22
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un insert

Publicado por jose (9 intervenciones) el 11/07/2018 20:05:56
Gracias John Probaré y te comento....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose
Val: 22
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un insert

Publicado por jose (9 intervenciones) el 11/07/2018 20:31:33
No, no me funciona. Lo coloque tal cual me indicaste y nada. Me arroja esto: Parse error: syntax error, unexpected '=', expecting '}'
No reconoce el = en ese ambito, lo coloco antes de { y nada, solo imprime el = al lado del resultado de la tabla. De todos modos muchas gracias. EL problema es que, como saco esa información fuera del while ya que es una variable local en el while, fuera no la reconoce.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose
Val: 22
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un insert

Publicado por jose (9 intervenciones) el 11/07/2018 20:56:57
John con tu comentario me diste luz, gracias! saqué el valor en variables pero de esta forma:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
while ($registro = mysqli_fetch_array($resultado,MYSQLI_BOTH)) {
    $cedul[]= $registro['cedula'];
    $nombr[]= $registro['nombrep'];
    $apell[]= $registro['apellido'];
    $fech[]= $registro['fechaInicio'];
    $chec[]= "<input type='checkbox' name='certifica[]' value='1'>";
    echo "<tr class='active'><td>{$registro['cedula']}</td>";
    echo "<td>{$registro['nombrep']}</td>";
    echo "<td>{$registro['apellido']}</td>";
    echo "<td>{$registro['fechaInicio']}</td>";
    echo "<td> <input type='checkbox' name='certifica'></tr>";
 
}
 
echo "</table>";

Ya los puedo imprimir y utilizar, ahora el problema es el checkbox, como obtengo el valor de el?
Expongo, este código debería, al seleccionar un participante de la lista con el checkbox debería enviarlo al insert (fuera del while) y el que no se selecciones no lo envía al insert, si me puedes ayudar, gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de John
Val: 91
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un insert

Publicado por John (33 intervenciones) el 11/07/2018 21:08:52
bueno amigo el tema de los checkbox si mal no recuerdo creo que debes usar para eso JavaScript, tengo un codigo donde alguna vez hice algo similar, pero tendras que analizarlo tu y adaptarlo a tu necesidad.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?php
include 'includes/conexion.php';
 
$registros_pagina=10;
 
	if (isset ($_GET["pagina"])){
		if ($_GET["pagina"]==1){
			header ("Location:historico_postulados.php");
		}else{
			$pagina=$_GET["pagina"];
		}
	}else{
		$pagina=1;
	}
 
	$empezar_desde=($pagina-1)*$registros_pagina;
	$total_cursantes = mysqli_query ($conexion, "SELECT * FROM cursantes");
	$registros = mysqli_query($conexion, "SELECT cedula FROM cursantes"); //seleccionar registros para contarlos posteriomente
	$total_registros = mysqli_num_rows($total_cursantes); //total de registros
	$total_paginas=ceil($total_registros/$registros_pagina);
	$empezar_desde= ($pagina-1) * $registros_pagina;
	$resultado = mysqli_query ($conexion, "SELECT * FROM cursantes LIMIT $empezar_desde,$registros_pagina");
?>
<html lang="es">
	<head>
		<title> Registro de Cursantes  </title>
		<meta charset="utf-8">
		<link rel="stylesheet" href="css/estilos.css" rel="stylesheet"> <!-- Estilos CSS-->
 
		<script type="text/javascript" src="js/jcheck.js"></script>
 
<script type="text/javascript">//<![CDATA[
$(window).load(function(){
$(function(){
    $('#checkMain').live('click',function(){
        $('.checkAll').attr('checked',($(this).is(':checked')) ? true:false);
    });
});
});//]]> 
</script>
 
	</head>
	<body>
 
	<div id="contenedor">
 
		<header>
		</header>
 
		<?php include ('includes/menu.php'); ?>
 
		<section>
 
		<h2>Registro de Cursantes</h2>
 
		<div class="opciones">
 
		<form action="buscar_cursantes.php" method="GET">												<!--Formulario de Busqueda-->
		<label> Buscar: <input type=text" name="buscar"/> </label>
		<input type="submit" name="enviando" value="OK!">
		</form>
		
		<form action="botones_cursantes.php" method="POST">											<!--Formulario para Eliminar Registros-->
		<input type="submit" name="BtnEliminar" value="Eliminar Seleccionados"/>                  <!--Boton de Eliminar Registros-->
		<input type="submit" name="BtnExcel" value="Generar Excel"/>
		<input type="submit" name="BtnMail" value="Notificar Participación"/>
		<input type="submit" name="BtnCertificado" value="Generar Certificados"/>
		
		</div>
				<table>
				<caption> Total de registros: <?php echo $total_registros;?> </caption>
					<tr class="info">
						<th>Cédula</th>
						<th>Nombre</th>
						<th>Sexo</th>
						<th>Correo</th>
						<th>Curso</th>
						<th>Modalidad</th>
						<th>Supervisor</th>
						<th>Correo Supervisor</th>
						<th>Unidad</th>
						<th>Zona</th>
						<th>Región</th>
						<th>Fecha</th>
						<th><input id="checkMain" type="checkbox"><a href> Seleccionar</a></input></th>
				    </tr>
				  <?php
				  while ($registros  = mysqli_fetch_array($resultado)):?>
				  <tr>
				    	<td><?php echo $registros['cedula']?></td>
				    	<td><?php echo $registros['nombre']?></td>
				    	<td><?php echo $registros['sexo']?></td>
				    	<td><?php echo $registros['correo']?></td>
						<td><?php echo $registros['curso']?></td>
						<td><?php echo $registros['modalidad']?></td>
						<td><?php echo $registros['supervisor']?></td>
						<td><?php echo $registros['mail_supervisor']?></td>
						<td><?php echo $registros['unidad']?></td>
						<td><?php echo $registros['zona']?></td>
						<td><?php echo $registros['region']?></td>
						<td><?php echo $registros['fecha']?></td>
						<td>
						<input class="checkAll" type="checkbox" name="cedulas[]" value="<?php echo $registros['cedula']?>"></input>   <!--Checkbox-->
						</td>
				   </tr>
				   <?php endwhile; ?>
				 </table>
				 
<script>
  // tell the embed parent frame the height of the content
  if (window.parent && window.parent.parent){
    window.parent.parent.postMessage(["resultsFrame", {
      height: document.body.getBoundingClientRect().height,
      slug: "Z8bmZ"
    }], "*")
  }
</script>
				 
				 <?php //enlaces para navegar por la paginación
				 echo "Página " . $pagina . " de " . $total_paginas . "<br>";

					for ($i=1; $i<=$total_paginas; $i++){
				echo " <a href='?pagina= " . $i . "'>" . $i . "</a>";
				}
				?>
		</form>
		</section>
 
		<footer>
		</footer>
		</div>
	</body>
</html>

fijate en la parte del javascript en las lineas del 32 al 40 y en la linea 103, creo que puedes sacar alguna idea de alli, suerte!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de John
Val: 91
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un insert

Publicado por John (33 intervenciones) el 11/07/2018 20:58:00
jose por lo que se entiende del codigo que dejaste, te puedo sugerir que trates de separar lo mas posible el codigo HTML de PHP, ya que asi se ve mas elegante tu codigo y es mas facil entenderlo, me tome la libertad de editarlo un poco.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
$consulta="tu consulta sql";
$resultado=mysqli_query($conexion,$consulta);
while ($registro = mysqli_fetch_array($resultado)) {
	$cedula=$registro['cedula'];
	$nombre=$registro['nombrep'];
	$apellido=$registro['apellido'];
	$fecha=$registro['fechaInicio'];
}
?>
 
<table class="table table-hover table-responsive">
    <tr class="info"><td><strong>Cédula</strong></td>
        <td><strong>Nombre</strong></td>
        <td><strong>Apellido</strong></td>
        <td><strong>Realizado en fecha</strong></td>
        <td><strong>Certificar</strong></td>
	</tr>
 
    <tr class='active'>
	<td> <?php $cedula; ?> </td>
        <td> <?php $nombre; ?> </td>
        <td> <?php $apellido; ?> </td>
        <td> <?php $fecha; ?> </td>
        <td> <input type='checkbox' name='certifica'>
	</tr>
</table>
 
<?php
$certificar_part = "INSERT INTO certificado (falta aqui el nombre de los campos donde vas a insertar los registros) VALUES|(NULL,'$cedula','$nombre','$apellido')";
// te falta aqui ejecutar la consulta, asi x ejemplo
$resultado=mysqli_query($conexion,$certificar_part);
?>

tambien queria decirte que un tu ejemplo la variable $certificar_part, nombras la tabla donde guardaras tus datos, pero no estas poniendo los nombres de los campos, tambien en esta parte $certificar_part, pones unas variables diferentes a las que generas en el while, por lo tanto no se entiende si son otras que quieres insertar o son las que estamos sacando con el while.

y ya finalmente si lo que quieres es insertar los datos en una tabla diferente de donde estas extrayendo los datos, debes hacerlo con un formulario.

como ves te falta algunas cosas, prueba primero lograr ver los registros en la tabla y luego vemos como los pasamos con un formulario
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de jose
Val: 22
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un insert

Publicado por jose (9 intervenciones) el 11/07/2018 21:19:53
Gracias por responde y colaborar. SI, mi código esta ligado al html (estructurado) estoy empezando en esto y me ha costado pero allí voy. Todos los comentarios, recomendaciones y aportes son bien recibidos. Vale, revisaré tu código y veré como lo adapto. Muy agradecido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de John
Val: 91
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con un insert

Publicado por John (33 intervenciones) el 11/07/2018 21:23:02
de nada, para eso estamos,listo nos avisas cuando termines y nos muestras a que conclusión llegaste
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar