Flashhilfe.de - Flash Community

PHP zu Flash - http_build_query Probleme

 


AntwortenRegistrieren Seite1  

frq2000#1
Benutzerbild von frq2000
Beiträge: 2
Registriert: Nov 2008

15.11.2008, 23:29

Hallo liebe Flashhelfer,
ich code gerade an einem grundgerüst für eine internet seite. Momentan habe ich ein merkwürdigen Fehler. Ich habe einen Array, den Ich via http_build_query umkonvertiere, damit ich ihn zu flash schicken kann. Da ich nicht PHP 5 habe, sondern noch 4, musste ich mir die http_build_query Funktion aus dem Internet runter laden. Vielleicht scheitert es schon hier:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
if (!function_exists('http_build_query')) {
function 
http_build_query($data$prefix=''$sep=''$key='') {
   
$ret = array();
    foreach ((array)
$data as $k => $v) {
        if (
is_int($k) && $prefix != null$k urlencode($prefix $k);
        if (!empty(
$key)) $k $key.'['.urlencode($k).']';
       
        if (
is_array($v) || is_object($v))
           
array_push($rethttp_build_query($v''$sep$k));
        else   
array_push($ret$k.'='.urlencode($v));
    }

    if (empty(
$sep)) $sep ini_get('arg_separator.output');
    return 
implode($sep$ret);
}}
?>


---
Ich habe mehrere Daten, die ich dynamisch aus einer MySQL Tabelle laden möchte, die anschließend nach Flash weiter gereicht werden sollen.
---
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?
   
switch ((int)$_POST["auswahl"])
   {
   case 
0$daten "id,kategorie,datum"$auswahl "kategorie=0";break;
   case 
1$daten "id,kategorie,datum"$auswahl "kategorie=1";  break; //gibt Kategorie 4
   
case 2$daten "id,kategorie,datum"$auswahl "kategorie=2"; break; //gibt Kategorie 3
   
}
   
   
$query "SELECT ".$daten." FROM flashazine WHERE ".$auswahl." ORDER BY datum DESC";
   
   
$res_query mysql_query($query) or die("query geht nicht:" mysql_error());
   
$num_query mysql_num_rows($res_query); 
   
   
$myFile "speichern.txt";
   
$fh fopen($myFile'w') or die("can't open file");
   
$stringData "Variabele:\n".(int)$_POST["auswahl"];
   
fwrite($fh$stringData);
   
$stringData "Query:\n".$query;
   
fwrite($fh$stringData);
   
fclose($fh);

    for(
$x=0;$x<$num_query;$x++)
    {
   
$id mysql_result($res_query,$x,"id");
   
$idarray[] = array();
   
$idelement "id".$x;
   
$idarray[$idelement] = $id;
   
   
$kategorie mysql_result($res_query,$x,"kategorie");
   
$kategoriearray[] = array();
   
$kategorieelement "kategorie".$x;
   
$kategoriearray[$kategorieelement] = $kategorie;
   
   
$datum mysql_result($res_query,$x,"datum");
   
$datumarray[] = array();
   
$datumelement "datum".$x;
   
$datumarray[$datumelement] = $datum;

    }

    echo 
"&anz=".$num_query."&";
    echo 
http_build_query($idarray);
    echo 
http_build_query($datumarray);
    echo 
http_build_query($kategoriearray);
?>

---

Jetzt gibt er aber etwas sehr merkwürdiges aus:
ActionScript:
1&anz=1&&id0=32&datum0=2008-11-15+21%3A05%3A42&kategorie0=2


Heißt, nach der ersten Variabele des Arrays macht der immer zwei & zeichen. Ich verstehe einfach nicht warum.
Habt ihr eine Idee? Ich wäre echt für jede Hilfe dankbar.

Gruß
frq2000
Geändert von frq2000 am 15.11.08 um 23:30 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


abgemeldeter Benutzer#2
16.11.2008, 01:03

änder doch einfach die 41. zeile von:
echo "&anz=".$num_query."&";

in:
echo "&anz=".$num_query;
frq2000#3
Benutzerbild von frq2000
Beiträge: 2
Registriert: Nov 2008

Themenautor/in

16.11.2008, 12:57

Mh, das war ein dummes Beispiel.
Wenn die Anzahl höher als 1 ist, kommt folgender fehler:

ActionScript:
1&anz=3&id0=34&&id1=33&&id2=31&datum0=2008-11-15+22%3A02%3A39&&datum1=2008-11-15+21%3A08%3A16&&datum2=2008-11-14+21%3A00%3A50&kategorie0=1&&kategorie1=1&&kategorie2=1
Geändert von frq2000 am 16.11.08 um 12:58 Uhr
abgemeldeter Benutzer#4
16.11.2008, 17:45

dann mach es eben so ^^
PHP:
1
2
3
4
<?
echo str_replace("&&","&","&anz=".$num_query."&".http_build_query($idarray).http_build_query($datumarray).http_build_query($kategoriearray));
?>


hab nie mit php4 gearbeitet, aber denke is fast das gleiche ^^
Werbung
Beiträge: 0
Registriert: Feb 2016


Sebastian#5
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

17.11.2008, 19:21

Was gibt Deine Methode aus wenn Du das machst:
PHP:
1
2
3
4
5
6
7
8
9
<?
$data 
= array('foo'=>'bar',
             
'baz'=>'boom',
             
'cow'=>'milk',
             
'php'=>'hypertext processor');

echo 
http_build_query($data);
?>

Und was gibt das aus:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
if (!function_exists('http_build_query'))

   print 
'false';
}
else
{
  print 
'true';
}
?>
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Online-Spiel Crossover [Flash 11] 05.06.2019 - Indy_Crossover
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de