Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/11/2011, 18:34
oms02
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: mi primer stored procedure

Hola gnzsoloyo, muchisimas gracias por la ayuda

Lo estoy intentando pero debo estar haciendo algo mal...

permiteme que cambie los nombres de las variables por los reales. Puse en un principio otros por hacerlo un poco mas generico.

Te comento: esto es lo que tengo introducido tal cual:

Código PHP:
Ver original
  1. $txt_consulta = "CREATE PROCEDURE condicion (IN ID INT)
  2.                     BEGIN
  3.                     DECLARE turnos INT;
  4.                     SET turnos = (SELECT turnos FROM principal WHERE ID = ID);
  5.                     IF turnos >9 THEN
  6.                         SELECT oro FROM recursos WHERE ID = ID;
  7.                     ELSE
  8.                         SELECT 'El valor minimo para acceder es de 10.';
  9.                     END IF;
  10.                 END;";
  11. $consulta = mysql_query($txt_consulta,$conexion);
  12. $row = mysql_fetch_array($consulta);

Disculpa que escriba como codigo PHP pero es que estoy tan verde en este asunto que ni tan siquiera estoy completamente seguro de que haya que hacerlo asi, es decir....supongo que todo se almacena como una cadena de texto en una variable ($txt_consulta en mi caso) y luego se hace la consulta....como si fuese una consulta normal...

Ahora, como llamo al SP?? se hace al final del todo? me refiero a, justo despues del ultimo end? te lo comento porque: 1º, no lo se, y 2º, tengo que montarmelo de alguna manera para poder poner la variable $ID. Si no , voy listo...

De todas formas, este ultimo asunto (de momento) esta de mas, porque parece ser que el error lo tengo antes de todo esto:

Resulta que he metido el SP en phpMyAdmin y me tira el siguiente error:

Código MySQL:
Ver original
  1. Error
  2.  
  3. consulta SQL:
  4.  
  5. CREATE PROCEDURE condicion( IN ID INT ) BEGIN DECLARE turnos INT;
  6.  
  7. MySQL ha dicho: Documentación
  8. #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3

Notas adicionales:

1) me he tomado la "libertad" de borrar la palabra "valor2" que escribes al final de la linea de codigo nº 10 (o linea nº 8 en el 2º de los codigos)porque no me cuadraba en absoluto...no se si es que estoy mas verde que una lechuga o es que has tenido un pequeño despiste ahi. Disculpa si es lo 1º

2) Me he fijado que en tu codigo, al hacer los SELECT, no escribes: WHERE ID = 'ID', sino que lo haces sin comillas simples.....supongo que es correcto y no lo he cambiado.

Una vez mas, gracias por la paciencia y demas, de veras, y disculpa la enorme torpeza.

Saludos!