[PHP]Maar één plaatje

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Er wordt jammergenoeg maar een plaatje weergegeven.. Het lijkt me dat met onderstaande query alle plaatjes weergegeven moeten worden.. Wat doe ik fout??

PHP:
1
2
3
4
5
6
7
8
9
<?php
/*displayimage.php hiermee kunnen ?alle? figuren worden weergegeven. Dit bestand wordt extern aangeroepen
*/
mysql_connect("localhost","root"); mysql_select_db("gs");
$query = mysql_query("SELECT artbin_data, artfiletype FROM imageart, artikel WHERE categorie_id='".addslashes($_GET['id']) ."'");
$res = mysql_fetch_array($query);
header("Content-Type:{$res['artfiletype']}");
echo $res['artbin_data'];
?> 

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

Er wordt jammergenoeg maar een plaatje weergegeven.. Het lijkt me dat met onderstaande query alle plaatjes weergegeven moeten worden.. Wat doe ik fout??
Dat kan niet. Je roept het bestand 20 aan, met steeds een ander ID. Per oproep wordt er 1 plaatje weergegeven.

[ Voor 9% gewijzigd door gorgi_19 op 16-01-2004 11:43 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 05-09 14:30

DizzyWeb

Ondertiteld

Nee, dat kan niet.
Dit script heeft als output een plaatje. Geen website met plaatjes oid.
Je moet het script voor ieder plaatje opnieuw aanroepen.
Nieuw PHP scriptje maken die even door alle ID's heen loopt en er plaatjes in propt?

Acties:
  • 0 Henk 'm!

  • darkrain
  • Registratie: Augustus 2001
  • Laatst online: 12:18

darkrain

Moderator Discord

Geniet

niet goed gelezen

[ Voor 75% gewijzigd door darkrain op 16-01-2004 11:43 ]

Tweakers Discord


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

Pak er eens een PHP/MySQL tutorial bij.

Je selecteert misschien wel meerdere plaatjes, maar je drukt alleen de eerste af, je zult op 1 of andere manier door je resultset moeten loopen.

Let ook ff op je headers ;) (met dank aan Gorgi_19).

[ Voor 15% gewijzigd door Creepy op 16-01-2004 11:50 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • lost95
  • Registratie: Januari 2000
  • Laatst online: 20-09 20:39
Ik denk dat je beter een pagina kan maken die de plaatjes weergeeft (met img-tag), zoals je het nu doet kan je volgens mij ook niet meer plaatjes weer geven.

Vooral sinaasappels zijn bang voor persvrijheid.


Acties:
  • 0 Henk 'm!

Verwijderd

Creepy schreef op 16 januari 2004 @ 11:43:
Pak er eens een PHP/MySQL tutorial bij.

Je selecteert misschien wel meerdere plaatjes, maar je drukt alleen de eerste af, je zult op 1 of andere manier door je resultset moeten loopen.
Onzin hoe kun je nou 20 plaatjes tegelijk naar de browser sturen met maar 1 pagina aanroep!

Het handigst is idd om gewoon IMG tags in je html te zetten. Dit moet je doen in een standaard loop die over de resultset heen loopt.

In de IMG tags zet je dan zoiets als
[img]"/images.php?picID=<XX>"[/img] HEIGHT=<ZZ> ALT="">
De XX, YY en ZZ vul je dynamisch in met gegevens uit de database (als je height en width ook opslaat in de database natuurlijk, wel doen!).

images.php is een dedicated script wat alleen maar het plaatje met ID XX uit de database haalt en direct returned naar de browser. Hiervoor kun je de query gebruiken die je al hebt (ietsje veranderen nog).

Een laatste tip is dat als je plaatjes returned met een php script dat is dat je ook de header Content-Length zou moeten returnen. Dan kan de browser namelijk een inschatting maken van hoe lang het nog duurt voordat het binnen is. Je moet in dit geval ook opgeven dat het om inline/image gaat. Vooral als je grote bestanden verstuurd met een php script is dit een erg goede gewoonte. Ga de details aub nog even na in de user comments op php.net; ik ben niet zeker of het precies klopt.

Acties:
  • 0 Henk 'm!

  • WasBak
  • Registratie: September 2000
  • Niet online
Verwijderd schreef op 16 januari 2004 @ 11:55:
[...]

Onzin hoe kun je nou 20 plaatjes tegelijk naar de browser sturen met maar 1 pagina aanroep!
met een loop misschien?
In de IMG tags zet je dan zoiets als
[img]"/images.php?picID=<XX>"[/img] HEIGHT=<ZZ> ALT="">
De XX, YY en ZZ vul je dynamisch in met gegevens uit de database (als je height en width ook opslaat in de database natuurlijk, wel doen!).
wat een werk..

Acties:
  • 0 Henk 'm!

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 19-09 21:49

BierPul

2 koffie graag

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php 
/*displayimage.php hiermee kunnen ?alle? figuren worden weergegeven. Dit bestand wordt extern aangeroepen 
*/ 
mysql_connect("localhost","root"); mysql_select_db("gs"); 
$query = mysql_query("SELECT artbin_data, artfiletype FROM imageart, artikel WHERE categorie_id='".addslashes($_GET['id']) ."'"); 

//loop door je resultset
while($res = mysql_fetch_array($query)) { 
    header("Content-Type:{$res['artfiletype']}"); 
    echo $res['artbin_data'];
} 
?> 



Op zich zou het zo moeten werken, maar toch doet het dat niet ;)

Je kan namelijk maar 1 keer een header zetten :)

Maar wat is eigelijk het nut van dit "script" :?

Ja man


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Het nut is een plaatje uit de database halen en die naar de browser sturen. Het probleem is alleen dat de TS niet begrijpt hoe http werkt. En dat dit dus op deze manier voor meerdere plaatjes 100% onmogelijk is.

Acties:
  • 0 Henk 'm!

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 19-09 21:49

BierPul

2 koffie graag

djluc schreef op 16 januari 2004 @ 12:29:
Het nut is een plaatje uit de database halen en die naar de browser sturen. Het probleem is alleen dat de TS niet begrijpt hoe http werkt. En dat dit dus op deze manier voor meerdere plaatjes 100% onmogelijk is.
Dat ken die inderdaad flink vergeten :P

Ja man


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
BierPul schreef op 16 januari 2004 @ 12:37:
[...]Dat ken die inderdaad flink vergeten :P
Haha >:)

Wat ik de TS adviseer: anders wordt het zo'n evil topic :) Splits wat je wilt op in modules. Maak een module die één afbeelding kan tonen. Daar zou je bijvoorbeeld een functie sendimage en een functie create HTML voor kunnen maken. Die laatste functie geeft dan HTML zoals rbscholtus heeft vermeld. Verder kun je dan een module maken om een lijst afbeeldingen uit de database te tonen. Deze haalt dan alle gegevens op en roept voor iedere rijd de functie create HTML aan.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 16 januari 2004 @ 11:55:
[...]

Onzin hoe kun je nou 20 plaatjes tegelijk naar de browser sturen met maar 1 pagina aanroep!

Het handigst is idd om gewoon IMG tags in je html te zetten. Dit moet je doen in een standaard loop die over de resultset heen loopt.

In de IMG tags zet je dan zoiets als
[img]"/images.php?picID=<XX>"[/img] HEIGHT=<ZZ> ALT="">
De XX, YY en ZZ vul je dynamisch in met gegevens uit de database (als je height en width ook opslaat in de database natuurlijk, wel doen!).

images.php is een dedicated script wat alleen maar het plaatje met ID XX uit de database haalt en direct returned naar de browser. Hiervoor kun je de query gebruiken die je al hebt (ietsje veranderen nog).

Een laatste tip is dat als je plaatjes returned met een php script dat is dat je ook de header Content-Length zou moeten returnen. Dan kan de browser namelijk een inschatting maken van hoe lang het nog duurt voordat het binnen is. Je moet in dit geval ook opgeven dat het om inline/image gaat. Vooral als je grote bestanden verstuurd met een php script is dit een erg goede gewoonte. Ga de details aub nog even na in de user comments op php.net; ik ben niet zeker of het precies klopt.
ALs ik het op deze manier doe moet ik bij elk nieuw product)image) een nieuwe regel schrijven.. Dus niet echt dynamisch.. Kan dit echt niet op een andere wijze waarbij écht alle figuren vanuit de db worden geladen?

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

ALs ik het op deze manier doe moet ik bij elk nieuw product)image) een nieuwe regel schrijven.. Dus niet echt dynamisch.. Kan dit echt niet op een andere wijze waarbij écht alle figuren vanuit de db worden geladen?
Ja, maar dat doe je met 2 scripts. In het ene script worden alle namen en plaatjeID's uitgelezen en worden de <img>-tags gegenereerd

In scriptje 2 wordt 1 plaatje opgehaald, aan de hand van het meegegeven ID. Dit scriptje zet vervolgens de header en returned de data.

Scriptje 2 wordt meerdere keren bij een pagina-oproep aangeroepen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
gorgi_19 schreef op 16 januari 2004 @ 14:21:
[...]

Ja, maar dat doe je met 2 scripts. In het ene script worden alle namen en plaatjeID's uitgelezen en worden de <img>-tags gegenereerd

In scriptje 2 wordt 1 plaatje opgehaald, aan de hand van het meegegeven ID. Dit scriptje zet vervolgens de header en returned de data.

Scriptje 2 wordt meerdere keren bij een pagina-oproep aangeroepen.
Blijft het dus één plaatje dat wordt weergegeven?

Acties:
  • 0 Henk 'm!

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 19-09 21:49

BierPul

2 koffie graag

Maar wat is nou het hele idee van dit ding :P

Wil je op een pagina alle plaatjes laten zien genereer dan zelf <img tags op basis van je data :)

Wil je ze linken oid doe dan iets met XML (oid) en interpeteer dat op je eigen mannier.

* BierPul ziet het hele probleem niet eigenlijk

[ Voor 5% gewijzigd door BierPul op 16-01-2004 14:24 ]

Ja man


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 16 januari 2004 @ 14:24:
[...]


Blijft het dus één plaatje dat wordt weergegeven?
Nee, meerdere plaatjes.
HTML:
1
2
3
4
[img]"image.php?id=1">
<img[/img]
[img]"image.php?id=3">
<img[/img]

Zijn voor zover ik zie 4 verschillende plaatjes? :?

[ Voor 34% gewijzigd door gorgi_19 op 16-01-2004 14:26 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
BierPul schreef op 16 januari 2004 @ 14:24:
Maar wat is nou het hele idee van dit ding :P

Wil je op een pagina alle plaatjes laten zien genereer dan zelf <img tags op basis van je data :)

Wil je ze linken oid doe dan iets met XML (oid) en interpeteer dat op je eigen mannier.

* BierPul ziet het hele probleem niet eigenlijk
Ik wil een productenoverzicht zien.. En deze producten hebben allen een gif..

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
gorgi_19 schreef op 16 januari 2004 @ 14:25:
[...]

Nee, meerdere plaatjes.
HTML:
1
2
3
4
[img]"image.php?id=1">
<img[/img]
[img]"image.php?id=3">
<img[/img]

Zijn voor zover ik zie 4 verschillende plaatjes? :?
Dit is zoveel typewerk bij een database van 1000 artikelen... Correct if i'm wrong

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

ASP:
1
2
3
For I = 1 to 1000
     Response.Write "[img]image.asp?id="[/img]"
Next


Ik zal je de output besparen... B)

[ Voor 33% gewijzigd door gorgi_19 op 16-01-2004 14:29 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Kwai_gon_jinn
  • Registratie: Januari 2001
  • Niet online

Kwai_gon_jinn

[-geen icon-]

geez.. dit lijkt nu echt een voorkauw topic (net zoals de dochter topic)
het lijkt 1 grote "help mij aan source code voor mijn probleem" topicS

maar iig

PHP:
1
2
3
4
for($i =0 ; $i < 100; $i++)
{
  echo "[img]\"download.php?view=".$i."\"[/img]\n";
}

Confucius said: "In ancient time, learning was for self. Nowadays learning is for others."


Acties:
  • 0 Henk 'm!

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 19-09 21:49

BierPul

2 koffie graag

gorgi_19 schreef op 16 januari 2004 @ 14:25:
[...]

Nee, meerdere plaatjes.
HTML:
1
2
3
4
[img]"image.php?id=1">
<img[/img]
[img]"image.php?id=3">
<img[/img]

Zijn voor zover ik zie 4 verschillende plaatjes? :?
En dan zoiets om dit te generen :)

PHP:
1
2
3
while($result = mysql_fetch_assoc($query)) {
    echo('[img]"image.php?id='.$result['id'].'"[/img]\n');
}


Snel , safe, simpel :P

Ja man

Pagina: 1