Foros del Web » Programando para Internet » PHP »

Funcion desde Funcion

Estas en el tema de Funcion desde Funcion en el foro de PHP en Foros del Web. Buenas gente... a algunos le parecerá una pregunta interesante, a otros estúpida, y otros pensarán... este tío no tiene ni idea... Hasta que no me ...
  #1 (permalink)  
Antiguo 24/03/2009, 11:38
Avatar de aliza  
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 6
Funcion desde Funcion

Buenas gente... a algunos le parecerá una pregunta interesante, a otros estúpida, y otros pensarán... este tío no tiene ni idea... Hasta que no me lo aclaren no lo se...
No soy muy entendido en php, pero estoy empezando a curtirme con las aplicaciones que hago últimamente...

En resumen... se puede llamar a una función desde una funcíon en php???

Desde un formulario llamo a una función al pulsar un botón, y dependiendo de si los datos a introducir están ya en la tabla mysql o no, muestro un mensaje u otro, y la confimación para introducirlos y duplicar o no...

Ya se que lo mejor es usar AJAX, me lo han dicho, pero esque si se puede hacer así prefiero mantenerlo, porque tengo que entregar la aplicación en breve y no me da tiempo a aprender AJAX... algo he visto, pero no resuelvo.
__________________
Dando cabezados se aprende...
  #2 (permalink)  
Antiguo 24/03/2009, 11:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funcion desde Funcion

Si te refieres a llamar a funciones PHP en eventos del lado del cliente, no se puede.

Necesariamente tiene que ser un lenguaje del lado del cliente, como Javascript.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 24/03/2009, 11:47
Avatar de aliza  
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: Funcion desde Funcion

Lo que querría es pulsar un botón que me ejecute esta función, y nada mas... a ver si me pueden ayudar asi mejor... No se si es posible lo que hago en la función.

function pregunta($npedido,$referencia,$cantidad,$descripci on,$epedido,$tpedido){
//Declaramos las variables
$host='192.168.1.214';
$usr='usuario';
$pass='usuario';
$db='recambios';

//Conectamos a mysql. Si falla muestra mensaje
$conexion=mysql_connect($host,$usr,$pass)
or die("No se pudo conectar, por favor, contacta con el departamento de Informatica." );

//Seleccionamos la base de datos. Si falla muestra mensaje
mysql_select_db($db,$conexion)
or die("No se pudo seleccionar la Base de Datos, por favor, contacta con el departamento de Informatica.");

//Ejecuta la sentencia sql de insercion
$consulta=("SELECT * FROM referencias WHERE ((npedido='$npedido') AND (referencia='$referencia'))");
//global $npedido;//aqui le dices php que busque la variable globlar $npedido
//$npedido=mysql_insert_id();//aqui modifico el valor global de la variable
$resultado=mysql_query($consulta) or die (mysql_error());
if (mysql_num_rows($resultado)>0){
echo "<div>Ya existe una referencia igual para esta OR, confirmas que quieres añadirla?</div>";
echo "<table><tr>";
echo "<td><input type='submit' name='si' value='Si' /></td>";
echo "<td><input type='submit' name='no' value='No' /></td>";
echo "</tr></table>\n";
if (isset($_REQUEST['si'])){
insertar_referencia($npedido,$referencia,$cantidad ,$descripcion,$epedido,$tpedido);
}
else
echo "<div>No has duplicado referencia.</div>";
}
else
insertar_referencia($npedido,$referencia,$cantidad ,$descripcion,$epedido,$tpedido);
}
__________________
Dando cabezados se aprende...
  #4 (permalink)  
Antiguo 24/03/2009, 11:49
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funcion desde Funcion

Lo que puedes hacer es un formulario, así, al pulsar el botón se envía el formulario al PHP para que lo proceses y devuelva el resultado deseado.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 24/03/2009, 11:53
Avatar de aliza  
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: Funcion desde Funcion

Si, a ver, tengo un formulario, con él envío la información a la base de datos bien en caso de que no haya una referencia igual en la base de datos, pero el problema lo tengo cuando ya hay una referencia igual, que la función tira por el if, en vez de por el else, y llama a otra función, y no se si esque eso no es correcto, o que no lo hago bien... Muchas gracias David el Grande, a ver si me lo puedes aclarar mejor.


if (mysql_num_rows($resultado)>0){
echo "<div>Ya existe una referencia igual para esta OR, confirmas que quieres añadirla?</div>";
echo "<table><tr>";
echo "<td><input type='submit' name='si' value='Si' /></td>";
echo "<td><input type='submit' name='no' value='No' /></td>";
echo "</tr></table>\n";
if (isset($_REQUEST['si'])){
insertar_referencia($npedido,$referencia,$cantidad ,$descripcion,$epedido,$tpedido);
}
else
echo "<div>No has duplicado referencia.</div>";
}
else
insertar_referencia($npedido,$referencia,$cantidad ,$descripcion,$epedido,$tpedido);
__________________
Dando cabezados se aprende...
  #6 (permalink)  
Antiguo 24/03/2009, 11:59
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: Funcion desde Funcion

Pues sí puedes llamar una función desde otra función:
Código php:
Ver original
  1. function foo() {
  2.       echo 'foo';
  3. }
  4.  
  5. function bar() {
  6.       foo(); // Llamamos a foo
  7.       echo 'bar';
  8. }

Lo que NO puedes hacer de forma directa es llamar a una función PHP desde un botón, esto es porque PHP se procesa y ejecuta en el servidor, por lo que cuando ves el resultado en el cliente (Browser) es el resultado de la ejecución en el servidor, entonces ya no puedes procesar nada más.

Es por eso que si deseas llamar a una función desde un evento en el cliente, como un texto en un form necesitas hacerlo con AJAX, ya que de otra forma tienes que enviar todo el formulario a tu script PHP y ahí hacer el proceso y luego mostrar el resultado.

Saludos.
  #7 (permalink)  
Antiguo 24/03/2009, 12:16
Avatar de aliza  
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: Funcion desde Funcion

Muchas gracias GatorV, ya lo he entendido completamente después de darle muchas vueltas...creo...
Yo llamo a la función, pero no se interrumpe, por eso pasa de mi cuando le doy al botón Si para que se ejecute la segunda función.
__________________
Dando cabezados se aprende...
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 00:57.