[MX 2004] PHP-Variable nicht als Zahl verwendbar

luke_the_duke

Erfahrenes Mitglied
Hallo zusammen!

ich habe folgendes Problem, ich möchte via PHP-Script Daten aus einer Datenbank auslesen und beziehe ausserdem noch Informationen über die Namen der Spalten und die Anzahl Einträge. Das Script gibt auch alle Variablen wunschgemäss aus. Ich möchte nun mit der Variable für die Anzahl Einträge "max_entry" als Bedingung eine while-Schlaufe erstellen, Flash akzeptiert jedoch den Wert der Variable, der aber beim Test eindeutig als Zahl ausgegeben wird, nicht als Bedingung. Wo liegt der Fehler?

Das PHP-Script kann mit folgendem Link getestet werden:
http://www.dyonikal.ch/rothuswies/db.php?table=guestbook

Mein dazugehöriger Flash-Code:

Funktioniert NICHT:
PHP:
var pfad = http://www.dyonikal.ch/rothuswies/db.php?table=guestbook";
_root.db = new LoadVars();
_root.db.sendAndLoad(pfad, _root.db, "POST");
_root.db.onLoad = function() {
	var i=0;
	while (i<_root.db.max_entry) {
		trace (_root.db.max_entry add ":" _root.db.field_num);
		i++;
	}
};

aber das hier funktioniert einwandfrei:

PHP:
var pfad = http://www.dyonikal.ch/rothuswies/db.php?table=guestbook";
_root.db = new LoadVars();
_root.db.sendAndLoad(pfad, _root.db, "POST");
_root.db.onLoad = function() {
	var i=0;
	while (i<_root.db.field_num) {
		trace (_root.db.max_entry add ":" _root.db.field_num);
		i++;
	}
};


Ich versteh das nicht!

Gruss Lukas

PS: Beim Testen des LoadVars nach dem sendAndLoad via strg+alt+v wird die Variable _root.db.max_entry als "4/t/t" ausgegeben. Nützt das vielleicht etwas?
 
Zuletzt bearbeitet:
Hi,

hmm, das sieht aus, als ob das PHP-Script noch irgendwelche Formatierungsinformationen an die Ausgabe anhängt. Interessant wäre der entsprechende Codeausschnitt.

Als Schnelllösung würde ich mal probieren, an die letzte Variable noch ein "&" anzuhängen. Ansonsten bekommst Du mit "parseInt(variable, 10)" auf jeden Fall einen numerischen Wert zurückgeliefert.

Gruß

EDIT: Knapp zu spät. ;)
.
 
Ja schau mal einer an, da antwortet aber die Elite Dank an euch!

Mein PHP-Script könnt ihr euch gerne mal ansehen, es wundert mich schon ein wenig, dass das nicht funktioniert, weil ich dieses PHP-Script auch schon anderweitig mit Flash verwendete und da hats einwandfrei funktioniert.

Eure Tipps muss ich erst noch testen, gebe Bescheid, wenn ich etwas herausgefunden habe.

PHP:
<?
//conn.php stellt die verbindung her
	include ("conn.php");
	$result = mysql_query ("SELECT * FROM $table");
	$result_num = mysql_num_fields($result);
	echo "&field_num=$result_num";
	$i =0;
	while ($i<$result_num) {
		$field_name[$i] = mysql_field_name($result, $i);
		$target [$i] = mysql_query("SELECT $field_name[$i] FROM $table");
		echo "&field_name$i=$field_name[$i]";
		$i++;
	}
	//abfrage
	$i = 0;
	while ($i <$result_num) {
		$a = 0;
		if (!$target [$i]) {
			die(mysql_error());
		}
		while ($ergebnis = mysql_fetch_array($target[$i],MYSQL_NUM)) {
				while (list($index,$wert) = each ($ergebnis)) {
					echo "&"."$field_name[$i]"."$a"."="."$wert";
					$a++;
				}
		}
		$i++;
	}
	
	echo "&max_entry=$a";
?>

Gruss Lukas
 
nö, sagt mir leider nichts - sieht ok aus.

Aber wo ich schon mal hier bin: Darf ich fragen, warum Ihr eigentlich immer Variablenausgaben in Anführungsstriche setzt:
PHP:
echo "$a"; echo "variable=$b";
// statt:
echo ($a); echo ("variable=".$b);
?

Gibt es da eigentlich einen Unterschied in der Behandlung? Ich kenne mich mit PHP nicht so genau aus, aber das würde ich spontan für die einzige mögliche Fehlerquelle halten (da ich selbst die andere Schreibweise bevorzuge).

Gruß
.
 
Nein, das macht zumindest bei meinem Script keinen Unterschied, hab es probiert. Ich weiss auch nicht, worin der exakte Unterschied besteht, hatte es halt so gelernt und nie Probleme damit gehabt.

Aber dein (Datic) Tipp mit dem angehängten & hat funktioniert. Das Script läuft auch noch mit der anderen Applikation, alles in Butter also.

Vielen Dank

Gruss

Lukas
 
Zuletzt bearbeitet:
... meines Wissens nach auch eine reine Dialektform, die sich in der Wirkungsweise in nichts unterscheidet, ausser das man die unterschiedlich Syntax beachten muss....

Grüsse
B

P.S.: Trotzdem war Datics Tipp mit dem '&' am Ende einer auszugebenden Variablenkette sehr sinnvoll, das mache ich auch prinzipiell und immer, weil es oft Artefakte am Ende des Strings gibt, wobei ich bisher noch nicht herausbekommen habe, ob diese von Flash oder PHP kommen.....
 

Neue Beiträge

Zurück