SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: neorent en Jueves 23 de Noviembre de 2006, 22:24

Título: Otro Problema Mas
Publicado por: neorent en Jueves 23 de Noviembre de 2006, 22:24
que tal amigo del foro, bueno les comento, tengo una base de datos a la cual me conecto dese php, tonces todo funciona bien, el problema es que trato de rescatar el ultimo valor de una tabla especifica, este campo es autonumerico, tonces cuando hago una consulta para saber cual fue el ultimo campo ingresado me lo muestra super bien, y si hago un ingreso tambien, tonces cuando trato de nuevo de insertar otro nuevo campo me da un error de que el campo ya existe en la base, este problema ya me habia pasado con esta misma base de datos y un amigo del foro de visual vasic me ayudo a solucionarlo pk lo hacia en visual, el problema es que ahora esto mismo me paso en php y no se como hacerlo, bueno les dejo el link para que vean en lo que me ayudaron en el otro foro
http://foros.solocodigo.com/index.php?showtopic=18720&hl= (http://foros.solocodigo.com/index.php?showtopic=18720&hl=)
bueno yo no tengo idea de como hacerlo por eso pido la ayuda, tambien les dejo como hago la busqueda de ultimo folio, gracias de antemano a todos por darse el tiempo de leer este codigo
Código: Text
  1.  
  2. <?
  3. function obtener_nuevofolio()
  4. {
  5. $db= "\\\pc_soporte\c$\prueba\db_soporte.mdb";
  6. $basesoporte=("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=$db");
  7. $conexionfolio=odbc_connect($basesoporte,"","");
  8. $consultafolio= "select top 1 folio_atencion from maestro_atenciones ORDER BY folio_atencion desc";
  9. $rsfolio=odbc_exec($conexionfolio, $consultafolio);
  10. $num_rowsfolio = odbc_num_rows($rsfolio);
  11. $rowfolio = odbc_fetch_array($rsfolio);
  12. $folionuevo=0;
  13. $folionuevo= $rowfolio['folio_atencion'];
  14. $folionuevo++;
  15. return $folionuevo;
  16. }
  17. ?>
  18.  
  19.  
:hola:
Título: Re: Otro Problema Mas
Publicado por: F_Tanori en Jueves 23 de Noviembre de 2006, 22:37
A ver si entiendo

Quieres tomar el ultimo id para sumarle 1 y luego insertalo como el nuevo id


$id=1
$nuevoid=id+1

entonces $nuevoid=2 e insertar el nuevo id en la bd?

Código: Text
  1.  
  2. INSERT INTO tabla VALUES ($nuevoid,$otrocampo,$otro)
  3.  

Bueno, si es asi, no es necesario que incrementes el campo autonumerico porque para algo ya es autoincrement :P solo lo insertas como null

Código: Text
  1. INSERT INTO tabla VALUES (NULL,$otrocampo,$otro)
  2.  



Saludos
Título: Re: Otro Problema Mas
Publicado por: ibito en Jueves 23 de Noviembre de 2006, 22:52
F_Tanori, no se si esté mal como lo dices, pero yo lo hago asi (el INSERT)
Código: Text
  1.  
  2. INSERT INTO tabla (campo1, campo2, campo3) VALUES ($valor1, $valor2, $valor3)
  3.  
  4.  
eso si son valores numéricos, si no pongo
Código: Text
  1.  
  2. ... VALUES ('$valor1', '$valor2', '$valor3')
  3.  
  4.  
Título: Re: Otro Problema Mas
Publicado por: F_Tanori en Jueves 23 de Noviembre de 2006, 23:00
Cita de: "ibito"
F_Tanori, no se si esté mal como lo dices, pero yo lo hago asi (el INSERT)
Código: Text
  1.  
  2. INSERT INTO tabla (campo1, campo2, campo3) VALUES ($valor1, $valor2, $valor3)
  3.  
  4.  
eso si son valores numéricos, si no pongo
Código: Text
  1.  
  2. ... VALUES ('$valor1', '$valor2', '$valor3')
  3.  
  4.  
:P


En esa forma tambien puedes insertar, incluso en diferentes orden de los campos
Código: Text
  1.  
  2. INSERT INTO tabla (campo1, campo3) VALUES ($valor1,$valor3)
  3.  
  4. INSERT INTO tabla (campo3, campo1) VALUES ($valor3,$valor1)
  5.  
  6.  

De la otra manera no es necesario indicar el nombre

Código: Text
  1.  
  2. INSERT INTO tabla VALUES ($valor1,$valor2,$valor3)
  3.  

asumiendo que estan en el mismo orden y todos los campos,si funciona... bueno bueno si me equivoque es que olvide la palabra VALUES :P

Gracias
Título: Re: Otro Problema Mas
Publicado por: neorent en Viernes 24 de Noviembre de 2006, 13:30
muchas gracias por la ayuda, pero resulta que yo debo asignar el autonumerico, porque despues lo muestro en pantalla al momento de grabar tonces necesito saber cual es el numero para indicarle al usuario cual es su numero de atencion, odbc no tiene mysql_insert_id(), para saber el ultimo id ingresado tonces debo tener un control de los folios que se ingresan, bueno espero que me puedan ayudar o dar algun consejo con respecto a este tema, bueno amigos muchas gracias por su tiempo de antemano gracias
Título: Re: Otro Problema Mas
Publicado por: D0M41N en Viernes 29 de Diciembre de 2006, 17:22
si al ID lo pusiste autonumerico no hace falta que lo agregues, yo agrego solo los otros campos, el ID se autoincrementa porque asi lo espesifique.
Y lo podes mostrar igual. de hecho ni siquiera lo selecciono:

Código: Text
  1.  
  2. "INSERT INTO tabla (nombre,apellido,dni,direccion,telefono,localidad) VALUES ('$_POST[nombre]','$_POST[apellido]','$_POST[dni]','$_POST[direccion]','$_POST[telefono]','$_POST[localidad]')"
  3.  
  4.  

Ves? ni lo nombro al ID, pero como es autonumerico, cada row que agregue a la tabla se incrementa un valor.
Y despues si quiero ver el ID:
Código: Text
  1.  
  2. "SELECT id FROM tabla WHERE nombre = '$nombre'"
  3.  
  4.  

No entiendo para que lo queres autoincrementar vos, si igual es autoincrement.
Salu2 D0M41N.