Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: bels_mike en 26 Diciembre 2007, 16:42 pm



Título: Mysql, no se si se podrá hacer
Publicado por: bels_mike en 26 Diciembre 2007, 16:42 pm
Bueno, vamos a ver, voy a poenr un ejemplo primero antes de prguntar nada, imaginemos que tengo una tabla en la que tengo los siguientes registro de una noticia, id,titulo y texto, La id será automática, mi problema esta en que si borro el ultimo registro que tiene porejemplo la id 7 y agrego otro en vezde salir con el 7 saldrá con el 8, y al mirar la lista se salta uno, lo mismo si borro 3,  quiero que asigne la id mas baja posible, por lo que si tengo 6 entradas tendria que ser la 7.. se me entiende???


Título: Re: Mysql, no se si se podrá hacer
Publicado por: дٳŦ٭ en 26 Diciembre 2007, 16:51 pm
Así es el autoincrement, no se recorre.


Título: Re: Mysql, no se si se podrá hacer
Publicado por: bels_mike en 26 Diciembre 2007, 17:18 pm
si pero esque a ver... mi idea es tener un formulario para otra persona, y esta no sabe nada de mysql, xD asi que la idea seria que la id se asiganra sola, por eso lo tengo en auto increment, porque si no no vale para nada,o hay algun otro modo de hacer que se incremente uno???


Título: Re: Mysql, no se si se podrá hacer
Publicado por: Azielito en 26 Diciembre 2007, 18:00 pm
podrias hacer una consulta y obtener el numero de registros y entonces sumar uno y ya XD

no veo otro modo de hacerlo :D


Título: Re: Mysql, no se si se podrá hacer
Publicado por: bels_mike en 26 Diciembre 2007, 18:13 pm
ufff pero eso abria que meterlo aqui:
Código
  1. <?php
  2.   include("conect.php");
  3.   $link=Conectarse();
  4.   $local=$_POST['local'];
  5.   $localsmall=$_POST['localsmall'];  
  6.   $resultado=$_POST['resultado'];  
  7.   $visitante=$_POST['visitante'];
  8.   $visitantesmall=$_POST['visitantesmall'];  
  9.   $dia=$_POST['dia'];  
  10.   $estadio=$_POST['estadio'];  
  11.   $arbitro=$_POST['arbitro'];  
  12.   $simulador=$_POST['simulador'];  
  13.   $categoria=$_POST['categoria'];
  14.   $subcategoria=$_POST['subcategoria'];  
  15.   $sql = "insert into partidos (`local`,`localsmall`,`resultado`,`visitante`,`visitantesmall`,`dia`,`estadio`,`arbitro`,`simulador`,`categoria`,`subcategoria`)
  16.   values ('$local','$localsmall','$resultado','$visitante','$visitantesmall','$dia','$estadio','$arbitro','$simulador','$categoria','$subcategoria')";
  17.   mysql_query( $sql ,$link);
  18.  
  19.   header('Location:index.php')
  20. ?>

seria mucho lio ¿no? ademas de que todavia faltan varios registros xDDD no estan todos puestos, porejemplo resumen,detalleslocal....


Título: Re: Mysql, no se si se podrá hacer
Publicado por: Hans el Topo en 26 Diciembre 2007, 23:27 pm
podrias hacer una consulta y obtener el numero de registros y entonces sumar uno y ya XD

no veo otro modo de hacerlo :D

no se hace así, puesto que no va a borrar siempre el último xD



el modo que tienes que hacerlo sería algo así

Código:
select campoid+1 from partidos where (campoid+1) not in (select campoid from partidos)

lo que hace la consulta es encontrar la id que no tiene consecución y te devuelve el número siguiente
 ;D

tendrías que lanzar esa consulta antes de insertar

Código:
$resp=mysql_query("select campoid+1 from partidos where (campoid+1) not in (select campoid from partidos) order by campoid asc limit 1",$link);
if($f=mysql_fetch_array($resp)){
   //existen registros
  $campoid=$f[0];
}else{
  $campoid=1;
}

no lo he probado pero sería algo así xD


Título: Re: Mysql, no se si se podrá hacer
Publicado por: bels_mike en 26 Diciembre 2007, 23:36 pm
Mmmmmmmmm he hecho esto, que os parece:
Código
  1. <?php
  2.   include("conect.php");
  3.   $link=Conectarse();
  4.   $sql=mysql_query("",$link) or die (mysql_error());
  5. ?>

El problema es que no entiendo bien como lo he hecho prque aun no me queda claro como aplicar a una variable el numero que se saca con la consulta de arriba, osease esto: SELECT COUNT(id) FROM partidos
Código
  1. <?php echo mysql_result($sql, 0)+1;?>


Título: Re: Mysql, no se si se podrá hacer
Publicado por: Hans el Topo en 27 Diciembre 2007, 12:23 pm
Te he hecho el código...

lo tienes que poner delante de lo que tenías y luego utilizar la variable $campoid en el insert

P.D. no se ni pa que me molesto en contestar :rolleyes:


Título: Re: Mysql, no se si se podrá hacer
Publicado por: bels_mike en 27 Diciembre 2007, 17:52 pm
OK muchoas gracias, ya l otengo todo colocado jejejje