Foros del Web » Programando para Internet » PHP »

Array PHP

Estas en el tema de Array PHP en el foro de PHP en Foros del Web. Hola que tal gente! Bueno acá ando con un problema que no puedo resolver. El tema es el siguiente, yo en mi MySQL tengo una ...
  #1 (permalink)  
Antiguo 10/07/2015, 14:30
 
Fecha de Ingreso: octubre-2012
Mensajes: 29
Antigüedad: 11 años, 6 meses
Puntos: 0
Array PHP

Hola que tal gente! Bueno acá ando con un problema que no puedo resolver. El tema es el siguiente, yo en mi MySQL tengo una lista de registro llamados así: (Esto seria en una tabla, osea cada tabla va a tener esos campos, ya que serian como usuarios distintos.) Registro1, Registro2, Registro3 y así hasta el 5 y otro campo que se llama NumRegistros. Bueno supongamos que yo borro el "Registro1" en MySQL el "Registro1" va a quedar vació, y supongamos también que alcance el máximo de registro osea "NumRegistro = 5", el problema es este que tengo un campo vació pero sin poder agregarle un valor. La idea seria que al borrarlo se reordene todo (osea que el registro 2 pase a ser el 1 y así con todos) pero no logro realizarlo. Si alguien sabe una manera fácil de hacerlo estaría agradecido!

Gracias de antemano!
  #2 (permalink)  
Antiguo 10/07/2015, 14:44
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Array PHP

Pero si eliminas el registro no tiene por qué quedar en blanco, debería borrarse completamente y el 2 pasaria a ser 1 y así sucesivamente, a menos que tengas un campo en la tabla que enumere cada registro ahí si quedaría faltando el 1 si se borrara pero por lo que escribes parece que no. Si puedes escribe el código que utilizas para eliminar el registro.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #3 (permalink)  
Antiguo 10/07/2015, 14:56
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, 5 meses
Puntos: 2658
Respuesta: Array PHP

Cita:
Iniciado por Wildem Ver Mensaje
Hola que tal gente! Bueno acá ando con un problema que no puedo resolver. El tema es el siguiente, yo en mi MySQL tengo una lista de registro llamados así: (Esto seria en una tabla, osea cada tabla va a tener esos campos, ya que serian como usuarios distintos.) Registro1, Registro2, Registro3 y así hasta el 5 y otro campo que se llama NumRegistros. Bueno supongamos que yo borro el "Registro1" en MySQL el "Registro1" va a quedar vació, y supongamos también que alcance el máximo de registro osea "NumRegistro = 5", el problema es este que tengo un campo vació pero sin poder agregarle un valor. La idea seria que al borrarlo se reordene todo (osea que el registro 2 pase a ser el 1 y así con todos) pero no logro realizarlo. Si alguien sabe una manera fácil de hacerlo estaría agradecido!

Gracias de antemano!
La verdad, tu descripción no tiene mucho sentido. Sería bueno que trataras de dar explicaciones técnicamente mejores.
Aún así, te haremos una aclaración: Una tabla en una base de datos no es una tabla de Excel, por lo que eliminar registros (líneas) los borra físicamente, es decir que cuando borras un registro simplemente deja de existir incluso su espacio en disco.
¿Se entiende?
Por lo demás, no tiene sentido reordenar nada en una tabla, porque para eso las bases de datos tienen recursos propios y extras.
Desde el vamos, el ordenamiento de una tabla depende exclusivamente de su clave primaria (PK), lo que debo suponer que tu tabla tiene. Esa PK es la que mantiene el orden físico de los registros en disco. Pero siendo que además puedes crear diferentes tipos de índices en la misma tabla (aunque sólo uno es PK), puedes obtener los registros ordenados como quieras, sin necesidad de andar haciendo reacomodamientos de nada.
Ahora bien, si el problema es que te salgan numerados en una determinada forma, eso tampoco se hace re-ordenando nada. MySQL cuenta con recursos para devolverte una cantidad de registros con una columna virtual numerada secuencialmente sin mayor esfuerzo, y sin afectar la PK.

Finalmente: No se deben renumerar PK numéricas secuenciales. Es una pésima práctica, y no aporta absolutamente ninguna ventaja.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 10/07/2015, 16:55
 
Fecha de Ingreso: octubre-2012
Mensajes: 29
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Array PHP

Perdon, quizás no me exprese bien, veamos la siguiente imagen de la tabla:


Ahí se ve exactamente como es la tabla, supongamos, me logueo con la cuenta Test1 (la de la imagen), voy a un panel por ejemplo y borro el "Registro1" (el contenido) osea lo dejo en blanco, el problema mio era que no se como ordenar de nuevo esos registro (como el Registro1 quedo en blanco, tendría que pasar el contenido del Registro2 al Registro1, el del Registro3 al Registro2 y así. Quedándome solamente el Registro5 en blanco y Cantidad de registros totales 4).

Espero que se entienda! Gracias por las respuestas anteriores, fue mi error en no expresarlo bien de primera.
  #5 (permalink)  
Antiguo 10/07/2015, 17:17
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Array PHP

eso no va a pasar a parte de que no entiendo tu logia con esa tabla
  #6 (permalink)  
Antiguo 10/07/2015, 17:18
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Array PHP

en tal caso lo que puedes es hacer un update de esa tavbla dejando el campo como NULL o vacio pero el resto de los registros va a seguir igual en su sitio
  #7 (permalink)  
Antiguo 10/07/2015, 17:26
 
Fecha de Ingreso: octubre-2012
Mensajes: 29
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Array PHP

Cita:
Iniciado por xfxstudios Ver Mensaje
eso no va a pasar a parte de que no entiendo tu logia con esa tabla
Lógica no se le ve porque solo he mostrado eso, para buscarle lógica deberia de explicar tooodo el sistema, pero no viene al caso, pero si no hay forma de reodernar todos esos campos no hay problema. Gracias a todos lo que se han tomado la molestia de responder!

Saludos!
  #8 (permalink)  
Antiguo 10/07/2015, 17:46
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, 5 meses
Puntos: 2658
Respuesta: Array PHP

Cita:
Iniciado por Wildem Ver Mensaje
Perdon, quizás no me exprese bien, veamos la siguiente imagen de la tabla:


Ahí se ve exactamente como es la tabla, supongamos, me logueo con la cuenta Test1 (la de la imagen), voy a un panel por ejemplo y borro el "Registro1" (el contenido) osea lo dejo en blanco, el problema mio era que no se como ordenar de nuevo esos registro (como el Registro1 quedo en blanco, tendría que pasar el contenido del Registro2 al Registro1, el del Registro3 al Registro2 y así. Quedándome solamente el Registro5 en blanco y Cantidad de registros totales 4).

Espero que se entienda! Gracias por las respuestas anteriores, fue mi error en no expresarlo bien de primera.


Es algo peor de lo que pensaba... Lo que quieres hacer no sólo no tiene sentido lógico, sino que además es una violación flagrante y completa al modelo relacional.
Da la impresión que desconoces los fundamentos más básicos del modelo Entidad-Relación...
Lo tuyo, disculpa que lo exprese de este modo, pero no ni una tabla, ni una base de datos.

Ignoro qué termino la define, pero seguro que NO es Bases de Datos.

Intentalo programáticamente, en la tabla visual, porque desde el ángulo de de BBDD y SQL, no existe.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 10/07/2015, 21:43
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Array PHP

Mira Wilden, traté de interpretar mas o menos lo que tu quieres, no se si sea lo que buscas o no pero prueba con este código:

Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es">
  3. <head>
  4.     <title>Prueba</title>
  5.     <?php
  6.         require_once ("coneccion.php");
  7.         if (isset($_GET['id']))
  8.         {
  9.             $gid = $_GET['id'];
  10.             $grg = $_GET['rg'];
  11.             $sql = "SELECT * FROM Prueba WHERE Nombre='Cliente ".$gid."'";
  12.             $result = $mysqli->query($sql) or die(mysqli_error());
  13.             if ($result)
  14.             {
  15.                 $rowEmp = $result->fetch_assoc();
  16.                 $dbrg[1]=$rowEmp['Reg1'];
  17.                 $dbrg[2]=$rowEmp['Reg2'];
  18.                 $dbrg[3]=$rowEmp['Reg3'];
  19.                 $dbrg[4]=$rowEmp['Reg4'];
  20.                 $dbrg[5]=$rowEmp['Reg5'];
  21.                 for ($i=$grg; $i <= 4; $i++)
  22.                 {
  23.                     $dbrg[$i]=$dbrg[$i+1];
  24.                 }
  25.                 $dbrg[5]="--";
  26.                 $sql="UPDATE Prueba SET  Reg1='".$dbrg[1]."', Reg2='".$dbrg[2]."', Reg3='".$dbrg[3]."', Reg4='".$dbrg[4]."', Reg5='".$dbrg[5]."' WHERE Nombre='Cliente ".$gid."'";
  27.                 $result = $mysqli->query($sql) or die(mysqli_error());
  28.                 echo "<script language='javascript'>location.assign ('tabla.php')</script>";
  29.             }
  30.         }
  31.         elseif (isset($_GET['rest']))
  32.         {
  33.             for ($i=$grg; $i <= 5; $i++)
  34.             {
  35.                 $sql="UPDATE Prueba SET  Reg1='Reg 1', Reg2='Reg 2', Reg3='Reg 3', Reg4='Reg 4', Reg5='Reg 5' WHERE Nombre='Cliente ".$i."'";
  36.                 $result = $mysqli->query($sql) or die(mysqli_error());
  37.                 echo "<script language='javascript'>location.assign ('tabla.php')</script>";
  38.             }
  39.         }
  40.     ?>
  41. </head>
  42. <body>
  43.     <table border='1'>
  44.         <tr>
  45.             <th width='15%'>Nombre</th>
  46.             <th width='15%'>Registro 1</th>
  47.             <th width='15%'>Registro 2</th>
  48.             <th width='15%'>Registro 3</th>
  49.             <th width='15%'>Registro 4</th>
  50.             <th width='15%'>Registro 5</th>
  51.         </tr>
  52.         <?php
  53.             $sql = "SELECT * FROM Prueba";
  54.             $result = $mysqli->query($sql) or die(mysqli_error());
  55.             if ($result)
  56.             {
  57.                 $iNum = 1;
  58.                 while ($rowEmp = $result->fetch_assoc())
  59.                 {
  60.                     $dbnombre=$rowEmp['Nombre'];
  61.                     $dbreg1=$rowEmp['Reg1'];
  62.                     $dbreg2=$rowEmp['Reg2'];
  63.                     $dbreg3=$rowEmp['Reg3'];
  64.                     $dbreg4=$rowEmp['Reg4'];
  65.                     $dbreg5=$rowEmp['Reg5'];
  66.                     echo "<tr>";
  67.                         echo "<td>".$dbnombre."</td>";
  68.                         echo "<td>".$dbreg1."&nbsp;&nbsp;&nbsp;<a href='tabla.php?id=".$iNum."&rg=1'><img title='Eliminar' src='uncheck.gif'></a></td>";
  69.                         echo "<td>".$dbreg2."&nbsp;&nbsp;&nbsp;<a href='tabla.php?id=".$iNum."&rg=2'><img title='Eliminar' src='uncheck.gif'></a></td>";
  70.                         echo "<td>".$dbreg3."&nbsp;&nbsp;&nbsp;<a href='tabla.php?id=".$iNum."&rg=3'><img title='Eliminar' src='uncheck.gif'></a></td>";
  71.                         echo "<td>".$dbreg4."&nbsp;&nbsp;&nbsp;<a href='tabla.php?id=".$iNum."&rg=4'><img title='Eliminar' src='uncheck.gif'></a></td>";
  72.                         echo "<td>".$dbreg5."&nbsp;&nbsp;&nbsp;<a href='tabla.php?id=".$iNum."&rg=5'><img title='Eliminar' src='uncheck.gif'></a></td>";
  73.                     echo "</tr>";
  74.                     $iNum += 1;
  75.                 }
  76.             }
  77.         ?>
  78.     </table>
  79.     <br><br>
  80.     <a href="tabla.php?rest=1">Restablecer</a>
  81. </body>
  82. </html>

Y en este link lo puedes ver funcionando a ver si es lo que necesitas. Analiza el código y ajústalo a tus necesidades. Espero te sirva.

http://srvprb.260mb.net/tabla.php
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]

Etiquetas: mysql, registro, tabla, usuarios
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 19:36.