php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.12.2008, 15:18  
Neuer Benutzer
 
Registriert seit: 08.02.2008
Beiträge: 6
Marko_Schulze befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Array innerhalb einer Funktion

Halloechen zusammen!

Hab ein "kleines" Problem hier und habe atm nicht so recht ne Idee, was falsch laeuft. Entweder seh ich den Wald vor lauter Baeumen nicht mehr oder ich bin zu bloed (will ich ja nich ausschließen ) . Mein Wissen in Bezug auf PHP haelt sich doch noch stark und Grenzen.

Im Moment versuche ich gerade eine eigene Funktion zu erstellen, in welcher ein Array gefuellt werden soll. Sinn der Funktion ist es, einen Timestamp aus einer Datenbank auszulesen und so umzuwandeln, dass 2 Variablen (Datumsangabe und Zeit) genutzt werden koennen. Irgendwie scheint da aber was nicht zu stimmen. Hab mir jetzt schon zig Seiten angeschaut, aber irgendwie will es nicht.

Zunaechst hatte ich 2 einzelne Funktionen fuer die Bearbeitung des Timestamps erzeugt. Die haben auch soweit funktioniert.

PHP-Code:
function datum($timestamp) {
    
$datum date("d.m.Y"$timestamp);
    return 
$datum;
    }
    
    function 
zeit($timestamp) {
    
$zeit date("H:i"$timestamp);
    return 
$zeit;
    } 
Aufgerufen hab ich das ganze dann in einer anderen php-Datei mit:

PHP-Code:
$timestamp $row["timestamp"]; //Kommt aus ner Datenbankabfrage

$datum datum($timestamp);
$zeit zeit($timestamp);

echo 
$datum;
echo 
$zeit
Vermutlich nicht die eleganteste Loesung, aber immerhin hat es funktionert. Datenbankverbindung existiert und das Auslesen klappt auch. Nun habe ich mir gedacht, dass ich das Ganze auch in 1 Funktion bauen koennte. Aber da waren wieder meine 3 Probleme... oder so aehnlich.


Die neue Funktion lautet:
PHP-Code:
function datumsangabe($timestamp) {
        
$datum date("d.m.Y"$timestamp);
        
$zeit date("H:i"$timestamp);
        
$timestamp_zerlegen = array("datum"=>$datum"zeit"=>$zeit);
        return array(
$timestamp_zerlegen);
    }

//Aufruf in ner andere Datei dann ueber:
$test datumsangabe($timestamp);
echo 
$test["datum"];
echo 
$test["zeit"]; 
Hmm aber das will nich so wie ich will. Scheinbar wird das Array nicht richtig uebergeben oder auch gar nicht erst richtig in der Funktion gefuellt. Wie gesagt halten sich meine PHP-Kenntnisse in Grenzen und ich finde den Fehler einfach nicht.

Bin mir sicher , dass die Profis hier sicher schnell fuendig werden. Danke schonmal fuer eventuelle Ratschlaege.
Marko_Schulze ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.12.2008, 15:25  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Hallo Marko,

mach einfach mal ein print_r($test); nach dem Funktionsaufruf und du siehst was falsch läuft. (Tipp: In deiner Funktion hast du in $timestamp_zerlegen bereits ein array, dieses fügst du dann vor dem zurückeben nochmal in ein array ein, warum?)
agrajag ist offline  
Alt 02.12.2008, 17:46  
Neuer Benutzer
 
Registriert seit: 08.02.2008
Beiträge: 6
Marko_Schulze befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von agrajag Beitrag anzeigen
Hallo Marko,

mach einfach mal ein print_r($test); nach dem Funktionsaufruf und du siehst was falsch läuft.
Hab das print_r($test) ausgefuehrt und erhalte daraufhin eine mehr oder weniger unverstaendliche Antwort bzw bin ich nicht ganz sicher , was sie bedeutet. Array ([0] => Array ([datum] => 01.03.2004 [zeit] => 23:11)) Wenn ich raten muesste, wuerde ich sagen, dass es an deinem Tipp liegt, der sich wohl auf:
PHP-Code:
$timestamp_zerlegen = array("datum"=>$datum"zeit"=>$zeit); 
bezieht. Quasi ein Array in einem Array... Die Idee war eigentlich, dass ich die einzelnen Felder mit Namen ansprechen kann. Statt eines mehr oder weniger unuebersichtlichem $test[0] dann halt
PHP-Code:
$test["datum"]; 
. Aber irgendwie scheint da auch der Fehler zu liegen...
Marko_Schulze ist offline  
Alt 02.12.2008, 17:54  
Benutzer
 
Registriert seit: 24.09.2008
Beiträge: 52
frank-ae befindet sich auf einem aufstrebenden Ast
frank-ae eine Nachricht über Yahoo! schicken frank-ae eine Nachricht über Skype™ schicken
Standard

Hallo Marco,
in der Variable "$timestamp_zerlegen" stellst Du dir Dein erstes Array zusammen, soweit ganz richtig,

aber warum Packst Du das Array "$timestamp_zerlegen" nochmal in ein Array?

hier:
PHP-Code:
return array($timestamp_zerlegen); 
Versuchs mal so:
PHP-Code:
return($timestamp_zerlegen); 
und dann:

PHP-Code:
$datum $timestamp_zerlegen['datum'];
$zeit    $timestamp_zerlegen['zeit']; 
V.G.
Frank
frank-ae ist offline  
Alt 02.12.2008, 18:24  
Neuer Benutzer
 
Registriert seit: 08.02.2008
Beiträge: 6
Marko_Schulze befindet sich auf einem aufstrebenden Ast
Standard

Ok, danke an euch 2. Hab das Problem mit eurer Hilfe beheben koennen. Der Fehler lag in der Tat beim Array im Array. Bin halt davon ausgegangen, dass return array(...); ne allgemeine Schreibweise zum Zurueckgeben eines Arrays ist und nicht, dass man damit nochmal ein neues Array erzeugt, bevor das return erfolgt. Jetzt funktioniert alles so, wie ich es mir vorgestellt habe. Bin zwar noch immer nich sicher, ob es da nich bessere Moeglichkeiten gibt, aber immerhin hab ich schonmal ein Erfolgserlebnis.

Andere Frage noch am Rand, bevor ich die in nem anderen Thread stelle: Wenn man per Formular eine Suchanfrage realisieren moechte, die einen gewissen zeitlichen Rahmen abdecken soll (sprich nur Eintraege zurueckliefern, die in dem ausgewaehlten Zeitraum liegen), ist dann eine Verwendung von Timestamps sinnvoll oder gibts da Alternativen? Timestamps muss man halt in ne Form bringen, damit man die mit nem Datum bzw andersrum vergleichen kann.
Marko_Schulze ist offline  
Alt 02.12.2008, 18:33  
Benutzer
 
Registriert seit: 24.09.2008
Beiträge: 52
frank-ae befindet sich auf einem aufstrebenden Ast
frank-ae eine Nachricht über Yahoo! schicken frank-ae eine Nachricht über Skype™ schicken
Standard

Also mit time() kann man eine ganze Menge "Unfug" machen, Ich persönlich arbeite nur damit, denn in der Ausgabe hat man Formatierungstechnisch alle Möglichkeiten offen und man kann ggf auch besser rechnen wenn man es muss

Und wenn Du eine Abfrage machen möchtest die einen zeitlichen Rahmen abdecken soll, kommst du um das Rechnen nicht herrum.

V.G.
Frank
frank-ae ist offline  
Alt 02.12.2008, 18:35  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
ist dann eine Verwendung von Timestamps sinnvoll oder gibts da Alternativen? Timestamps muss man halt in ne Form bringen, damit man die mit nem Datum bzw andersrum vergleichen kann.
In der DB auf jeden Fall, im Form natürluich nicht. Schnittstelle kann bspw. PHP mit strtotime sein.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 02.12.2008, 18:51  
Benutzer
 
Registriert seit: 24.09.2008
Beiträge: 52
frank-ae befindet sich auf einem aufstrebenden Ast
frank-ae eine Nachricht über Yahoo! schicken frank-ae eine Nachricht über Skype™ schicken
Standard

@nikosch: kann sein das es jetzt abschweift, aber "strtotime()" vom String 2.12.2009 , liefert mir doch den timpstamp vom 2.12.2009 0:00 Uhr oder?

Wenn man eine Berechnung machen möchte wäre diese ja denn dann nur auf den Tag genau ?
Die Frage ist nur zu meinem Verständnis.
frank-ae ist offline  
Alt 02.12.2008, 18:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Kommt auf die Eingabe drauf an. Zeit ist ebenfalls möglich.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
While Schleife innerhalb einer Funktion aufrufen goldsaft PHP Tipps 2008 12 24.11.2008 20:04
Referenzen für Array in Funktion b4r4cuda PHP Tipps 2008 3 19.11.2008 19:23
[Erledigt] array / funktion prob noskule PHP Tipps 2008 3 02.10.2008 23:48
Array an Funktion übergeben Reen_Sc PHP Tipps 2008 1 05.09.2008 12:20
array aus Funktion zurückgeben corsamine PHP Tipps 2008 3 14.08.2008 10:05
funktion innerhalb einer Klasse mit call_user_func aufrufen phpbeginner PHP Tipps 2008 8 22.05.2008 16:20
frage: welche array funktion?? mrrosette PHP Tipps 2008 24 19.05.2008 16:22
Funktion & return array() Schneckenkind PHP Tipps 2006 5 06.06.2006 10:09
ARRAY: alle möglichen Kombinationen Tentacle PHP Tipps 2006 13 12.05.2006 00:18
[Erledigt] Zugriff auf eine Klasse innerhalb einer Funktion -> Fehle PHP-Fortgeschrittene 23 05.02.2006 13:02
Innerhalb Echo eine Funktion ausführen test022 PHP Tipps 2006 9 02.02.2006 12:58
Merkwürdiges Verhalten von Objekten in einem Array PHP-Fortgeschrittene 6 20.10.2005 00:18
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array von Funktion zurückgeben PHP Tipps 2005-2 5 06.07.2005 12:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zitat \da waren wieder meine 3 probleme\, php innerhalb einer funktion arrays vergleichen, array funktionen bauen, php timestamp array, array übergeben funktionsaufruf php, php funktionen array, funktion array, funktionen arrays

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum