Foros del Web » Programando para Internet » PHP »

problema mysql_assoc

Estas en el tema de problema mysql_assoc en el foro de PHP en Foros del Web. Ante todo disculpen si me equivoco de foro: he estado usando el SQLyog para hacer mi bd y consultas (osea me guio de la sintaxis ...
  #1 (permalink)  
Antiguo 30/03/2009, 11:27
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
problema mysql_assoc

Ante todo disculpen si me equivoco de foro:

he estado usando el SQLyog para hacer mi bd y consultas (osea me guio de la sintaxis que supongo es generico)..... bueno y en un query de php uso esto:

Código PHP:
$cad "select max(paciente_identificador) as identificador from paciente"
bueno este: select max(paciente_identificador) as identificador from paciente
lo uso para obtener el mayor numero del registro del campo paciente_identificador

cuando pruebo esta misma consulta consulta en el phpMyAdmin me sale elsiguiente error:

Código:
Unknown column 'paciente_identificador' in 'field list'
pero dicha columna existe..., ahora por consecuencia en la programacion que esta en el servidor, al querer guardar el registro me sale el siguiente error:

Código:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/jcrosale/public_html/.... on line 49
y justa en esa linea es por donde esta el query:

Código PHP:
$cad "select max(paciente_identificador) as identificador from paciente"
$query mysql_query($cad);
$row mysql_fetch_assoc($query);
$auto $row['identificador']; 
if(
$auto 9999){
    
$auto $row['identificador']+1;
}
else{
    
$auto 9999;

bueno solo intento recoger el mayor numero de la columna y sumarle uno consecutivo si es mayo que el numero 9999, este error solo me sale en el servidor.... localmente me funciona normal.... que puede ser este error??
__________________
Quitenme la vida pero no la bebida.
  #2 (permalink)  
Antiguo 30/03/2009, 11:33
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: problema mysql_assoc

Hola cesarpunk...

Estás seguro que cuando usas mysql, seleccionas la DB que es??
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 30/03/2009, 11:43
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: problema mysql_assoc

hola carlx: aqui va mi coneccion

define("DIR_CARPETA_MODULOS","../modules/");
require_once(DIR_CARPETA_MODULOS."conectar.php");

obviamente adentro hay una clase de conexion donde tiene todo los datos.

pero acabo de descubrir algo....

el query que normalmente hago:

Código PHP:
select max(paciente_identificador) as identificador from paciente"; 
el phpMyAdmin solo me acepta con:

Código PHP:
SELECT max( `paciente_indentificador` ) AS identificador
FROM paciente 
tendria que ponerle esas comillas inclinadas en mi query tambien? (si es que ese es el error....)

espero tu respuesta.
__________________
Quitenme la vida pero no la bebida.
  #4 (permalink)  
Antiguo 30/03/2009, 11:47
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: problema mysql_assoc

Si quieres... sino... también funciona...

Por regla, deberías usarlas, pero no creo que sea por eso :p

Haz en phpmyadmin esta consulta:

Código sql:
Ver original
  1. SELECT * FROM paciente;

No debería darte error, o hazle un:
Código sql:
Ver original
  1. DESCRIBE paciente;

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 30/03/2009, 11:57
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: problema mysql_assoc

Hola, le hice el describe y el select y me arroja normal los datos de mi tabla:

paciente_id int(5) NO PRI NULL auto_increment
paciente_flag_estado int(2) NO 0
paciente_nombre varchar(100) NO
paciente_apellidos varchar(100) NO
paciente_flag_edad int(2) NO 0
paciente_fecha_nacimiento datetime NO 0000-00-00 00:00:00
paciente_documento varchar(25) YES NULL
paciente_email varchar(100) YES NULL
paciente_telefono varchar(50) YES NULL
paciente_telefono2 varchar(50) YES NULL
paciente_direccion varchar(100) YES NULL
paciente_fecha_registro datetime NO 0000-00-00 00:00:00
paciente_fecha_modificacion datetime NO 0000-00-00 00:00:00
paciente_indentificador int(10) NO UNI 0

Ahora.... probe con esas comillas inclinadas en el query de mi php y me arroja el error del mysql_assoc().... pero cuando uso las comillas simples (' ') no me arroja errores..... pero no guarda el registro por la condicion que puse mas adelante

if($auto > 9999){
$auto = $row['identificador']+1;
}
else{
$auto = 9999;
}

en mi registro ya tengo un identificador 9999 (que es el primero) y siempre al insertar me sale el 9999 , pero como ese dato es unico y se repite no lo guarda... parace que el max(paciente_identificador) no funciona en el servidor, deberia buscar el mayor y sumarle 1
__________________
Quitenme la vida pero no la bebida.
  #6 (permalink)  
Antiguo 30/03/2009, 13:30
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: problema mysql_assoc

mmm creo que tienes error de nombres...

Tu campo se llama indentificador (con una "n" después de la i) no identificador. Según tu query lo llamas sin la n.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #7 (permalink)  
Antiguo 30/03/2009, 13:58
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: problema mysql_assoc

si... ya me di cuenta le habia puesto 'indentificador'... solucione una parte del problema .... mas bien queria preguntarte si esto esta bien....

Yo uso los procedimientos almacenados para registrar, ahora copie esos proc en el phpadmin y hasta ahi no hay problema. pero cuando ejecuto los procedimientos almacenados desde mi script de php no los inserta:

Código PHP:
$sql="call registra_paciente(0,'$nombre','$apellido','$flagedad','$nacimiento','$documento','$email','$telefono','$telefono2','$direccion','$fecha_enviobd','',$auto)";
$clase->ejecutarProc($sql); 
dicha clase tiene una funcion para ejecutar los proc

Código PHP:
function ejecutarProc($cad){
    
mysql_query($cad,$this->conexion);
    return 
$this->conexion;

pero lo extraño es que cuando copio el "call registra_paciente(0,'$nombre','$apellido','$flaged ad'..." en el phpmyadmin, me registra bien, osea quizas el problema no sean los procedimientos almacenados.... sera la funcion para ejecutar los proc?

le hice un print a la cadena y me arroja :

Código:
call registra_paciente(0,'Francisco','Morey','1','1971-09-28','D.N.I-4234234','[email protected]','','','','2009-03-30 12:48:43','',10016)
como el id es autonumerico no lo pongo en el proc..... que puede ser el problema?
__________________
Quitenme la vida pero no la bebida.
  #8 (permalink)  
Antiguo 30/03/2009, 14:15
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: problema mysql_assoc

Cita:
Iniciado por cesarpunk Ver Mensaje
Código:
call registra_paciente(0,'Francisco','Morey','1','1971-09-28','D.N.I-4234234','[email protected]','','','','2009-03-30 12:48:43','',10016)
Si copias y pegas eso en mysql, te ejecuta? o no?
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #9 (permalink)  
Antiguo 30/03/2009, 14:56
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: problema mysql_assoc

si eso lo ejecuta normal.... (he trabajado con ese procedimiento almacenado por 4 meses )

bueno, le puse el mysql_error y me sale el sgte mensaje:

execute command denied to user 'jcrosale_cesar'@'localhost' for routine 'jcrosale_dbjcrosales.registra_paciente'


investigue, y eso significa que tengo que ponerle permisos a mi usuario para que ejecute procs. (es extraño porque en el cpanel le he puesto todos los atributos)
Y lei sobre el GRANT .... como seria la sintaxis???? me guie de la sintaxis del manual del mysql, pero el phpMyadmin siempre me da el mensaje de "acceso denegado"
__________________
Quitenme la vida pero no la bebida.
  #10 (permalink)  
Antiguo 30/03/2009, 15:01
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: problema mysql_assoc

Pues creo que eso ya se sale de los parámetros de Php...

Intenta en el foro de mysql...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #11 (permalink)  
Antiguo 30/03/2009, 15:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problema mysql_assoc

Por otro lado como apunte, la librería estandar de MySQL en PHP no soporta StoredProcedures, debes de usar otra librería como MySQLi o PDO.

Saludos.
  #12 (permalink)  
Antiguo 30/03/2009, 16:23
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: problema mysql_assoc

este PDO esta bien interesante... tan solo debo invocarlo como esta en el manual... y basta con esa instalacion para poder usar los prepared statments??? (crei que solo era con msqli) porque quizas pueda aplicar los prepared statements sin tener que usar los procedures ... parece sencillo
__________________
Quitenme la vida pero no la bebida.

Última edición por cesarpunk; 30/03/2009 a las 16:41
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 07:16.