PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehlermeldung



super-mario
06.07.2009, 19:19
Hallo Leute ;D

da ich grade so php am lernen bin brauche ich mal eure hilfe ;D ich hoffe einer von euch kann mir helfen.... ich bekomme folgende PHP Fehler Meldung

Fatal error: Can't use function return value in write context in D:\xampp\htdocs\uno\libs\core\class.GSFE.php on line 122

das ist hier

$result[] = $jahre[$i]['jahr'];
bei diesem Code


$sql = 'SELECT DISTINCT year(datum) AS jahr\n FROM rechnungen\n WHERE kunde_id = ".( integer )";
$jahre = $this->DB->sql_select( $sql );
$i = 0;
for ( ; $i < count( $jahre ); $i++ )
{
$result[] = $jahre[$i]['jahr'];
}
return $result;
}

function getoffenerechnungsdaten( $kid = 0 )ist nur einer kleiner teil ich hoffe das reicht aus

Gruß

TheMech
06.07.2009, 19:36
du hast bei
$result[] = $jahre[$i]['jahr];

bei dem jahr in eckigen klammern das zweite semikolon vergessen...

greez

super-mario
06.07.2009, 19:41
mh ja stimmt...

Hab es geändert fehler ist aber leider immer noch da -.-


gruß

Macacity
06.07.2009, 19:51
in der obersten Reihe fehlt, soweit ich das sagen kann^^, ebenfalls ein schliessendes Semikolon.

MfG

VeN0m
06.07.2009, 19:52
$result[] = $jahre[$i]['jahr];


Warum wird bei "jahr" ein ' geöffnet aber nicht wieder geschlossen?
Wäre nicht eher



$result[] = $jahre[$i]['jahr'];


korrekt? ;)

EDIT: Mh... per php-BBCode wird das ausgeblendet.

litlein
07.07.2009, 20:11
Der komplette Teil vor der Zeile sieht für mich schon etwas Merkwürdig aus (Fehlermeldungen entstehen meistens vor der angegebenen Zeile).


$sql = 'SELECT DISTINCT year(datum) AS jahr\n FROM rechnungen\n WHERE kunde_id = ".( integer )";
Du öffnest mit einem ' und schließt irgendwie doppelt, bzw. garnicht. Deswegen sieht das hier farblich denke ich mal etwas komisch aus.
Ich würde das einfach so berichtigen:

$sql = 'SELECT DISTINCT year(datum) AS jahr\n FROM rechnungen\n WHERE kunde_id = ".( integer )"';
Was ist (integer), eine Constante? Dann muss die natürlich aus dem Query raus. Schau doch mal mit einem echo $sql; ob das überhaupt richtig reingeschrieben wird.

dlite
10.07.2009, 14:08
probier mal das ganze nicht als array sondern als einzelne variable auszugeben oder wenn schon dann $result[$i]
ein feld im array namens namenslos gibts nicht^^ er aht keine ahnung wo er den wert im array eintragen soll.

VeN0m
10.07.2009, 20:45
ein feld im array namens namenslos gibts nicht^^

Selbstverständlich gibt es sowas. Aber nicht als Name. Sofern man $array[] angibt wird der nächste freie Platz genommen.
Haben wir einen Code wie diesen:



<?php

$array = array("foo","bar","trash","crap","sven");
print_r($array);

?>


bekämen wir folgende Ausgabe:



Array ( [0] => foo [1] => bar [2] => trash [3] => crap [4] => sven )


und Du würdest folgendes versuchen:



<?php

$array = array("foo","bar","trash","crap","sven");
$array[] = "bla";
print_r($array);

?>


erhieltest Du folgende Ausgabe:



Array ( [0] => foo [1] => bar [2] => trash [3] => crap [4] => sven [5] => bla )


Arrays sind nicht blöd ;). Sie suchen sich den nächsten freien Platz.
Da ich die letzten drei Wochen täglich mit der Bahn fahren musste hier ein Beispiel: Nur, weil man mir keinen Platz zuweist kann ich mir ja trotzdem den nächst besten freien Platz suchen, oder? ;)
Das tut ein Array eben auch ^^. $array['6']= 'wert';. Hierbei könnte theoretisch $array['5'] auch leer sein. Bei $array[] wird er sich jedoch die fünf nehmen, wenn der letzte Wert die vier ist ;).

Geht übrigens nicht nur mit Arrays, wo Zahlen die Zuordnungen regeln.



<?php

$array = array("foo" => "bar","crap" => "trash");
$array[] = "bla";
print_r($array);

?>


ergibt folgendes Array:



Array ( [foo] => bar [crap] => trash [0] => bla )


Das aber nur mal so allgemein. ;)