Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/08/2013, 09:56
mikehove
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Para actualizar función (a pdo)

Hola amigos. Tengo una función que funciona bien con la forma vieja, al pasarlo con PDO no consigo dar con la tecla.

Función vieja:

Código PHP:
// Conexión con la BD:
mysql_connect("localhost""root""") or die(mysql_error());
mysql_select_db("menu_categorias") or die(mysql_error());

function 
display_children($parent$level) {
    
$result mysql_query("SELECT a.id, a.label, a.link, Deriv1.Count FROM `menu` a  LEFT OUTER JOIN (SELECT parent, COUNT(*) AS Count FROM `menu` GROUP BY parent) Deriv1 ON a.id = Deriv1.parent WHERE a.parent=" $parent);
    echo 
"<ul>";
    while (
$row mysql_fetch_assoc($result)) {
        if (
$row['Count'] > 0) {
            echo 
"<li><a href='" $row['link'] . "'>" $row['label'] . "</a>";
            
display_children($row['id'], $level 1);
            echo 
"</li>";
        } elseif (
$row['Count']==0) {
            echo 
"<li><a href='" $row['link'] . "'>" $row['label'] . "</a></li>";
        } else;
    }
    echo 
"</ul>";
}

echo 
display_children(61); 

Tratando con PDO (con errores):

Código PHP:
$user 'root';
$pass '';
$conn = new PDO('mysql:host=localhost;dbname=menu_categorias'$user$pass); 


function 
display_children($parent$level) {
    
$result $conn->prepare("SELECT a.id, a.label, a.link, Deriv1.Count FROM `menu` a  LEFT OUTER JOIN (SELECT parent, COUNT(*) AS Count FROM `menu` GROUP BY parent) Deriv1 ON a.id = Deriv1.parent WHERE a.parent=" $parent);
$result->execute();   
    echo 
"<ul>";
    while(
$row $result->fetch(PDO::FETCH_ASSOC)) 
    {
        if (
$row['Count'] > 0) {
            echo 
"<li><a href='" $row['link'] . "'>" $row['label'] . "</a>";
            
display_children($row['id'], $level 1);
            echo 
"</li>";
        } elseif (
$row['Count']==0) {
            echo 
"<li><a href='" $row['link'] . "'>" $row['label'] . "</a></li>";
        } else;
    }
    echo 
"</ul>";
}

echo 
display_children(61);