Hola gente del foro, estoy haciendo un sitio web con MySQL + PHP + Flash, básicamente tengo en la base de datos dos tablas una de productos y otra de categorias, en donde cada producto pertenece a una categoría. Al principio no sabía como mostrar los registros de la base de datos, y me sugirieron que al resultado lo muestre con formato xml y de esta manera poder utilizarlo en flash, Entonces hice tres secript en php, uno que me trae la cantidad de registros, uno que me trae las categorías y otro que me trae los repuestos, hasta el momento voy bien, traigo las categorias y anda, traigo los productos y anda, pero cuando quiero traer las dos cosas no funciona, o me trae todos los productos y una categoría, o me trae todas las categorías y algunos productos, estoy perdidisimo y ya no se por donde agarrar :shock:

Estos son los códigos que estoy utlizando.

calcular_productos.php:

Código PHP :

<?php
require_once("conexion.php");
$idcat = $_GET['idcat'];
$cantidad = $_GET['cant'];
if($idcat == -1){
   $result=mysql_query("select * from productos pr left join categorias ct on pr.idcat = ct.idcat",$conexion);
}
else{
   $result=mysql_query("select * from productos pr left join categorias ct on pr.idcat = ct.idcat where pr.idcat='$idcat'",$conexion);
}
$total= mysql_num_rows($result);
if((($total/$cantidad) - round($total/$cantidad)) > 0){
   $paginas = round($total/$cantidad) + 1;
}
else{
   $paginas = round($total/$cantidad);
}
echo "cantidad=$total&paginas=$paginas";
?>


categorias.php:

Código PHP :

<?
require_once("conexion.php");
$result=mysql_query("select * from categorias",$conexion);
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
echo "<categorias>\n";
if (mysql_num_rows($result) != 0)
{
   while($row = mysql_fetch_row($result))
   {
      echo "  <categoria id=\"$row[0]\">\n";
      echo "    <nombre>$row[1]</nombre>\n";
      echo "  </categoria>\n";
   }
}
else
{
   echo "  <categoria id=\"-1\">\n";
   echo "    <nombre>N/A</nombre>\n";
   echo "  </categoria>\n";
}
echo "</categorias>\n";
?>


productos.php

Código PHP :

<?php
require_once("conexion.php");
$idcat = $_GET['idcat'];
$desde = $_GET['desde'];
$cantidad = $_GET['cant'];
$inicio = $desde * $cantidad;
if($idcat == -1){
   $result=mysql_query("select * from productos pr left join categorias ct on pr.idcat = ct.idcat order by pr.idcat,pr.idprod limit $inicio,$cantidad",$conexion);
}
else{
   $result=mysql_query("select * from productos pr left join categorias ct on pr.idcat = ct.idcat where pr.idcat='$idcat' order by pr.idcat,pr.idprod limit $inicio,$cantidad",$conexion);
}
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
echo "<productos>\n";
if (mysql_num_rows($result) > 0)
{
   while($row = mysql_fetch_row($result))
   {
      echo "  <producto id=\"$row[0]\">\n";
      echo "    <idcat>$row[1]</idcat>\n";
      echo "    <nombre>$row[2]</nombre>\n";
      echo "    <detalle>" . nl2br($row[3]) . "</detalle>\n";
      echo "    <precio>$row[4]</precio>\n";
      echo "    <link>$row[5]</link>\n";
      echo "    <imagen>$row[6]</imagen>\n";
      echo "    <categoria>$row[8]</categoria>\n";
      echo "  </producto>\n";
   }
}
else
{
   echo "  <producto id=\"-1\">\n";
   echo "    <idcat>-1</idcat>\n";
   echo "    <nombre>N/A</nombre>\n";
   echo "    <detalle>N/A</detalle>\n";
   echo "    <precio>N/A</precio>\n";
   echo "    <link>N/A</link>\n";
   echo "    <imagen>N/A</imagen>\n";
   echo "    <categoria>N/A</categoria>\n";
   echo "  </producto>\n";
}
echo "</productos>\n";
?>


Luego en flash tengo un MovieClip en donde tengo ActionScript en tres fotogramas.

Fotograma 1:

Código ActionScript :

function cargarValores(pCategoria,pCantRegistros){
   var texto_php = new LoadVars;
   texto_php.onLoad = function() {
      cantidad = texto_php.cantidad;
      paginas = texto_php.paginas;
   };
   texto_php.load("calcular_productos.php?idcat=" + pCategoria + "&cant=" + pCantRegistros);
}
function cargarCategorias(){
   var xml:XML = new XML();
   xml.ignoreWhite = true;
   xml.onLoad = function(exito){
      if(exito){
         var i = 0;
         while(xml.firstChild.childNodes[i].firstChild != null){
            clip.categoria_mc.duplicateMovieClip ("categoria_mc" + i, i);
            clip["categoria_mc" + i].txt.text = xml.firstChild.childNodes[i].firstChild.firstChild.nodeValue;
            clip["categoria_mc" + i].idcat.text = xml.firstChild.childNodes[i].attributes.id;
            clip["categoria_mc" + i]._y += (clip["categoria_mc" + i]._height * (i+1));
            i++;
         }
      }
   }
   xml.load("categorias.php");
}
function cargarRepuestos(pCategoria,pCantRegistros,pInicio){
   var xml2:XML = new XML();
   xml2.ignoreWhite = true;
   xml2.onLoad = function(exito){
      if(exito){
         var i = 0;
         while(xml2.firstChild.childNodes[i].firstChild != null){
            if(i==0){
               producto_mc.codigo.text = xml2.firstChild.childNodes[i].attributes.id;
               producto_mc.producto.text = xml2.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue;
               producto_mc.categoria.text = xml2.firstChild.childNodes[i].childNodes[6].firstChild.nodeValue;
               producto_mc.precio.text = "$" + xml2.firstChild.childNodes[i].childNodes[3].firstChild.nodeValue;
            }
            else{
               clip.producto_mc.duplicateMovieClip("producto_mc" + i, i);
               clip["producto_mc" + i].codigo.text = xml2.firstChild.childNodes[i].attributes.id;
               clip["producto_mc" + i].producto.text = xml2.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue;
               clip["producto_mc" + i].categoria.text = xml2.firstChild.childNodes[i].childNodes[6].firstChild.nodeValue;
               clip["producto_mc" + i].precio.text = "$" + xml2.firstChild.childNodes[i].childNodes[3].firstChild.nodeValue;
               clip["producto_mc" + i]._y += (clip["producto_mc" + i]._height * i);
            }
            i++;
         }
      }
   }
   xml2.load("productos.php?idcat=" + pCategoria + "&desde=" + pInicio + "&cant=" + pCantRegistros);
}


Fotograma 2:

Código ActionScript :

cantRegistros = 5;
inicio = 0;
cantidad = 0;
paginas = 0;
categoria = -1;
clip = this;


Fotograma 3:

Código ActionScript :

stop();
cargarValores(categoria,cantRegistros);
cargarCategorias();
cargarRepuestos(categoria,cantRegistros,inicio);


Y estos son los resultados que obtengo

Resultado 1:


Resultado 2:


Espero que me puedan dar una mano para solucionar esto.

Saludos :D