• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

php function $parameter erlaubte Zeichen

T

the_sacrificer

Gast
Hallo zusammen,

da in meinen alten thread nicht mehr reingeschaut bzw geantwortet wird, mach ich mal einen neuen auf.

Wenn ich in einer Funktion mit Werten eines assoziativen arrays arbeiten möchte, muss ich die Zeichen [ , ] , ' verwenden, das ergibt aber einen parse error (expecting `')'' ).

Code:
function calc_weight($row['xbk'], $row['ybk'], $row['xek'], $row['yek']) {
    ...

Gibt es eine Möglichkeit, nur die benötigten Parameter in die Funktion einzuspeisen - abgesehen von den ganzen array als Parameter zu nehmen oder den einzelnen Elemente erst andere Variablennamen zuzuweisen?

Gruß
the_sacrificer


und wenn wir schon dabei sind:

Ich berechne aus Werten jeder Zeile einer db einen neuen Wert, der dann gleich in seine eigene Zeile in die vorgesehene Spalte eingetragen wird.
Bei mir sieht das so aus:
Code:
$sql = "SELECT * FROM `alg`";
$res = send_sql($sql);

while($row = mysql_fetch_array($res, MYSQL_ASSOC))
	{
	$weight = calc_weight($row);        //berechne gesuchten Wert aus gegebenen Werten
	echo $weight."<br />";              //Kontrollausgabe
	send_sql("UPDATE `alg` SET `weight` = '".$weight."'");  //trage gsuchten Wert in die Zeile ein
	}
Jetzt wird in jede Zeile der berechnete Wert des letzten Datensatzes eingetragen :confused:

Ich vermute, es liegt am fehlenden WHERE im UPDATE-Befehl.
Jetzt hab ich aber überhaupt keine Idee, wie ich das WHERE spezifizieren könnte.

Hilfe :B
 
the_sacrificer am 24.03.2009 17:57 schrieb:
Wenn ich in einer Funktion mit Werten eines assoziativen arrays arbeiten möchte, muss ich die Zeichen [ , ] , ' verwenden, das ergibt aber einen parse error (expecting `')'' ).

Code:
function calc_weight($row['xbk'], $row['ybk'], $row['xek'], $row['yek']) {
    ...
Du solltest in der Funktionsdefinition evtl. weniger die zu übergebenden Objekte angeben, sondern einfache Variablen die du in der Funktion verwenden kannst. z.B.:
Code:
function calc_weight($xbk, $ybk, $xek, $yek)
Oder das Array einzeln übergeben und innerhalb der Funktion auf die Keys zugreifen:
Code:
function calc_weight($array) {
  $xbk = $array['xbk']
  ...
}

the_sacrificer am 24.03.2009 17:57 schrieb:
Ich berechne aus Werten jeder Zeile einer db einen neuen Wert, der dann gleich in seine eigene Zeile in die vorgesehene Spalte eingetragen wird.
Bei mir sieht das so aus:
Code:
$sql = "SELECT * FROM `alg`";
$res = send_sql($sql);

while($row = mysql_fetch_array($res, MYSQL_ASSOC))
	{
	$weight = calc_weight($row);        //berechne gesuchten Wert aus gegebenen Werten
	echo $weight."<br />";              //Kontrollausgabe
	send_sql("UPDATE `alg` SET `weight` = '".$weight."'");  //trage gsuchten Wert in die Zeile ein
	}
Jetzt wird in jede Zeile der berechnete Wert des letzten Datensatzes eingetragen :confused:

Ich vermute, es liegt am fehlenden WHERE im UPDATE-Befehl.
Jetzt hab ich aber überhaupt keine Idee, wie ich das WHERE spezifizieren könnte.
Dafür ist der Primary Key der Tabelle da. In der Regel `id`.


Wo ich gerade das
Code:
calc_weight($row);
sehe.. da trifft dann die 2. Variante der ersten Frage zu.


Mein Gott... ist PHP hässlich :B
 
Dafür ist der Primary Key der Tabelle da. In der Regel `id`.
Einmal drüber schlafen hilft meistens. Wollte es über den pk machen, der besteht aber aus Buchstaben, somit konnte ich keine Laufvariable nehmen, hatte vergessen, dass ich direkt drauf referenzieren kann - also Problem gelöst (das nächste kommt bestimmt).

Wo ich gerade das
Code:
calc_weight($row);
sehe.. da trifft dann die 2. Variante der ersten Frage zu.

ja... irgendwie musste ich ja weiter machen - um gleich an der nächsten Zeile stecken zu bleiben :B

Mein Gott... ist PHP hässlich :B
bessere Alternative?
 
the_sacrificer am 25.03.2009 11:18 schrieb:
Dafür ist der Primary Key der Tabelle da. In der Regel `id`.
Einmal drüber schlafen hilft meistens. Wollte es über den pk machen, der besteht aber aus Buchstaben, somit konnte ich keine Laufvariable nehmen, hatte vergessen, dass ich direkt drauf referenzieren kann - also Problem gelöst (das nächste kommt bestimmt).

Wo ich gerade das
Code:
calc_weight($row);
sehe.. da trifft dann die 2. Variante der ersten Frage zu.

ja... irgendwie musste ich ja weiter machen - um gleich an der nächsten Zeile stecken zu bleiben :B

Mein Gott... ist PHP hässlich :B
bessere Alternative?
Ruby oder Python sind 100 mal schöner (sowohl zu lesen als auch zu schreiben)
 
klausbyte am 25.03.2009 12:40 schrieb:
Ruby oder Python sind 100 mal schöner (sowohl zu lesen als auch zu schreiben)

+ Groovy (Grails)
+ Java
+ Objective C
+ C++ / C# / D
+ Scala
+ Erlang
 
+ Ruby
+ Python
+ Groovy (Grails)
+ Java
+ Objective C
+ C++ / C# / D
+ Scala
+ Erlang
Ich wusste nicht, dass die alle eine Alternative zu PHP, speziell webanwendungen darstellen - aber ich wusste irgendwie, dass kb antworten würde :-D
 
the_sacrificer am 25.03.2009 18:48 schrieb:
+ Ruby
+ Python
+ Groovy (Grails)
+ Java
+ Objective C
+ C++ / C# / D
+ Scala
+ Erlang
Ich wusste nicht, dass die alle eine Alternative zu PHP, speziell webanwendungen darstellen - aber ich wusste irgendwie, dass kb antworten würde :-D
Für so ziemlich jede Programmiersprache gibt es mehrere Webframeworks. Die meisten sind 100 mal geiler und effizienter als PHP ;)
 
klausbyte am 26.03.2009 20:48 schrieb:
the_sacrificer am 25.03.2009 18:48 schrieb:
+ Ruby
+ Python
+ Groovy (Grails)
+ Java
+ Objective C
+ C++ / C# / D
+ Scala
+ Erlang
Ich wusste nicht, dass die alle eine Alternative zu PHP, speziell webanwendungen darstellen - aber ich wusste irgendwie, dass kb antworten würde :-D
Für so ziemlich jede Programmiersprache gibt es mehrere Webframeworks. Die meisten sind 100 mal geiler und effizienter als PHP ;)
Brauch ich dann irgendwelche Rechte, die über den normalen Nutzerstatus von 08/15 webspace hinasugehen um das framework zu installieren? Die Kohlen für einen eigenen server für solche kleinen Späßchen hab ich grad nicht übrig.
 
the_sacrificer am 29.03.2009 10:44 schrieb:
klausbyte am 26.03.2009 20:48 schrieb:
the_sacrificer am 25.03.2009 18:48 schrieb:
+ Ruby
+ Python
+ Groovy (Grails)
+ Java
+ Objective C
+ C++ / C# / D
+ Scala
+ Erlang
Ich wusste nicht, dass die alle eine Alternative zu PHP, speziell webanwendungen darstellen - aber ich wusste irgendwie, dass kb antworten würde :-D
Für so ziemlich jede Programmiersprache gibt es mehrere Webframeworks. Die meisten sind 100 mal geiler und effizienter als PHP ;)
Brauch ich dann irgendwelche Rechte, die über den normalen Nutzerstatus von 08/15 webspace hinasugehen um das framework zu installieren? Die Kohlen für einen eigenen server für solche kleinen Späßchen hab ich grad nicht übrig.
Die meisten Frameworks für PHP benötigen keine weitergehende Rechte.
 
klausbyte am 29.03.2009 14:27 schrieb:
the_sacrificer am 29.03.2009 12:59 schrieb:
klausbyte am 29.03.2009 12:19 schrieb:
Die meisten Frameworks für PHP benötigen keine weitergehende Rechte.
Ich meinte ein framework für zB Python.
Da brauchst du dann schon root-Zugang.

Wenn man weiß wie, gehts auch ohne. Nur ohne root-Zugang kann man meistens nur CGI nutzen, was vergleichsweise langsam ist.
 
klausbyte am 29.03.2009 14:27 schrieb:
the_sacrificer am 29.03.2009 12:59 schrieb:
klausbyte am 29.03.2009 12:19 schrieb:
Die meisten Frameworks für PHP benötigen keine weitergehende Rechte.
Ich meinte ein framework für zB Python.
Da brauchst du dann schon root-Zugang.
Gut, dann hat sichs erledigt - ich will grad eh keinen neuen Syntax lernen.

Vllt versuch ichs irgendwann mal auf meinem xampp.
 
Zurück