Foros del Web » Programando para Internet » PHP »

reorganizar

Estas en el tema de reorganizar en el foro de PHP en Foros del Web. Hola, tengo un formulario para meter una serie de noticias. Tengo que cada noticia sume +1 a la columna de id. El problema es que ...
  #1 (permalink)  
Antiguo 19/09/2011, 09:47
 
Fecha de Ingreso: febrero-2011
Mensajes: 111
Antigüedad: 13 años, 2 meses
Puntos: 0
reorganizar

Hola, tengo un formulario para meter una serie de noticias.
Tengo que cada noticia sume +1 a la columna de id.
El problema es que cuando borro una noticia queda asi.
1
2
4
5
Y se me queda un numero vacio.
Quisiera saber si con php, puedo reorganizar la columna para que aparezca
1
2
3
4
Código PHP:
<?
$host 
""
$user ""
$pass ""
$db ""
$conn mysql_connect($host,$user,$pass) or die ("Error:".mysql_error());
mysql_select_db($db,$conn) or die ("Error:".mysql_error()); 

$id $_POST['id'];
if ( 
mysql_query("DELETE FROM `noticias` WHERE id = '$id'")){
echo 
'se borro';}
else{
echo
'error';}
?>
  #2 (permalink)  
Antiguo 19/09/2011, 10:00
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: reorganizar

mostranos como listas las noticias
  #3 (permalink)  
Antiguo 19/09/2011, 10:02
 
Fecha de Ingreso: agosto-2011
Ubicación: DF
Mensajes: 44
Antigüedad: 12 años, 8 meses
Puntos: 10
Respuesta: reorganizar

creo que es porque haces referencia a el id en la tabla es por eso mejor agrega otro identificador a la tabla y ordenalas por ese
  #4 (permalink)  
Antiguo 19/09/2011, 10:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 111
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: reorganizar

El problema no es al mostrar las noticias, sino que en la db se me queda un hueco.
Es para un proyecto y no puedo pasar de 10 en la columna id.
Y si hago 10 noticias y borro las 9 primeras, la siguiente es 11, cuando tendria que ser 2.

Por eso pregunto si hay alguna forma en php de que reorganice la columna de la db y al borrarlas. los numeros se pongan en orden.
  #5 (permalink)  
Antiguo 19/09/2011, 10:23
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Respuesta: reorganizar

como indica jjjericu deberías usar otro campo para identificar el número de la noticia y luego de borrar ordenas y cambias los identificadores de los números de la noticia y dejas de lado el ID
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #6 (permalink)  
Antiguo 19/09/2011, 10:25
 
Fecha de Ingreso: febrero-2011
Mensajes: 111
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: reorganizar

Y como los ordeno?
Estaba mirando como ordenar una columa de sql :S
y no encontre nada
  #7 (permalink)  
Antiguo 19/09/2011, 11:15
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: reorganizar

quisiera ver como traes los datos, y como generas el par item, cantidad,
de esa manera te puedo orientar, para no hacer yo todo el codigo despues me vas a decir que no encaja con el tuyo, dale mostranos algo por asi de magicos no somos
  #8 (permalink)  
Antiguo 19/09/2011, 11:45
 
Fecha de Ingreso: febrero-2011
Mensajes: 111
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: reorganizar

Añado :
Código PHP:
<?
$conn 
mysql_connect($host,$user,$pass) or die ("Error:".mysql_error());
mysql_select_db($db,$conn) or die ("Error:".mysql_error());


$nombre $_POST['nombre'];
$contenido $_POST['contenido'];

$limite 5;
$sql "SELECT * FROM ofertas order by id DESC LIMIT $limite";
$result mysql_query($sql,$conn) or die ("Errror:".mysql_error());
while (
$row mysql_fetch_array($result)){
$id $row["id"];
$id++;

$guardar mysql_query("insert into noticias (id,nombre,contenido) values ('$id','$nombre','$contenido')");

}



?>

Veo :
Código PHP:
<?
$conn 
mysql_connect($host,$user,$pass) or die ("Error:".mysql_error());
mysql_select_db($db,$conn) or die ("Error:".mysql_error()); 
$limite 5;
$sql "SELECT * FROM noticias order by id DESC LIMIT $limite";
$result mysql_query($sql,$conn) or die ("Errror:".mysql_error());
while (
$row mysql_fetch_array($result)){
$nombre $row["nombre"];
$contenido $row["contenido"];
echo 
'<p class="Estilo5">---'.$nombre.'---</p> <p>'.$contenido.'</p><p>&nbsp;</p>';
};
?>
</table>
  #9 (permalink)  
Antiguo 19/09/2011, 12:46
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: reorganizar

ha y vos queres cambiar el id de la noticia?
no es muy conveniente, si la noticia esta relacionada con alguna tabla
va a perder la referencia y lo mas seguro es que tengas que renombrar los id a mano
  #10 (permalink)  
Antiguo 19/09/2011, 12:48
 
Fecha de Ingreso: febrero-2011
Mensajes: 111
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: reorganizar

Eso me temia, googleare un poco mas a ver que solucion le puedo dar.
Pero como dices, lo mas seguro que a mano :(
  #11 (permalink)  
Antiguo 19/09/2011, 12:58
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: reorganizar

decimos el PORQUE? vos pensas que tenes que renombrar los id?
no existe tal necesidad
  #12 (permalink)  
Antiguo 19/09/2011, 13:01
 
Fecha de Ingreso: febrero-2011
Mensajes: 111
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: reorganizar

Si, por que es un proyecto de clase, el cual no deja que el id supere 10.
Si no se reorganiza cuando borro, sigue subiendo.
  #13 (permalink)  
Antiguo 19/09/2011, 13:24
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: reorganizar

entonces si por que no son muchos datos:
Código PHP:
Ver original
  1. <?
  2. $conn = mysql_connect($host,$user,$pass) or die ("Error:".mysql_error());
  3. mysql_select_db($db,$conn) or die ("Error:".mysql_error());
  4. $limite = 10;
  5. $sql = "SELECT * FROM noticias order by id DESC LIMIT $limite";
  6. $result = mysql_query($sql,$conn) or die ("Errror:".mysql_error());
  7. $i=1;
  8. while ($row = mysql_fetch_object($result)){
  9.     $update = "UPDATE noticias SET `id` = '$i' WHERE`id` =$row->id;";
  10.     $++;
  11. };
  12. ?>

Etiquetas: mysql
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 03:35.