Imprimir texto en flash desde una base de datos

Estoy intentando impimir texto en una caja de texto en flash pero todavía estoy pillado en que nisiquera he podido conseguir sacar el texto de la base de datos en un PHP. Los pasos que sigo son los siguientes:

  • Creo una base de datos con el nombre "ejemplo".
  • Creo 2 campos, id y texto.
  • Inserto un registro.
  • Voy al Dream y creo el sitio llamado "ejemplo" con todo lo de localhost y demás y lo dejo configurado y funcionando.
  • Creo un archivo llamado "ejemplo.php" y le inserto el siguiente código:


<?
//recogemos el parametro enviado desde flash
$id= $HTTP_GET_VARS['id'];
include("../includes/config.php");
include("../includes/funciones.php");
$conex=conectar();
$cons = "SELECT texto FROM ejemplo WHERE id=' ".$id." ' ";
//query string
$resultados = mysql_query($cons, $conex);
$vars="&";
$arr_asoc = mysql_fetch_array($resultados);
$vars.="&respuesta=".$arr_asoc['texto']."&";
echo $vars;
//libere resultado los borre
mysql_free_result($resultados);
//cerramos la conexion
mysql_close($conex);
?>


El código no está depurado ya que lo he cogido de otro ejercicio que tengo por lo que si me decís que esto o lo otra sobra, me será de ayuda.

En config.php tengo la configuración de la base de datos:

<?php
$HOSTNAME = "localhost";//servidor
$USERNAME = "root";//usuario
$PASSWORD = "";//contraseña
$DATABASE = "xabier_obeso";//base de datos
?>


Y en funciones.php tengo la funcion para poder conectarme:

<?
/***
función conectar
que se conecta a mysql y devuelve el identificador de conexión
***/
function conectar(){
   global $HOSTNAME,$USERNAME,$PASSWORD,$DATABASE;
   $idcnx = mysql_connect($HOSTNAME, $USERNAME, $PASSWORD) or DIE(mysql_error());
   mysql_select_db($DATABASE, $idcnx);
   return $idcnx;
}
?>


¿Qué es lo que estoy haciendo mal?

Salu2
flash ha sido liberado ???
Sertinell escribió:flash ha sido liberado ???


Si lees el post verás que todavía no he llegado ni a sacar el texto desde la base de datos. Estoy pidiendo ayuda de como sacar un texto desde una base de datos, nada más.

Lo que quiero sacar es la típica cadena de "&id=1&texto=texto de id1"para luego poder recogerla en flash.

Salu2
Flash tiene sus propios scripts para sacar datos de una base de datos. No depende del php.

Por eso te contestan lo que te contestan, esto no va aqui.
En:
$cons = "SELECT texto FROM ejemplo WHERE id=' ".$id." ' ";
prueba con:
$cons = "SELECT * FROM ejemplo WHERE id='$id'";
Txukie escribió:Flash tiene sus propios scripts para sacar datos de una base de datos. No depende del php.

Por eso te contestan lo que te contestan, esto no va aqui.


¿Y como sacas el texto de una base de datos sin PHP? Me lo puedes decir por privado.

Me sigue dando error, bueno es un warning pero da lo mismo.


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\xabier_obeso\biografia\biografia.php on line 11
&&respuesta=&
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\xabier_obeso\biografia\biografia.php on line 15
Joer perdona tenias razon necesitas PHP, hace mucho que no uso Flash y se me ha olvidado.

Mirate este tuto esta bien explicado.

http://www.scourdesign.com/articulos/tutoriales/flash/14.php

De todas formas, que version de PHP, MySQL y Apache usas, recuerda que las primeras versiones de PHP 5 no soportaban MySQL. Prueba con PHP 4 solo por si acaso.
Uso appserv 2.5.4a. No tengo problemas con Mysql ya que otros ficheros que tengo funcionan perfectamente. Voy a leerme el link que me has pasado. Gracias.

////////////////////////// EDITO \\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Pues esto sigue sin funcionar. Ya me estoy [+furioso]. Se supone que tiene que recorrer toda la tabla y devolverme la siguiente cadena:

&id=1&texto=Texto castellano&id=2&texto=Texto euskera&id=3&texto=Texto inglés

El código que pongo es este:

[PHP]//recogemos el parametro enviado desde flash
$texto= $HTTP_GET_VARS['texto'];
include("../includes/config.php");
include("../includes/funciones.php");
$conex=conectar();
$cons = "SELECT id, texto FROM xabier_obeso WHERE id='".$id."' ORDER BY id ASC" ;
//query string
$resultados = mysql_query($cons, $conex);
$vars="&";
$contador=0;
while($arr_asoc = mysql_fetch_array($resultados)){
$vars.="id".$contador."=".$arr_asoc['id']."&";
$vars.="texto".$contador."=".$arr_asoc['texto']."&";
$contador++;
}
$vars.="contador=".$contador;
echo $vars;
//libere resultado los borre
mysql_free_result($resultados);
//cerramos la conexion
mysql_close($conex);
?>[/PHP]

Y me sale el siguiente error:

[PHP]Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\xabier_obeso\biografia\biografia.php on line 12
&contador=0
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\xabier_obeso\biografia\biografia.php on line 20[/PHP]

¿Qué hago mal? Porque yo ya no lo entiendo.

////////////////////////// EDITO 2 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Bueno por fin he conseguido sacar los texto de la base de datos, aunque no todo son buenas noticias. La cadena de texto que saco no es la que necesito, o por lo menos hasta donde se yo, no es la que necesito. La cadena que me saca es esta:

&id0=1&texto_biografia0=Texto biografía en castellano.&id1=2&texto_biografia1=Texto biografía en euskera.&id2=3&texto_biografia2=Texto biografía en inglés.&contador=3


Y la que necesito es esta (supongo, ahora voy a probar en flash y si sale pues DPM)

&id=1&texto=Texto biografia castellano&id=2&texto=Texto biografía euskera&id=3&texto=Texto biografía inglés&contador=3


¿Algún erudito en PHP que me eche una mano?

////////////////////////// EDITO 3 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Bueno pues ya lo he conseguido XD. El código correcto era este:

[PHP]//recogemos el parametro enviado desde flash
$texto= $HTTP_GET_VARS['texto'];
include("../includes/config.php");
include("../includes/funciones.php");
$conex=conectar();
$cons = "SELECT * FROM biografia";
//query string
$resultados = mysql_query($cons, $conex);
$vars="&";
$contador=0;
while ($arr_asoc = mysql_fetch_array($resultados)){
$vars.="id=".$arr_asoc['id']."&";
$vars.="texto_biografia=".$arr_asoc['texto_biografia']."&";
$contador++;
}
$vars.="contador=".$contador;
echo $vars;
//libere resultado los borre
mysql_free_result($resultados);
//cerramos la conexion
mysql_close($conex);
?>[/PHP]

Ahora ya la cadena que me saca es la que yo quería, o sea, la siguiente:

&id=1&texto_biografia=Texto biografía en castellano.&id=2&texto_biografia=Texto biografía en euskera.&id=3&texto_biografia=Texto biografía en inglés.&contador=3


Da gusto cuando sacas las cosas tu mismo XD.

Salu2
8 respuestas