Obtenga contenido particular de MySQL dinámicamente

¿Puede alguien mostrarme cómo obtener diferentes entradas para diferentes solicitudes? Actualmente, el código solo muestra la primera entrada sin importar cuál sea la solicitud.

PHP

$dbh = new PDO("mysql:dbname=$db_name;host=$host", $username, $password);  
$sth = $dbh->prepare("SELECT * FROM data");
try {
    $sth->execute( array($_GET['page']) );
}
catch(PDOException $e) {
    die( $e->getMessage() );
}
list($page) = $sth->fetch(PDO::FETCH_NUM); 
$sth->closeCursor(); 
echo $page;

Javascript + jQuery

function getPage() {
    var data = 'page=' + encodeURIComponent(document.location.hash);
    $.ajax({
        url: "loader2.php", 
        type: "GET",        
        data: data,     
        cache: false,
        success: function (html) {                  
            $('#content').html(html);
        }
    });

La forma en que se supone que funciona el código es una vez que a href señalando para decir #home or #otherpage se hace clic, el código carga el contenido coincidente de mi base de datos, por su 'indicativo', que coincide con el enlace href (por ejemplo, el indicativo de #home es casa). ¿Puede alguien ayudarme aquí?

preguntado el 04 de julio de 12 a las 07:07

3 Respuestas

No veo ningún enlace a ninguna columna particular de la tabla. Consulte el siguiente ejemplo:

<?php
    $calories = 150;
    $colour = 'red';
    $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit 
    WHERE calories < :calories AND colour = :colour');
    $sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>

El siguiente enlace tiene los detalles:

http://php.net/manual/en/pdostatement.execute.php

Respondido 04 Jul 12, 07:07

Parece que la siguiente línea está cargando un valor de la matriz devuelta en la variable $page:

list($page) = $sth->fetch(PDO::FETCH_NUM);

Quizás intente algo como esto en su lugar, en las últimas 3 líneas del script PHP:

$resultsArray = $sth->fetch(PDO::FETCH_NUM);
$sth->closeCursor();
foreach ($resultsArray as $value)
{
    echo $value."\n";
}

Esto imprimirá todos los resultados que devuelve el método fetch() de PDO.

Respondido 04 Jul 12, 08:07

¿Podría deberse a la falta de la cláusula where en su declaración de selección?

$sth = $dbh->prepare("SELECT * FROM data WHERE callsign=:page");
try {
    $sth->execute( array(':page' =>$_GET['page']) );
}

Respondido 04 Jul 12, 07:07

Olvidé mencionar que soy inepto en la programación php... ¡Salud! - user1492450

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.