Toon posts:

Flash haalt geen MySQL-gegevens op

Pagina: 1
Acties:
  • 141 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Even kort de situatie - het gaat om een portfoliosite in HTML, met integratie van Flashvideo. Ik heb een PHP-pagina die na een aantal controles wat waarden uit een gegevensbank haalt. Als in de database 'portfolio' het 'id' bijvoorbeeld 2 is, dan staat daar bij afbeelding 'aap.jpg'.

PHP zet dan mooi het prentje van de aap neer. Soms gebeurt het dat de bestandsnaam van een filmpje in de database zit, 'boekje.flv', bijvoorbeeld. Dan moet PHP een extern swf'je inladen, waar met behulp van loadVars het juiste flv'tje wordt opgeroepen. Ik heb al een swf die een PHP-bestand inleest en dan het juiste filmpje oproept - ziet er zo uit:

PHP:
1
2
3
<?php
    echo 'aap=get_video-video_id=G8vdqhkI_AU kopie.flv'
?>


Dat werkt, maar zo geeft hij natuurlijk altijd dàt filmpje terug. Dit php-bestand moet dus afhankelijk van de op de hoofdpagina aangevraagde id de juiste waarde teruggeven. Hoe ik queries uitvoer, is geen probleem - mijn grootste zorg is hoe ik zo'n apart php-bestand als hierboven van zo'n url-parameter moet voorzien.

(Ik heb al met sessies geprobeerd, waarbij ik op de 'slimme hoofdpagina' de bestandsnaam in een sessievariabele zet en die dan in dat aparte bestand echo, maar dat neemt Flash niet.)

  • Jimbolino
  • Registratie: Januari 2001
  • Laatst online: 02:13

Jimbolino

troep.com

Je kunt je flash bestand laten communiceren met de database via xml (gegenereerd door php) door simpele http get of post requests te sturen.

Ik snap alleen niet waarom je iets met sessies wilt doen, aangezien flash natuurlijk niet direct data uit een php-sessie kan halen...

The two basic principles of Windows system administration:
For minor problems, reboot
For major problems, reinstall


Verwijderd

Topicstarter
Kan je daar wat technischer op ingaan? Ik ken niet zo veel van Flash.

(Dat met die sessies was dan ook maar een probeersel. Niet geschoten,...)

Verwijderd

Topicstarter
Hm, even wat extra informatie, want ik kom er niet helemaal uit...

Dit heb ik op de hoofdtimeline staan:
code:
1
MC_test.loadVariables("http://cmdstud.khlim.be/~tgorissen/flvtest/flvtest.php", this);


En op diezelfde frame (andere laag, wel) staat een movieclip met dit:
code:
1
2
3
4
5
6
7
8
9
10
onClipEvent(data) {
    trace(aap);
    _root.videoplayer.contentPath = aap;
    //_root.videoplayer.height = 200;
    //_root.videoplayer.width = 200;
    trace(_root.videoplayer.width);
    _root.videoplayer.play();
    Stage.width=200;
    trace(Stage.width);
}


Je kan hier het Flashbestand downloaden. Ik ken niet zo veel van Flash, maar ik begrijp ongeveer wel dat 'ie voor loadVars wel zo'n eenvoudige string als dit moet terugkrijgen, en die 'slimme pagina' geeft opmaak en zo terug. Vandaar mijn idee dat ik een 'lightversie' van die pagina nodig heb.

Kijk hier.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Die pagina genereer je toch zelf :?

Geef even aan wat je precies probeert te bereiken zonder allerlei externe applicaties erbij te halen. Simplify your problem, zeg maar ;)

offtopic:
Overigens, als je zelf niet zoveel van Flash weet, betekent het niet dat je zelf niet zoveel inzet hoeft te tonen

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
Ik heb een pagina portfolio.php, die ik via index.php?pagina=portfolio oproep. Wanneer ik dat zo doe, voert de pagina een aantal queries uit om de juiste werken uit de MySQL-database te halen. Zonder verdere url-parameters haalt 'ie bijvoorbeeld de laatste 5 werken op. Wanneer je op die pagina op wat links klikt, kom je bijvoorbeeld op index.php?pagina=portfolio&categorie=3 uit - dan haalt een query op die pagina (nog steeds portfolio.php) alle werken van categorie 3 op. Hij print die dadelijk in een lijstje, verzorgd met opmaak en dergelijke zaken.

code:
1
2
3
4
5
6
7
8
9
// verbinding
$portfolio = vqu("SELECT * FROM portfolio WHERE id = " . $_REQUEST['id'] . ";");
require_once("inc/inc_bron.php");
while($rij_portfolio = mysql_fetch_assoc($portfolio)){
    $bestandstype = stroop_bestandstype($rij_portfolio['bron']);
    echo("<div id=\"bron\">" . toon_bron(stroop_bestandstype($rij_portfolio['bron']), "bld/portfolio/"  $rij_portfolio['bron'], 425) . "</div>");
    echo("<h3>" . $rij_portfolio['titel'] . "</h3>");
    echo("<p>" . $rij_portfolio['beschrijving'] . "</p>");
}


(stroop_bestandstype() geeft de bestandsextensie terug, toon_bron() geeft bijvoorbeeld een lijn à la <img src="afbeelding.ext" width="100" height="100" /> terug. Wanneer de extensie dan flv is, zal die lijn zo'n <embed>-lijn voor Flash returnen.)

Dit loopt allemaal erg goed voor de afbeeldingen bij de werken: ik haal de bestandsnaam om en schrijf een <img>-lijn. Nu kan het gebeuren dat een werk niet een afbeelding beslaat, maar een filmpje. Ik denk dus: ik maak een swf-container die automatisch het juiste flv-bestand uit de database laat zien.

Tot nu toe heb ik inderdaad zo'n swf-bestand dat via loadVariables een string van een php-pagina inleest.
PHP:
1
2
3
<?php 
    echo 'aap=get_video-video_id=G8vdqhkI_AU kopie.flv' 
?>


Dat werkt ook goed, maar het probleem is dat die pagina, zoals ze nu gebouwd is altijd precies dit filmpje teruggeeft. Dat is natuurlijk niet de bedoeling - afhankelijk van het opgeroepen werk uit de portfolio moet dit het bewuste in MySQL bewaarde flv-bestandje teruggeven. Zover ik weet houdt Flash niet zo van die onnodige opmaakcode, en is ze des te blijver met een eenvoudige string. Maar wanneer ik een aparte pagina maak met louter dit in, verlies ik een heleboel essentiële logica.

Ik kan er vanuit gaan dat wanneer die swf wordt aangeroepen alle controles gebeurd zijn, en dus enkel het flv-bestand moet worden ingepast. Het moeilijke (onmogelijke?) lijkt me dus te zitten in het feit dat de inhoud van de pagina verandert door het opgeven van een url-parameter - hoe geef ik zulke dynamische veranderingen aan Flash door?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je moet in het geval van een filmpje inderdaad alleen die string retourneren en geen onnodige smuk meegeven. Maar wat ik niet snap aan je verhaal (en dat doet er volgens mij helemaal niet aan toe), je roept toch steeds je swf met de juiste flv aan?

Dat die php niet fixed wordt, maar dynamisch gegevens gaat ophalen, maakt voor Flash niet uit. Lees eens de documentatie door van Flash en bekijk de mogelijkheden om parameters door te geven aan een movie ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
BtM909 schreef op maandag 14 mei 2007 @ 13:20:
Je moet in het geval van een filmpje inderdaad alleen die string retourneren en geen onnodige smuk meegeven. Maar wat ik niet snap aan je verhaal (en dat doet er volgens mij helemaal niet aan toe), je roept toch steeds je swf met de juiste flv aan?

Dat die php niet fixed wordt, maar dynamisch gegevens gaat ophalen, maakt voor Flash niet uit. Lees eens de documentatie door van Flash en bekijk de mogelijkheden om parameters door te geven aan een movie ;)
Dat tweede begrijp ik: ik snap dat ik een aantal queries kan doen en enkel zo'n eenvoudige echo aan het einde. Om op dat eerste even terug te komen: in Flash doe ik bijvoorbeeld dit:

code:
1
MC_test.loadVariables("http://cmdstud.khlim.be/~tgorissen/flvtest/flvtest.php", this);


Maar de query die ik opbouw op die 'portfolio.php' is afhankelijk van de url-parameters. En die lijk ik niet zomaar in Flash te kunnen meegeven - ze verschillen voortdurend.

Eigenlijk is het zoiets als YouTube, denk ik, waarbij in de url ook een code staat die dan het juiste filmpje inlaadt, samen met de juiste commentaar en dergelijke.

Ik hoop dat we er nu ongeveer geraken :)

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 01-12 10:11

RM-rf

1 2 3 4 5 7 6 8 9

Verwijderd schreef op maandag 14 mei 2007 @ 14:13:

Maar de query die ik opbouw op die 'portfolio.php' is afhankelijk van de url-parameters. En die lijk ik niet zomaar in Flash te kunnen meegeven - ze verschillen voortdurend.
heb je de documentatie van de 'loadVariables' functie al doorgelezen:

code:
1
loadVariables ( " url " , level/ " target "   [ ,   variables  ])

http://www.adobe.com/supp...script_dictionary425.html

volgens mij geeft dat al de antwoorden die jij zoekt

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Topicstarter
Dan ga je ervan uit dat ik in Flash al weet hoe ik mijn variabelen invul. Ik moet net het tegenovergestelde - het Flashbestand is afhankelijk van de variabelen die PHP teruggeeft, niet omgekeerd.

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 01-12 10:11

RM-rf

1 2 3 4 5 7 6 8 9

Verwijderd schreef op maandag 14 mei 2007 @ 14:38:

het Flashbestand is afhankelijk van de variabelen die PHP teruggeeft, niet omgekeerd.
:?

wat is dan je probleem, het is niet zo dat Flash een statisch bestandsformaat is, integendeel het is volledig dynamisch en je kunt alles laten opbouwen wat je wilt ...

met Loadvariables krijg je alle waardes terug als variabelen die je in je flashmovie verder kunt gebruiken: en op basis daarvan bijvoorbeeld verschillende movieclips oproept (bv het verschil tussen het laten tonen van afbeeldingen of als de URI een extensie .flv bevat juist het plaatsen in een FlVPlayback-object)

hoe dat moet is echter gewoon een kwestie van te leren flash en actionscript programmeren, als je wilt weten hoe je _dat_ moet doen moet je wat specifieker worden dan enkel 'flash haalt geen mysql-gegevens op'

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • MueR
  • Registratie: Januari 2004
  • Laatst online: 01:41

MueR

Admin Devschuur® & Discord

is niet lief

Lichtelijk offtopic, maar je doet toch geen
PHP:
1
include($_GET['pagina'] . '.php');
Toch? Zo ja, kijk eens bij de buren. Dat is namelijk nogal bad practice, en redelijk kwetsbaar voor geklooi met evil scripts enzo.

[ Voor 28% gewijzigd door MueR op 14-05-2007 15:48 ]

Anyone who gets in between me and my morning coffee should be insecure.

Pagina: 1