Avatar billede nomisweb Nybegynder
26. august 2007 - 15:53 Der er 13 kommentarer og
1 løsning

Loadvars PHP Mysql og en variabel?

Hej,
Jeg er ved at sætte lidt hentning i en database op. Her er hvad jeg har:
- en phpfil som henter diverse data fra en database, jeg gemmer data i en streng af typen "&n=1&name0=MIT NAVN&address0=GADE 32&phone0=12345678&zip0=2300". n skal egentlig være lig med 3 men det her er jo bare lige et eksempel.
- en kode i flash som ser ud til at forbinde med phpfilen, dog uden at få noget retur.

Min php ser således ud:
<?php
    include("../db/_open_db.php");

$zip = $HTTP_POST_VARS['zip'];
//$qr = mysql_query("SELECT * FROM shops WHERE zip = '8000' ORDER BY RAND() LIMIT 1");
$qr = mysql_query("SELECT * FROM shops WHERE zip = '".$zip."' ORDER BY RAND() LIMIT 1");

// start output string with number of entries
$nrows = mysql_num_rows($qr);
$rString = "&n=".$nrows;

for ($i=0; $i < $nrows; $i++) {
    $row = mysql_fetch_array($qr);
    $rString .= "&name".$i."=".$row['name']."&address".$i."=".$row['address'];
    $rString .= "&phone".$i."=".$row['phone']."&zip".$i."=".$row['zip'];
}
echo $rString;
    include("../db/_close_db.php");
?>

den første udkommenteret $qr er for at jeg i min browser lige kan teste database forbindelsen, skal selvfølgelig slettes når tiden er til det.

Mit actionscript ser således ud:
function showContent() {
    var i; 
    content.htmlText = "";
    for (i=0; i < this.n; i++) {
        content.htmlText += "<b>" + this["name"+i] + " " + this["address"+i] + "</b><br>";
        content.htmlText += "&nbsp;&nbsp;" + this["phone"+i] + "<br>";
    }
}

// Create new load vars object c for data transfer
var c = new LoadVars();
c.onLoad = showContent();
var zip = this.zip;

search.onRelease = function() {
        zip = c.zip;
        content.htmlText = "Loading data";
        // scope of this function is main timeline so can refer to c directly
        c.sendAndLoad("http://www.domaine.com/test/test.php",c,"POST");
}
stop();

Jeg har en dynamisk tekstfelt med instance name "content" og en knap i form af et movieklip med instance name "search". Derudover har jeg et input felt med instance name "zip".

Det der gerne skulle ske var at man taster et postnr ind i "zip" og når man trykker på "search" sender flashfilen postnr. til php fil som laver mysqlforespørgsel og returnere diverse info til flashfilen.

I firefox står der når man trykker på search "venter på www.domaine.com" et kort øjeblik og derefter står der "overfører data fra www.domaine.com" nede i bunden. Så en eller anden connection er der da med phpfilen, lyder det til!

Jeg kan ikke se at jeg gør noget forkert m,en alligevel virker det ikke. Er der nogen der kan hjælpe?
Avatar billede mat Nybegynder
26. august 2007 - 16:14 #1
Ret linien;

c.onLoad = showContent();

Til;

c.onLoad = showContent;

mvh mat
Avatar billede nomisweb Nybegynder
26. august 2007 - 18:14 #2
Super det hjalp lidt. Nu er det som om der sker lidt mere, men der bliver stadig ikke loadet noget ind.
Nogle forslag til min dynamiske tekstbox "content"'s indstillinger. multilinie/selectable tekst osv?
Avatar billede nomisweb Nybegynder
26. august 2007 - 18:17 #3
Nå fandt lige ud af hvor problemet umiddelbart er!
Den loader nu data ind i flash, men kun når jeg bruger ovennævnte testlinie (//$qr = mysql_query("SELECT * FROM shops WHERE zip = '8000' ORDER BY RAND() LIMIT 1");
)med et fast defineret postnr. Dvs. den sender ikke det rigtige postnr fra flash filen. Men hvorfor ikke?
- er det HTTP_POST_VARS der er problemet?
- er det den måde jeg henter postnr. i flashen på? Den er jeg nemlig ret usikker på om er korrekt syntaks! Dvs. feltet der hedder "zip" og actionscriptet der har med variablen zip at gøre!
Avatar billede nomisweb Nybegynder
26. august 2007 - 18:42 #4
Lige et andet meget lille problem, hvordan får man flash til at læse æøå?
Avatar billede nomisweb Nybegynder
27. august 2007 - 01:55 #5
Jeg fandt sgu selv ud af det! Nej hvor er jeg glad! :-)
Actionscriptet satte jeg op således i stedet for ovennævnte:
function showContent() {
    var i; 
    content.htmlText = "";
    for (i=0; i < this.n; i++) {
        content.htmlText += "<b>" + this["name"+i] + "</b>, " + this["address"+i] + ", " + this["city"+i] + "<br>";
        content.htmlText += "Tel. " + this["phone"+i] + "    " + this["url"+i] +"<br><br>";
    }
}

// Create new load vars object c for data transfer
var c = new LoadVars();
c.onLoad = showContent;

    search.onRelease = function() {
        zip_var = zip.text;
        c.zip = zip_var;
        content.htmlText = "Loading data";
        c.sendAndLoad("http://www.novettes.com/test/test.php",c,"POST");
       
}
stop();

i php bruger jeg stadig $zip = $HTTP_POST_VARS['zip'];

Men mit æøå problem er der stadig!
Avatar billede mat Nybegynder
27. august 2007 - 08:23 #6
Hvilke tegn får du istedet for æøå? Du kan evt prøve med utf8_encode omkring din streng i php. (eller sætte System.useCodepage = true i flash).

mvh mat
Avatar billede nomisweb Nybegynder
27. august 2007 - 09:28 #7
Jeg får firkanter eller slet ingenting og lidt andet, men system.useCodepage virker så det er et hit, tak!
Avatar billede nomisweb Nybegynder
27. august 2007 - 09:36 #8
Nu hvor det virker kan jeg jo lige høre om en anden ting. Noget af det der hentes fra databasen er en url, så den ville jo være fed at kunne klikke på, men det er som om den ikke vil tage tag'et for det.
for (i=0; i < this.n; i++) {
        content.htmlText += "<b>" + this["name"+i] + "</b>, " + this["address"+i] + ", " + this["city"+i] + "<br>";
        content.htmlText += "Tel. " + this["phone"+i] + "  <a href='" + this["url"+i] +"'>" + this["url"+i] + "</a><br><br>";
    }
Hvis jeg sætter det op sådan viser den ikke linket, det forstår jeg ikke
Avatar billede mat Nybegynder
27. august 2007 - 10:39 #9
Kan du trace den?
Avatar billede nomisweb Nybegynder
27. august 2007 - 10:52 #10
Det har jeg ikke prøvet.
Skal jeg så bare skrive trace("<a href='" + this["url"+i] + "'>" + this["url"+i] + "</a>);
eller måske bare
trace(content.html); ?

men altså this["url"+i] kommer fint frem hvis ikke jeg har <a> taget med. Det er bare det anchor tag der får det til at forsvinde.
Avatar billede mat Nybegynder
28. august 2007 - 07:26 #11
Kunne urlen tænkes at ødelægge en html formattering?
Avatar billede nomisweb Nybegynder
28. august 2007 - 09:03 #12
Godt spørgsmål, så meget er jeg ikke inde i det. Man kan jo ikke rigtig bruge flashes egen getUrl(), så jeg er ligesom lidt ude af ideer for hvordan det virker.
Et andet sted i flash filen henter jeg tekst ind i et tekstfelt vha en txt fil. Her kan jeg uden problemer bruger <a> taget, hvor det også fungere som et link i filen. Så det forstår jeg ikke helt, det må være en fejl i mit actionscript et sted.
Avatar billede nomisweb Nybegynder
04. september 2007 - 23:27 #13
Nå men fandt aldrig ud af det med html formatteringen i flashen men tilgengæld de andre ting. Vil du smide et svar mat som tak for hjælpen?
Avatar billede mat Nybegynder
09. september 2007 - 15:02 #14
aight
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester