Beginners vraag: Afbeelding weergeven.
Ik wil graag een afbeelding laten zien van bijvoorbeeld id=1.
Ik heb een tabel als naam P_img. (varchar).
Daar staat in: plaatje.jpg
Met een query roep ik alle data op.
Heb vanalles geprobeerd, maar of ik krijg niets te zien of alleen een kruisje. Misschien heeft iemand een kleine tip voor me.
(zal vanavond de code plaatsen die ik heb geprobeerd, zit nu namelijk op mijn werk)
ik wacht op de code Sander :)
while($data = mysql_fetch_array($query) {
$img = "";
if($img['P_img']) "<img src=\"/images\" . $data['P_img"] . ">";
echo $img;
}
(dit is uit me hoofd, dus niet op typefouten letten ben nog maar een newby)
Wat doe ik fout, of moet ik een andere manier verzinnen? Als ik het op deze manier doe krijg ik alleen een kruisje te zien.
Mijn code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
// show_img.php
mysql_connect("host", "user", "pass");
mysql_select_db("images");
$query = "SELECT name, type, length, file FROM images WHERE id=" . $_GET[id];
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
header("Content-Length: " . $row[length] . "\nContent-Type: " . $row[type]);
print $row[file];
}
?>
// show_img.php
mysql_connect("host", "user", "pass");
mysql_select_db("images");
$query = "SELECT name, type, length, file FROM images WHERE id=" . $_GET[id];
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
header("Content-Length: " . $row[length] . "\nContent-Type: " . $row[type]);
print $row[file];
}
?>
Uiteraard kan je de array ook veranderen in een object oid ;)
--- edit ---
Dat betekent dus ook dat je het type en size en dergelijke ook moet opslaan in je database. Dat doe je met $_FILES["bestandsnaam"]["size"], $_FILES["bestandsnaam"]["tmp_name"]. Google even welke superglobalen je er allemaal voor hebt. Op phpfreakz.nl stonden daarover meerdere goede tutorials.
Het plaatje oproepen kan je doen via show_img.php?id=1 (dus GET).
Succes
--- einde edit ---
Gewijzigd op 06/10/2004 17:59:00 door Winston Smith
Dan zou dit:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?
while($data = mysql_fetch_array($query) {
$img = "";
if($img['P_img']) "<img src=\"/images\" . $data['P_img"] . ">";
echo $img;
}
?>
while($data = mysql_fetch_array($query) {
$img = "";
if($img['P_img']) "<img src=\"/images\" . $data['P_img"] . ">";
echo $img;
}
?>
Iets moeten worden als:
Code (php)
Maar ik snap niet goed wat je wil doen met if($img['P_img']).. Ik gok er maar op dat $img een array is waar de waarde uit de database ook in voor moet komen ofzo...beetje vaag.
Quote:
Maar ik snap niet goed wat je wil doen met if($img['P_img']).. Ik gok er maar op dat $img een array is waar de waarde uit de database ook in voor moet komen ofzo...beetje vaag.
Controleren of de variabele bestaat, alleen ik denk dat ie:
if($data['P_img'])
bedoeld ipv van:
if($img['P_img'])[/quote]
Gewijzigd op 06/10/2004 18:13:00 door Beuk
Maar waarom de regel er staat snap ik niet. Omdat hij daarvoor $img = ""; gebruikte en het dan ineens een array is maar met dezelfde 'P_img' als bij $date['P_img']...
Alleen niet in een <img src=""> maar met een pagina.
En dan heb je toch ook nog een header nodig? Of ben ik nu verkeerd? :s
Hij geeft zelf in zijn script aan dat hij <img> wil gebruiken dus is het wel zo handig ook op die manier te antwoorden :)
Maar zelf had ik ook dat ik een plaatje uit een database wilde halen en - vanzelfsprekend - dacht ik ook dat dat het makkelijkst was met een img tag. Ik kwam er echter achter dat het makkelijker is met de code die ik post (vind ik dan he ;)).
Uit het feit dat hij zei dat hij vanalles had geprobeerd om tot een oplossing te komen, concludeerde ik dat het niet specifiek een img tag moest zijn.
Maar als het op die manier ook kan is het ook goed natuurlijk! Was er zelf nog nooit achter gekomen dat dat kon :)
We horen wel wat zijn reactie is :)
Ben overigens bezig met een script waarmee je meteen plaatjes in je database kan stoppen en eruit kan halen en zo.
Zal hem binnenkort wel op phphulp plaatsen :)
Vraag me overigens af waarom Sander niet reageert, terwijl hij wel actief op de site is? :P
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
//hier de query in een variabele zetten
$query=mysql_query("SELECT * from images WHERE id = '" . $_GET['id'] . "'");
// Eventueel een error msg als de id niet bestaat (hoeft niet perse, dit vervangt wel if($data['P_img'])
if (mysql_num_rows($sql)) { print "Deze image bestaat niet!"; }
// While loop creeren, $data wordt een array met alle velden per row.
while($data = mysql_fetch_array($query) {
// Het plaatje naar voren halen, het is simpelweg gewoon <img src=images/bestandsnaam.iets>
print "<img src=images/" . $data['P_img'] . ">";
}
?>
//hier de query in een variabele zetten
$query=mysql_query("SELECT * from images WHERE id = '" . $_GET['id'] . "'");
// Eventueel een error msg als de id niet bestaat (hoeft niet perse, dit vervangt wel if($data['P_img'])
if (mysql_num_rows($sql)) { print "Deze image bestaat niet!"; }
// While loop creeren, $data wordt een array met alle velden per row.
while($data = mysql_fetch_array($query) {
// Het plaatje naar voren halen, het is simpelweg gewoon <img src=images/bestandsnaam.iets>
print "<img src=images/" . $data['P_img'] . ">";
}
?>
Dat was de reden dat ik niet reageerde haha..
Maar wat ik dus wil is inderdaad dat de afbeelding van bijvoorbeeld id=1 ge-showt word.
Ben echt een newby vandaar dat het misschien wat rommelig eruit ziet :( Ben verder ook op mijn werk dus moest uit mijn hoofd de code intypen..
Zal vanavond kijken of ik er nu wel uitkom en laat het dan gelijk weten!
if (mysql_num_rows($sql)) {
moet zijn:
if (mysql_num_rows($sql) == '0') {
Ga die proberen, Beuk bedankt!
Ik zat net je code door te lezen en op dat punt dacht ik waarom zou die "Deze image bestaat niet!"moeten weergeven, maar netjes dat je dat corrigeert.
'images' in de query moet uiteraard wel vervangen worden door je table_name hea :) maar dat wis je waarschijnlijk al
Ja dat snap ik, ga ermee aan de slag!
Warning: Supplied argument is not a valid MySQL result resource in c:\phpdev\www\websites\travel.2-dance.com\event_info.php on line 46
dit is line 46:
while($data = mysql_fetch_object($query)) {
daar is toch niks mis mee lijkt me?
if (mysql_num_rows($sel) != '0') { print "Deze image bestaat niet!"; }
geeft hij dit goed weer dus het gaat ergens fout in de while loop.