Foros del Web » Programando para Internet » PHP »

Eliminar registros en mysql de una tabla en html

Estas en el tema de Eliminar registros en mysql de una tabla en html en el foro de PHP en Foros del Web. Hola a todos, mando a visualizar todos los registros de una tabla en html, y en la última columna agrego un boton con el cual ...
  #1 (permalink)  
Antiguo 20/08/2008, 07:51
Avatar de Simbelmyne  
Fecha de Ingreso: febrero-2007
Mensajes: 33
Antigüedad: 17 años, 2 meses
Puntos: 0
Eliminar registros en mysql de una tabla en html

Hola a todos, mando a visualizar todos los registros de una tabla en html, y en la última columna agrego un boton con el cual quiero eliminar el registro seleccionado en mi tabla html de mi base de datos. Para ello he creado una función que se llama eliminaCita que mando a llamar desde el evento onclick de mi imagen pero resulta que al momento de correr mostrar por primera vez mi tabla me borra todos los registros sin ni siquiera haber hecho click .

Agradezco la atención y espero que alguien pueda ayudarme

Esta es mi función

Código PHP:
function ElimCita($CitaID)
{
    global 
$central;
    
$queryDel "delete from citas where cvecita = '"$CitaID "'";
    
$queryExecDel mysql_query($queryDel$central) or die (mysql_error());
    
$DeletedRecords mysql_affected_rows();
    if (
$DeletedRecords 0){
            echo 
"<script type=\"text/javascript\">\n";
            echo 
"alert(\"Se borró correctamente \" + $namedoc + ' registro');\n";
            echo 
"</script>\n";
    }
    else{
            echo 
"<script type=\"text/javascript\">\n";
            echo 
"alert('La acción no se ejecutó correctamente');\n";
            echo 
"</script>\n";    
    }


Y esta es mi tabla

Código HTML:
<table>
    <tr>
    </tr>
    <tr>
      <td height="134" colspan="2">
      <div class="Estilo2">
      <?php if ($totalRows_citas == 0) { 
        echo 'No hay citas registradas para este día'; 
        } else {?></div>
          <table width="1050" border="1" align="center">
  <tr class="Estilo2">
    <td align="center" width="120">Doctor</td>
    <td align="center" width="120">Paciente</td>
    <td align="center" width="80">Fecha </td>
    <td align="center" width="60">Hora</td>
    <td align="center" width="167">Observaciones</td>
    <td align="center" width="80">Opciones</td>
  </tr>
 
  <?php do { ?>
    //Y aqui voy llenando mi tabla con los registros
    <tr class="Estilo3">
      <td><?php echo $row_citas['doctor']; ?></td>
      <td><?php echo $row_citas['paciente']; ?></td>
      <td align="center"><?php echo $row_citas['fecha_cita']; ?></td>
      <td align="center"><?php echo $row_citas['hora']; ?></td>      
      <td><?php if ($row_citas['observaciones'] != '') 
	  				echo $row_citas['observaciones'];
				else
					echo "  - - - "; ?></td>
      <td align="center">
       <table width="73" border="0">
          <tr>
            <td align="center" ><a href="Cita-Modificacion.php?recordID=<?php echo $row_citas['cvecita']; ?>"><img src="imagenes/lapiz.JPG" width="21" height="22" border="0" alt="Editar"></a></td>
            <td align="center" ><a href="Cita-Detalles.php?recordID=<?php echo $row_citas['cvecita']; ?>"><img src="imagenes/detalles.JPG" width="22" height="22" alt="Detalles" border="0"></a></td>
            <!-- Aqui es donde deseo que al momento de hacer click, el usuario pueda eliminarse el registro-->
            <td align="center" ><img src="imagenes/cancelar.JPG" width="16" height="16" alt="Detalles" border="0" onClick="<?php ElimCita($row_citas['cvecita']); ?>"></td>
          </tr>
        </table> 
  #2 (permalink)  
Antiguo 20/08/2008, 08:05
Avatar de javico40  
Fecha de Ingreso: agosto-2008
Ubicación: Evergreen Terrace 123
Mensajes: 288
Antigüedad: 15 años, 8 meses
Puntos: 9
Respuesta: Eliminar registros en mysql de una tabla en html

Puede ser que la funcion se esta ejecutando inmediatamente, tiene que ver posiblemente con ese Do que tienes,voy a revisar tu codigo para darte solucion.
  #3 (permalink)  
Antiguo 20/08/2008, 08:08
Avatar de javico40  
Fecha de Ingreso: agosto-2008
Ubicación: Evergreen Terrace 123
Mensajes: 288
Antigüedad: 15 años, 8 meses
Puntos: 9
Respuesta: Eliminar registros en mysql de una tabla en html

cerraste esto:
Código:
<?php do { ?>
  #4 (permalink)  
Antiguo 20/08/2008, 08:08
Avatar de Simbelmyne  
Fecha de Ingreso: febrero-2007
Mensajes: 33
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Eliminar registros en mysql de una tabla en html

mil gracias :), espero tu ayuda
  #5 (permalink)  
Antiguo 20/08/2008, 08:09
Avatar de Simbelmyne  
Fecha de Ingreso: febrero-2007
Mensajes: 33
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Eliminar registros en mysql de una tabla en html

sip mira de hecho este es el cogigo que continua en mi pagina

</tr>
<?php } while ($row_citas = mysql_fetch_assoc($cita)); ?>
</table>
  #6 (permalink)  
Antiguo 20/08/2008, 08:29
Avatar de javico40  
Fecha de Ingreso: agosto-2008
Ubicación: Evergreen Terrace 123
Mensajes: 288
Antigüedad: 15 años, 8 meses
Puntos: 9
Respuesta: Eliminar registros en mysql de una tabla en html

Tu codigo elimina cita por cita, eso quiere decir que el do se esta ejecutando el numero de veces que registros tienes en tu tabla, prueba sacar el boton del do while, eso debe arreglar el problema, yo lo haria asi:


<table>
<tr>
</tr>
<tr>
<td height="134" colspan="2">
<div class="Estilo2">
<?php if ($totalRows_citas == 0) {
echo 'No hay citas registradas para este día';
} else {?></div>
<table width="1050" border="1" align="center">
<tr class="Estilo2">
<td align="center" width="120">Doctor</td>
<td align="center" width="120">Paciente</td>
<td align="center" width="80">Fecha </td>
<td align="center" width="60">Hora</td>
<td align="center" width="167">Observaciones</td>
<td align="center" width="80">Opciones</td>
</tr>

<?php do { ?>
//Y aqui voy llenando mi tabla con los registros
<tr class="Estilo3">
<td><?php echo $row_citas['doctor']; ?></td>
<td><?php echo $row_citas['paciente']; ?></td>
<td align="center"><?php echo $row_citas['fecha_cita']; ?></td>
<td align="center"><?php echo $row_citas['hora']; ?></td>
<td><?php if ($row_citas['observaciones'] != '')
echo $row_citas['observaciones'];
else
echo " - - - "; ?></td>
<td align="center">
<table width="73" border="0">
<tr>
<td align="center" ><a href="Cita-Modificacion.php?recordID=<?php echo $row_citas['cvecita']; ?>"><img src="imagenes/lapiz.JPG" width="21" height="22" border="0" alt="Editar"></a></td>
<td align="center" ><a href="Cita-Detalles.php?recordID=<?php echo $row_citas['cvecita']; ?>"><img src="imagenes/detalles.JPG" width="22" height="22" alt="Detalles" border="0">
<?php } while ($row_citas = mysql_fetch_assoc($cita)); ?>
</a></td>
</tr>
</table>
</tr>
<!-- Aqui es donde deseo que al momento de hacer click, el usuario pueda eliminarse el registro-->
<td align="center" ><img src="imagenes/cancelar.JPG" width="16" height="16" alt="Detalles" border="0" onClick="<?php ElimCita($row_citas['cvecita']); ?>"></td>
</tr>
</table>

Prueba sacando el boton de el do while, pon el boton fuera del ciclo.
  #7 (permalink)  
Antiguo 20/08/2008, 08:30
Avatar de javico40  
Fecha de Ingreso: agosto-2008
Ubicación: Evergreen Terrace 123
Mensajes: 288
Antigüedad: 15 años, 8 meses
Puntos: 9
Respuesta: Eliminar registros en mysql de una tabla en html

Tu codigo elimina cita por cita, eso quiere decir que el do se esta ejecutando el numero de veces que registros tienes en tu tabla, prueba sacar el boton del do while, eso debe arreglar el problema, yo lo haria asi:

Código:
<table>
    <tr>
    </tr>
    <tr>
      <td height="134" colspan="2">
      <div class="Estilo2">
      <?php if ($totalRows_citas == 0) { 
        echo 'No hay citas registradas para este día'; 
        } else {?></div>
          <table width="1050" border="1" align="center">
  <tr class="Estilo2">
    <td align="center" width="120">Doctor</td>
    <td align="center" width="120">Paciente</td>
    <td align="center" width="80">Fecha </td>
    <td align="center" width="60">Hora</td>
    <td align="center" width="167">Observaciones</td>
    <td align="center" width="80">Opciones</td>
  </tr>
 
  <?php do { ?>
    //Y aqui voy llenando mi tabla con los registros
    <tr class="Estilo3">
      <td><?php echo $row_citas['doctor']; ?></td>
      <td><?php echo $row_citas['paciente']; ?></td>
      <td align="center"><?php echo $row_citas['fecha_cita']; ?></td>
      <td align="center"><?php echo $row_citas['hora']; ?></td>      
      <td><?php if ($row_citas['observaciones'] != '') 
	  				echo $row_citas['observaciones'];
				else
					echo "  - - - "; ?></td>
      <td align="center">
       <table width="73" border="0">
          <tr>
            <td align="center" ><a href="Cita-Modificacion.php?recordID=<?php echo $row_citas['cvecita']; ?>"><img src="imagenes/lapiz.JPG" width="21" height="22" border="0" alt="Editar"></a></td>
            <td align="center" ><a href="Cita-Detalles.php?recordID=<?php echo $row_citas['cvecita']; ?>"><img src="imagenes/detalles.JPG" width="22" height="22" alt="Detalles" border="0">
<?php } while ($row_citas = mysql_fetch_assoc($cita)); ?>
</a></td>
</tr>
</table>
</tr>
<!-- Aqui es donde deseo que al momento de hacer click, el usuario pueda eliminarse el registro-->
            <td align="center" ><img src="imagenes/cancelar.JPG" width="16" height="16" alt="Detalles" border="0" onClick="<?php ElimCita($row_citas['cvecita']); ?>"></td>
</tr>
</table>
Prueba sacando el boton de el do while, pon el boton fuera del ciclo.
  #8 (permalink)  
Antiguo 20/08/2008, 09:50
Avatar de Simbelmyne  
Fecha de Ingreso: febrero-2007
Mensajes: 33
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Eliminar registros en mysql de una tabla en html

Hola lamentablemente no me funciona, porque la razon por la que se encuentra dentro del do while es porque se imprime un boton por cada uno de los registros en la tabla, lo que hizé fue pues crear un archivo alterno y pues mando los valores a esa pagina para que me ejecute la consulta :( gracias de cualquier modo :D
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:26.