Tengoo que ingresar un valor en mysql, la columna no es AI y necesito que se comporte como tal

Hola he probado lo siguiente:

for($i=0;$i<=$nf;$i++)
{
$i=mysql_query("INSERT INTO datosgpx Set name='$ng' Where name='$nmax'");
$ng++;
 if ($nf<=$nmax){
 nmax++;
 }
while($nf!=count($act)){
$act = mysql_query("Update datosgpx Set name='$ng' Where name='$nmax'");
$nmax=$nmax +1, 
$ng=$ng +1 ;
}

todo sin éxito, ahora estoy tratando de sumar los valores del id al campo, con eso quedariaaumentados en uno y al final resetear el id, pero no lo logre aun, se aceptan ideas, gracias.

1 respuesta

Respuesta
1

Unas preguntas para ayudar a que podamos generar la solución:

¿Cuál es la rzón por la cual no usas el auto incrementable de mysql?

¿Tu script genera algún error en su ejecución?

¿Tu script agrega los registros desde el insert que enseñas?

gracias por tu interés, la tabla ya cuenta con campo id AI, PORQUE, por lo tanto no es posible agregarle esa característica desde mysql, ademas esta vinculada con varias otras tablas.

los script que puse no generaron error, sino un resultado no deseado, imprimen el mismo valor es todas las fila el resultado esperado es:

$ng= valor a ingresar
FIla 1=$ng =1
Fila 2=$ng+1 =2
Fila 3=$ng+2 =3

nuevamente gracias.

Hay problemas en tu lógica, empezando por el for que utilizas

for($i=0;$i<=$nf;$i++)
{
$i=mysql_query("INSERT INTO datosgpx Set name='$ng' Where name='$nmax'");
$ng++;
 if ($nf<=$nmax){
 nmax++;
}

Si te das cuenta, el valor de $i, lo modificas al asignarle el resultado de la query, lo cual interrumpe el flujo efectivo de tu bucle.

Desconozco donde obtuviste la variable $ng porque no veo cuando la instancias pero si deseas un valor autoincrementable, libera la variable $i y añádela a la sentencia sql para que puedas tener un valor correlativo en ejecución.

gracias nuevamente, soy nuevo en esto, entendí lo siguiente:

$ng esta iniciada y es un valor numérico.

for($i=0;$i<=$nf;$i++)
{
mysql_query("INSERT INTO datosgpx Set name='$ng' Where name='$nmax'");
$ng++;
if ($nf<=$nmax){
nmax++;
}

:no se como añadirla $i a la sentencia, dado que $ng es el valor a ingresar y $nmax es el primer valor de la columna.

Estoy viendo algo en tu consulta.

Estas haciendo un insert con un where y eso no es correcto. Esa sintaxis es correcta para un update.

Quita el where de tu sentencia sql y vuelve a intentar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas