ActionScript - Problemas con Flash+Mysql+php

 
Vista:

Problemas con Flash+Mysql+php

Publicado por Daniel** (1 intervención) el 09/11/2010 00:19:09
Hola a todos, no logro que flash me traiga 3 campos de una base mysql a traves de PHP. tengo correctamente instalado y configurado el servidor(WAMP)
Lo q quiero lograr es q mi cliente ingresando solo un numero de tramite, me devuelva el equipo en cuestion, el estado del tramite y la fecha de reparacion.
Les envio en codigo (lo tengo un en boton)cuando hago click en este boton, no hace absolutamente nada.;

on (release)
{
if (orden.text=="" )
{
mensaje.text= "ATENCION: Debe completar obligatoriamente el N° de orden.";
}

else
{

var envio:LoadVars = new LoadVars();
var recibo:LoadVars = new LoadVars();

function envio_formulario()
{
envio.orden = orden.text;
envio.sendAndLoad("consulta_orden.php", recibo, "POST");
}
recibo.onLoad = function(exito) {

if (exito) {

componente.text=recibo.fila[equipo];
estado.text=recibo.fila[estado];
fecha.text=recibo.fila[fecha];
}
else {
mensaje = "Registro no encontrado";
componente="#####";
estado="#####";
fecha="#####";

}
}
}
}

El campo fila pertenece a un array PHP q almacena cada campo de la tabla dela base.

**************************Codigo PHP******************************
<?php
include_once ("declara_variables.php");
@ $base = mysql_pconnect($localhost,$usuario,$pass);
if (!$base)
{
echo "Error: No se ha podido conectar a la base de datos. Por favor, pruebe de nuevo más tarde.";
exit;
}
mysql_select_db($nombre_base);
$orden = $_POST['orden'];
// echo ((int)$a4)
$orden=((int)$orden);
//echo gettype($id);
$sql = "select * from reparaciones where orden =".$orden;
$resultado = mysql_query($sql,$base);

$num_registros = mysql_num_rows($resultado);
if ($num_registros < 1)
{
$respuesta="no encontrado";
}
else {
$respuesta="encontrado";

for ($i=0; $i<$num_registros; $i++)
{
$fila = mysql_fetch_array($resultado);
echo "<p><strong><br>Equipo/Componente: ";
echo $fila["equipo"];
echo "</strong><br>Estado: ";
echo $fila["estado"];
echo "<br>Fecha: ";
echo $fila["fecha"];
echo "</p>";
} //cierro for
} //cierro else
?>

Gracias x cualquier respuesta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Consulta y muestra de datos desde MySQL a través de PHP

Publicado por Alejandro (369 intervenciones) el 27/06/2023 18:42:06
En tu código ActionScript, parece que tienes el proceso de envío y carga de datos implementado correctamente. Sin embargo, hay un problema en la forma en que estás accediendo a los datos devueltos por el script PHP. La variable `recibo.fila[equipo]` en realidad debería ser `recibo.equipo`, y lo mismo se aplica a las demás variables `estado` y `fecha`.

A continuación, te muestro cómo puedes corregir ese problema en tu código ActionScript:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
on (release) {
  if (orden.text == "") {
    mensaje.text = "ATENCIÓN: Debe completar obligatoriamente el N° de orden.";
  } else {
    var envio:LoadVars = new LoadVars();
    var recibo:LoadVars = new LoadVars();
 
    envio.onLoad = function(success:Boolean) {
      if (success) {
        componente.text = recibo.equipo;
        estado.text = recibo.estado;
        fecha.text = recibo.fecha;
      } else {
        mensaje.text = "Registro no encontrado";
        componente.text = "#####";
        estado.text = "#####";
        fecha.text = "#####";
      }
    };
 
    envio.orden = orden.text;
    envio.sendAndLoad("consulta_orden.php", recibo, "POST");
  }
}

Por otro lado, en tu script PHP, es recomendable que utilices sentencias preparadas o funciones de escape para evitar posibles ataques de inyección SQL. Aquí tienes una versión actualizada del código PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
include_once("declara_variables.php");
$base = mysqli_connect($localhost, $usuario, $pass, $nombre_base);
 
if (!$base) {
  echo "Error: No se ha podido conectar a la base de datos. Por favor, pruebe de nuevo más tarde.";
  exit;
}
 
$orden = (int)$_POST['orden'];
$sql = "SELECT * FROM reparaciones WHERE orden = ?";
$stmt = mysqli_prepare($base, $sql);
mysqli_stmt_bind_param($stmt, "i", $orden);
mysqli_stmt_execute($stmt);
$resultado = mysqli_stmt_get_result($stmt);
 
$num_registros = mysqli_num_rows($resultado);
if ($num_registros < 1) {
  $respuesta = "no encontrado";
} else {
  $respuesta = "encontrado";
 
  while ($fila = mysqli_fetch_assoc($resultado)) {
    echo "<p><strong><br>Equipo/Componente: ";
    echo $fila["equipo"];
    echo "</strong><br>Estado: ";
    echo $fila["estado"];
    echo "<br>Fecha: ";
    echo $fila["fecha"];
    echo "</p>";
  }
}
 
mysqli_stmt_close($stmt);
mysqli_close($base);
?>

En este ejemplo, se utiliza la extensión MySQLi para conectarse a la base de datos y se emplean sentencias preparadas con marcadores de posición (`?`) para evitar la inyección SQL.

Recuerda verificar la configuración del servidor WAMP para asegurarte de que esté habilitada la extensión MySQLi y que las credenciales de conexión a la base de datos sean correctas.

Espero que esto resuelva tu problema. ¡Buena suerte con tu proyecto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar