Jump to content

"chamar" dados de uma base de dados e mostrar num website


Diana Madeira

Recommended Posts

Olá

Estou a criar um loja online de livros. Já criei a minha base de dados onde coloquei toda a informação sobre o livro incluindo uma imagem. Para isto usei myphpadmin. Depois criei uma pasta em php onde criei o meu código:

<?php
include('config.php');

$sql= "SELECT * FROM books WHERE category='computing'";
$result= $conn -> query($sql);

if($result-> num_rows >0) {
    while($row = $result-> fetch_assoc()) {
        echo "category: " .$row["category"]. "<br>";
    }
}
$conn->close();
?>

Aquilo que pretendo é por exemplo ao carregar na categoria "informática" que me apareçam os livros dessa categoria. Como por exemplo no site da Amazon.

Com este código aquilo que obti foi o seguinte:

category: computing
category: Computing
category: computing

 

Alguém me pode ajudar pf?

Obrigado

Link to comment
Share on other sites

Uma maneira simples é utilizar um método GET, e com este fazer a respectiva query.

Tens por exemplo no site inicial várias categorias e muitos livros onde

SELECT * FROM books

E depois vais a categorias 'computing' cujo link por exemplo é ./livros.php?categoria=computing
Agora podes chamar essa variavel GET e filtar os resultados diretamente:

<?php
include('config.php');

$categoria = $_GET['categoria'];

$sql= "SELECT * FROM books WHERE category='" . $categoria . "'";
$result= $conn->query($sql);
...
Link to comment
Share on other sites

On 4/5/2017 at 11:06 PM, Diana Madeira said:

 


if($result-> num_rows >0) {
    while($row = $result-> fetch_assoc()) {
        echo "category: " .$row["category"]. "<br>";
    }
}

Pois, mas vês como estás sempre a apresentar a informação de categoria e não os dados do livro ?

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Olá

Eu entretanto consegui lá chegar da seguinte maneira:

<?php include( 'config.php'); $sql="SELECT * FROM books WHERE category='computing'"
; $r=mysqli_query($conn, $sql); ?>
    <table cellpadding="2" cellspacing="2" border="0">
        <tr>  
            <th>
                ISBN
            </th>   
            <th>
                Title
            </th>
            <th>
                Author's name
            </th>
            <th>
                edition
            </th>
            <th>
                year
            </th>
            <th>
                category
            </th>
            <th>
                publisher
            </th>
            <th>
                quantity-in-stock
            </th>
            <th>
                price
            </th>
        </tr>
        <?php while($books=mysqli_fetch_object($r)){?>
            <tr>
                <td>
                    <?php echo $books->
                        ISBN;?>
                </td>   
                <td>
                    <?php echo $books ->
                        Title; ?>
                </td>
                <td>
                    <?php echo $books ->
                        Authorsname; ?>
                </td>
                <td>
                    <?php echo $books ->
                        edition; ?>
                </td>
                <td>
                    <?php echo $books ->
                        year; ?>
                </td>
                <td>
                    <?php echo $books ->
                        category; ?>
                </td>
                <td>
                    <?php echo $books ->
                        publisher; ?>
                </td>
                <td>
                    <?php echo $books ->
                        quantityinstock; ?>
                </td>
                <td>
                    <?php echo $books ->
                        price; ?>
                </td>
            </tr>
            <?php } ?>   
    </table>

Mas o problema é que esta foi a única maneira que encontrei para disponibilizar a informação que se encontra na base de dados de forma organizada.

Mas aquilo que eu pretendo mesmo é que a informação aparece como por exemplo em sites como a fnac. A imagem do livro e por baixo a informação relativa ao livro.

Em relação a imagem tambem estou com problemas, na base de dados amazenei a imagem como tipo longblob mas ao chama-la como chamei o ISBN etc o ecra aparece todo disfigurado com inumeros caracteres. A base de dados está criada em myphpadmin.

 

Alguem me pode ajudar sff?

Obrigado

Edited by apocsantos
identar código
Link to comment
Share on other sites

A forma de apresentação podes alterar desenhando um layout diferente..

Quanto à imagem, partindo do principio que a mesma foi guardada de forma correta, isto deve permitir-te mostrar a mesma:

echo '<img src="data:image/jpeg;base64,'.base64_encode( $books->image ).'"/>';

Tens de compreender o tipo de dados que estás a guardar em cada campo, neste caso é um binário, e tens de o interpretar corretamente.

PS: a base de dados não está criada em myphpadmin, está criada em MySQL ou MariaDB (dependendo do motor), isso é apenas uma interface para simplificar a utilização da base de dados.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Boa noite,

Bem, a "bruxa" não atende o telefone, logo não tenho como adivinhar o que possa estar a dar errado, no entanto se mostrares o que está a ser guardado na base de dados no campo onde supostamente estaria a imagem, certamente será mais fácil ajudar.

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

Bem, parece que dá! Permite-me mostrar-te como: 🙂

 

Spoiler

https://imgur .com/a/rJQEn 

Colocas a imagem no imgur.com, depois clicas em "spoiler" o botão que parece um olho, colocas lá o link e a imagem aparece cá! 🙂

Nada que um "espertinho", não consiga fazer!

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.