2017-02-20 4 views
1

でそれを使用してねえので、私はデータベースを持っているし、私のPHPのドキュメントは、それに正しく接続されていますはPHPとデータベースからBLOBを取得し、HTMLタグ

<?php 
$con=new mysqli ("localhost","root","","chroniclemark"); 

...

そして、私が持っています画像を取得するクエリ:

$sqlget = "SELECT imagem FROM galeria where idg = 1"; 
$sqldata = mysqli_query($con,$sqlget) or die ('error getting database'); 

while($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)){ 
    $lol = '<img src="data:image/jpeg;base64,'.base64_encode($row['imagem']).'"/>'; 

} 
?> 

これは私のPHP文です。 I echo $lol;の場合、画像が表示されます。 これをhtml imgタグに入れる必要があります。 そして、これは動作しません。

<img src='image.php?<?php $row['imagem']?>' /> 

私は他のものを試したし、何が機能しません。私の悪い英語のため

</head> 
<body> 

<?php 
    $con=new mysqli ("localhost","root","","chroniclemark"); 
    if($con->connect_error) 
    { 
     echo $con->connect_errno; 
     die("Database Connection Failed"); 
    } 

    $sqlget = "SELECT imagem FROM galeria where idg = 1"; 
    $sqldata = mysqli_query($con,$sqlget) or die ('error getting database'); 

    while($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)){ 
     $lol = '<img src="data:image/jpeg;base64,'.base64_encode($row['imagem']).'"/>'; 

    } 
    ?> 

    <img src='image.php?<?php $row['imagem']?>' /> 

          ... 

申し訳ありませんが、あなたが助けることができる場合は、実行してください:ところで は、imgタグとPHPのステートメントは、このように、同じファイルです。私はとても幸せだろう。

+0

エコー ''; <?phpの中で動作し、画像を表示します。しかし、私は<?php –

+0

の外にタグを使用する必要があります。ブラウザに '$ lol'変数をエコーする必要があります。あなたの例はそれを示していません。 –

+0

' '/>は、同じファイルまたは別のファイルで使用するためのものですか? –

答えて

1

クエリが1行しか返しているので、これはあなたが何をする必要があるか簡単になります。あなたがエンコードを行うことを忘れたり、それが必要とされて知らなかったのいずれか、あなたの質問に

<?php 
    $con=new mysqli ("localhost","root","","chroniclemark"); 
    if($con->connect_error) 
    { 
     echo $con->connect_errno; 
     die("Database Connection Failed"); 
    } 

    $sqlget = "SELECT imagem FROM galeria where idg = 1"; 
    $sqldata = mysqli_query($con,$sqlget) or die ('error getting database'); 

    $row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC); 
    $lol = base64_encode($row['imagem']); 


?> 

:あなたは結果セットをループする必要がないよう、主に、あなたはwhileループを取り除くことができます。エンコードが処理されるので、マークアップで画像を出力できます:

<img src="data:image/jpeg;base64, <?php echo $lol; ?>" /> 

複数の行がある場合はどうなりますか?あなたは、アレイ内の画像を入れて、後でそれらを適切に呼び出します。

<?php 
    $con=new mysqli ("localhost","root","","chroniclemark"); 
    if($con->connect_error) 
    { 
     echo $con->connect_errno; 
     die("Database Connection Failed"); 
    } 

    $sqlget = "SELECT imagem FROM galeria where idg = 1"; 
    $sqldata = mysqli_query($con,$sqlget) or die ('error getting database'); 

    while ($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)) { 
     $lol[] = base64_encode($row['imagem']); 
    } 

?> 

そして、何かのように:

<img src="data:image/jpeg;base64, <?php echo $lol[1]; ?>" /> 

配列の出力第2の画像をと思われます。すべての配列は0で始まるので、イメージの完全な配列を出力するのに必要なものを数えたり、ループしたりすることができます。

+0

ループがなくても間違いなくシンプルになっていますが、同じことが起こっています。私は何かが簡単に欠けているように感じる。 –

+0

サーバのエラーログを確認しましたか? –

+0

@ MarkCoelho画像タグ –

0

whileループと同じように、イメージタグのsrcを正しいbase64接頭辞で設定する必要があります。

この動作するはずですが、それはテストされていません。

</head> 
<body> 

<?php 
    $con=new mysqli ("localhost","root","","chroniclemark"); 
    if($con->connect_error) 
    { 
     echo $con->connect_errno; 
     die("Database Connection Failed"); 
    } 

    $sqlget = "SELECT imagem FROM galeria where idg = 1"; 
    $sqldata = mysqli_query($con,$sqlget) or die ('error getting database'); 

    while($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)){ 
     $lol = $row['imagem']; 

    } 
    ?> 

    <img src="data:image/jpeg;base64,<?php base64_encode($lol) ?>"/> 
+0

ここで唯一の問題は、ループするたびに '$ lol'を上書きして最後のイメージだけを取得することです。行が1つしかない場合は、問題はありませんが、ループは必要ありません。 –

+0

ああ、あなたが意味することを理解していますが、私はまだかなり働いていません。 –

関連する問題