Jump to content
Diana Madeira

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

Recommended Posts

Diana Madeira

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

Share this post


Link to post
Share on other sites
Th3Alchemist

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);
...

 

Share this post


Link to post
Share on other sites
HappyHippyHippo
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

Share this post


Link to post
Share on other sites
Diana Madeira

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

Share this post


Link to post
Share on other sites
M6

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."

 

Share this post


Link to post
Share on other sites
Diana Madeira

Olá M6

Acabei de experimentar e continua sem dar, eu guardei a imagem em myphpadmin com tipo:longblob. Não sei o que possa estar a fazer de mal.

Cumps,

Diana

Share this post


Link to post
Share on other sites
apocsantos

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"

Share this post


Link to post
Share on other sites
M6

Como disse o apocsantos, sem mais informação não é possível perceber o que se passa.


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."

 

Share this post


Link to post
Share on other sites
Diana Madeira

 eu adoraria se desse para fazer o upload de imagens aqui. quero vos mostrar o print screen q tirei da minha base de dados mas pelos vistos aqui n se pode fazer o upload de fotos

Share this post


Link to post
Share on other sites
apocsantos

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

 

Spoiler

http://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"

Share this post


Link to post
Share on other sites
Diana Madeira

Olá

Obrigado creio que ja consegui.

Conseguem ver as imagens.

Spoiler

http://imgur.com/vPk23ir

Spoiler

http://imgur.com/2Y04XB8

 

 

 

Share this post


Link to post
Share on other sites
devgoncalo

ola

uma observação:

o nome dos campos da base de dados não seguem uma estrutura lógica - existem campos tipo qwe_qwe, QWE, Qwe, qweqwe - o que não facilita a compreensão e manutenção da mesma, especialmente quando os projectos começam a crescer.

pessoalmente, gosto do formato qwe_qwe.

cumps

Share this post


Link to post
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.