Afbeelding uit database halen werkt niet meer

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dries

Dries

10/12/2006 14:11:00
Quote Anchor link
Hallo,

Ik heb al langere tijd een script gehad waarbij ik mijn afbeeldingen (die in een database staan) er uit haal en weergeef op mijn site. Maar nu is sinds een week geleden het script er in eens mee op gehouden...
Ik snap niet waarom. ik heb gezocht op internet naar mogelijke andere scripten maar kan zo niets vinden :s
Hopelijk kan iemand hier mij verder helpen.

Het script wat ik nu heb is:


*************************************
require('db.inc.php'); db_connect();

$id=$_GET["id"];

$result = mysql_query("SELECT id,type,length,content FROM photos WHERE id = '$id'") or die(mysql_error());

while($row = mysql_fetch_array( $result )) {

echo $row['content'];

}
mysql_close($db);

*************************************

Ik heb gemerkt dat hij niet eens meer in de while lus terecht komt..
Mijn afbeeldingen staan als blob opgeslagen in het veld content. en ik roep de foto door dezesite.php?id=xxx

Ik hoop dat iemand me verder kan helpen!!

Groeten Dries
 
PHP hulp

PHP hulp

19/11/2024 07:38:31
 
Stefan van Iwaarden

Stefan van Iwaarden

10/12/2006 14:12:00
Quote Anchor link
Ik zou eerst eens beginnen met het eruithalen van je afbeeldingen en deze gewoon in een map zetten op je server en in je database dan het adres daarnaartoe zetten.
Een database is niet bedoeld voor het opslaan van afbeeldingen, hij is bedoeld voor tekst.
Je database wordt er harstikke traag door en vindt afbeeldingen ook zeker niet leuk.
 
Dries

Dries

10/12/2006 14:16:00
Quote Anchor link
Ja dat weet ik, maar ik heb maar een beperkte server space en het database heeft dit niet, dus zo kan ik er eindeloos fotos in opslaan, iets wat ik wel een leuk truckje vond om zo de collectie online te bewaren
 
Jan Koehoorn

Jan Koehoorn

10/12/2006 14:22:00
Quote Anchor link
Quote:
Ik heb gemerkt dat hij niet eens meer in de while lus terecht komt..

Dan gaat het fout bij je query. Geeft hij geen enkele error?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
    $sql
= "
        SELECT id, type, length, content
        FROM photos
        WHERE id = "
. $id;
    if (!$res = mysql_query ($sql)) {
        echo '<pre>';
        trigger_error (mysql_errno () . ': ' . mysql_error ());
        echo htmlentities ($sql);
        echo '</pre>';
    }

    else {
        while ($row = mysql_fetch_assoc ($res)) {
            // echoën
        }
    }

?>
 
Dries

Dries

10/12/2006 14:28:00
Quote Anchor link
Nee voorheen gaf hij geen elke error alleen een wit scherm...

Met die code van jou is dit de uitkomst:

Notice: 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 in /home/.sites/40/site68/web/image2.php on line 30

SELECT id, type, length, content
FROM photos
WHERE id =


in die line nummers staat dit:

29 echo '<pre>';
30 trigger_error (mysql_errno () . ': ' . mysql_error ());

nog enige ideeen ?
 
Jan Koehoorn

Jan Koehoorn

10/12/2006 14:31:00
Quote Anchor link
Daaruit blijkt dat $_GET['id'] niet gevuld is. Je zou hem eerst moeten checken met isset. Laat eens het (stukje!) code zien waarmee je je links in elkaar sleutelt?
 
Leroy Boerefijn

Leroy Boerefijn

10/12/2006 14:39:00
Quote Anchor link
zet er anders ff error_report(E_ALL); boven.. (als je php 5.* hebt moet je E_ALL ergens anders in vervangen..)
 
Dries

Dries

10/12/2006 14:41:00
Quote Anchor link
Ik geef hem gewoon met de link op in mijn adres balk
site.php?id=8729

maar ik dacht even dat je in dit stukje:
$sql = "
SELECT id, type, length, content
FROM photos
WHERE id = " . $id;
de $id buiten de " had gezet en dat hij dan daardoor de id niet mee kreeg..
nu heb ik dit veranderd naar:
WHERE id = '$id'"
maar dan geeft hij ook niets weer...
 
Dries

Dries

10/12/2006 14:47:00
Quote Anchor link
@leroy: gewoon boven aan gezet?
krijg ik meteen error:
Fatal error: Call to undefined function error_report() in /home/.sites/40/site68/web/image2.php on line 4
 
Jan Koehoorn

Jan Koehoorn

10/12/2006 14:48:00
Quote Anchor link
[voorkauwmodus]

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
    if (isset ($_GET['id']) $$ is_numeric ($_GET['id'])) {
        $sql = "
            SELECT id, type, length, content
            FROM photos
            WHERE id = "
. $_GET['id'];
        if (!$res = mysql_query ($sql)) {
            echo '<pre>';
            trigger_error (mysql_errno () . ': ' . mysql_error ());
            echo htmlentities ($sql);
            echo '</pre>';
        }

        else {
            while ($row = mysql_fetch_assoc ($res)) {
                // echoën
            }
        }
    }

?>


[/voorkauwmodus]
 
Jan Koehoorn

Jan Koehoorn

10/12/2006 14:49:00
Quote Anchor link
Dries schreef op 10.12.2006 14:47:
@leroy: gewoon boven aan gezet?
krijg ik meteen error:
Fatal error: Call to undefined function error_report() in /home/.sites/40/site68/web/image2.php on line 4

Hij bedoelt error_reporting(E_ALL);
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Dries

Dries

10/12/2006 14:56:00
Quote Anchor link
Okee, ik heb die line er in gezet
En heb die code geprobeerd, wel $$ vervangen door && neem ik aan
maar nu is de uitkomst nog een blanco pagina

ik weet wel zeker dat het plaatje in het database staat want als ik met mysql-front in mijn database kijk zie ik er bij de blob gewoon het plaatje in staan...
Ik hoop echt dat je nog een andere oplossing hebt...
 
Dries

Dries

10/12/2006 15:39:00
Quote Anchor link
Geen ideeen meer :(
 
Dries

Dries

10/12/2006 15:43:00
Quote Anchor link
Ik heb het al gevonden!!!
Ik moest de variabelen buiten de quotes plaatsen:

$id = $_GET["id"];

$result = mysql_query("SELECT id,type,length,content FROM photos WHERE id = '".$id."'") or die(mysql_error());

while($row = mysql_fetch_array( $result )) {
echo $row['content'];
}

mysql_close($db);

Allen iig super bedankt voor het helpen!

Groetjes Dries
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.