SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 28.04.2009, 16:20:09
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
string aus mehreren Abfragen

Hallo,

ich hänge mal wieder. Diesmal ist es nicht ganz so kompliziert, aber ich habe anscheined wieder ein brett vorm Kopf.

Also:
Ich bekomme aus einem Formular mit 5 checkboxen. Jeweils das aktuelle Jahr-5. Also 2005-2009
Die Werte packe ich in ein Array, welches ich mittels for-schleife durchlaufe. Vorher bereinigt, da checkboxen zwar anscheinend die Variablen übergeben, diese aber leer sind
Soweit klar. Nun möchte in der for-schleife eine Datenbankabfrage machen.
PHP-Code:
// Im array jahresarray stehen zB 2009 und 2208
...
//Für 2009

for($l=0;$l<$anzahlelementeohneleer;$l++)
{
$query_recordset1 "SELECT  (((sum(verdienst) as kohle,Date_Format(ma.datum,'%b') as monat FROM mitarbeiter where Date_Format(ma.datum,'%Y') = ".$jahresarray[$l]." and touren.gueltig='Y' GROUP BY Date_Format(touren.datum,'%b') ORDER BY ".$Sortparam ." ".$Sortorder;
}
$msquery=mysql_query(...);
... 
Soweit ists auch noch klar. Mit implode packe ich das Ganze in einen string:

PHP-Code:
=> $kohle 1800,2000,2000,2100,2100,2100,2050,2000,2100,2200,2400,2300 
Nun kommt der Wert für 2008:
PHP-Code:
$query_recordset1 "SELECT  (((sum(verdienst) as kohle,Date_Format(ma.datum,'%b') as monat FROM mitarbeiter where Date_Format(ma.datum,'%Y') = ".$jahresarray[$l]." and touren.gueltig='Y' GROUP BY Date_Format(touren.datum,'%b') ORDER BY ".$Sortparam ." ".$Sortorder
Ich bekomme es nicht hin, aus den beiden Abfragen inen string zu bsteln, welcher mit einem "|" verbunden ist,

Aussehen sollte das Ganze in etwa:
=> $kohle = "1800,2000,2000,2100,2100,2100,2050,2000,2100,2200,2400,2300|1200,1300 ,1300,1350,1400,1500,1600,1600,1500,1600,1500,1400",[/php]

Ein weiteres Problem ist bei der Geschichte, dass ich nicht immer komplette Jahre habe. 2009 hat zB nur 4 Werte. Ich brauche das ganze für google chart um mehrere datensätze darzustellen.Das habe ich eigendlich gelöst, indem ich abfrage
PHP-Code:
for($z=$anzahlimarray;$z<12;$z++)
{
$ausgabe_array[] =0;
... 
Für 2009 hätte ich dann zB 2000,2100,2050,2130,0,0,0,0,0,0,0,0
Für 2009 und 2008müsste ich dann haben:

2000,2100,2050,2130,0,0,0,0,0,0,0,0|2200,2300,2200,...

Wie gesagt, irgendwie sehe ich den Wald vor lauter Bäumen nicht oder bin völlig auf dem Holzweg. Any hint? Please help!
Danke im vorraus für eure Mühe!

tsunamitsunami
Mit Zitat antworten
  #2  
Alt 28.04.2009, 21:17:54
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: string aus mehreren Abfragen

mal etwas administratives: ich habe keine lust, deine beiträge ständig aus dem fortgeschrittenen-forum zu veschieben. deine selbsteinschätzung:

Zitat:
Zitat von tsunamitsunami Beitrag anzeigen
Diesmal ist es nicht ganz so kompliziert, aber ich habe anscheined wieder ein brett vorm Kopf.
solltest du entsprechend reflektieren.

zu deinem problem kann ich nichts beitragen - ist mir zu wirr - sorry.

eine anmerkung hab ich noch: man packt keine db-abfragen in eine schleife. schon gar nicht, wenn man das schleifen-limit nicht kennt. dass sich hier performance-probleme auftun, wäre einem fortgeschrittenen klar .-

cx
Mit Zitat antworten
  #3  
Alt 28.04.2009, 21:27:53
JakobD JakobD ist offline
Anfänger
 
Registriert seit: Apr 2009
Alter: 30
Beiträge: 15
AW: string aus mehreren Abfragen

also lieber alle datenbanken die man brauchen könnte vorher komplett auslesen und dann in der schleife drauf zugreifen?
Mit Zitat antworten
  #4  
Alt 28.04.2009, 21:45:41
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: string aus mehreren Abfragen

genau. dabei sollte man natürlich nur die datensätze auslesen, die relevant sind - also nicht die komplette datenbank .-

cx

Geändert von cortex (28.04.2009 um 21:46:49 Uhr)
Mit Zitat antworten
  #5  
Alt 28.04.2009, 21:53:28
JakobD JakobD ist offline
Anfänger
 
Registriert seit: Apr 2009
Alter: 30
Beiträge: 15
AW: string aus mehreren Abfragen

Schön. Nun läuft mein ganzes Projekt zwar immer noch zu langsam, aber schon entschieden schneller.
Mit Zitat antworten
  #6  
Alt 28.04.2009, 22:30:23
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: string aus mehreren Abfragen

Zitat:
Zitat von JakobD Beitrag anzeigen
Schön. Nun läuft mein ganzes Projekt zwar immer noch zu langsam, aber schon entschieden schneller.
Sinnfrei! Passt irgendwie nicht zum Topic!
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7  
Alt 29.04.2009, 10:04:45
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
AW: string aus mehreren Abfragen

@cortex.

Sorry, da habe ich Grundlagen wohl falsch definiert.
Zitat:
ich habe keine lust, deine beiträge ständig aus dem fortgeschrittenen-forum zu veschieben
Als Grundlagenfragen habe ich persönlich einfach select-Abfragen, for und while Schleifen strings, arrays usw. definiert.

Zu wirr? OK, dann versuche ich es nochmal zu beschreiben.

Zitat:
wenn man das schleifen-limit nicht kennt.
Steht im 2. Satz. Also maximal 5.

Perfomanceprobleme? Also ist es performanter, wenn ich von vornherein 50 Abfragen mache, als zu schauen, wie viele ich wirlich brauche und dann ggfs. nur 20 zu machen?
Das wustte ich nicht nochmal sorry.

Und nun nochmal zu meinem Problemchen:
Ich habe 1-5 Werte, also mindestens 1, max. 5. Diese Werte entsprechen einer Jahreszahl zwischen 2005 und 2009. In diesem Jahr. Es gilt:
Immer das aktuelle jahr und 4 Jahre zurück. Das heisst für
2010: Die Jahre 2006-2010
2011: Die Jahre 2007-2011

Diese Werte kann ich in einem Formular auswählen. Dort habe ich lediglich 5 checkboxen. Jeweils 1 Box pro Jahr.

=> Zeige mir alle Werte an vom Jahr z.B. 2005, 2006 und 2009. Das heisst 3 Boxen sind angeklickt und übermittelt worden. 2 sind frei (2007 und 2008).

Nun brauche ich die Datenbankabfrage für 2005, 2006 und 2009. Da das Ganze dynamische über die letzten 4 Jahre geht kann ich es nicht fest programmieren.

Eigentlich hatte ich nun vorgehabt die Werte 2005,2006 und 2009 in ein Array zu packen und zu durchlaufen:

PHP-Code:
for($x=0;$x<count($jahreszahlarray);$x++)
{
$sql ="
select gehaltszahlungen from gehaelter where where Date_Format(touren.datum,'%Y') = "
.$jahreszahlarray[$x];
...

Soeben habe ich aber gelernt, dass man sowas aus Performancegründen nicht macht.
Nur, wie dann?

Herauskommen soll nachher ein langer string. Die Gehaltszahlen für 2009 (erste Abfrage)|DieGehaltszahlen für 2006 (2. Abfrage)|Die Gehaltszahlen für 2005 (3.Abfrage)
=> $gehaltstring = "2000,2000,2100,2020|2000,2000,2110,2030,2110,2160,3010,2110,2030,2110 ,2160,3010|
1900,1900,2000,1920,1800,1760,2400,2000,1200,1400,2150,3000";

Also aus der ersten Abfrage (für 2009) soll herauskommen: $geahelter2009 = "2000,2000,2100,2020";

Aus der 2. Abfrage (für 2006):
$geahelter2006 = "2000,2000,2110,2030,2110,2160,3010,2110,2030,2110,2160,3010";

und für 2005:
$gehaelter2005 = "1900,1900,2000,1920,1800,1760,2400,2000,1200,1400,2150,3000";

Implode kenne ich und so wollte ich es lösen. Mit select und while das Ganze ins array, mit implode jeweils zum Teilstring des entsprechenden Jahres verbinden.

Und zum Schluss via stringoperation die 3 strings zu einem langen verbinden.

Ich hoffe ich habe mich nun klarer ausgedrückt?

Gruß
tsunamitsunami
Mit Zitat antworten
  #8  
Alt 29.04.2009, 18:40:32
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: string aus mehreren Abfragen

Poste doch bitte mal 3-5 Datensätze aus Deiner Datei.

Im übrigen hast Du ein where zuviel in Deinem SQL-Statment. Warum arbeitest Du nich mit IN(2006, 2007,...)?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #9  
Alt 30.04.2009, 14:00:42
tsunamitsunami tsunamitsunami ist offline
Junior Member
 
Registriert seit: Dec 2005
Alter: 51
Beiträge: 236
AW: string aus mehreren Abfragen

Liebes Forum,

ich habe es nun ganz anders gelöst. Wen es interessiert:
Erst das aktuelle Jahr - 4 vorangegangene abgefragt.

Dann das Formular mit
PHP-Code:
if ($checkbox0!="")
{
mysql_select_db($database_xxx$xxx);
$jahranzeige $MVParam_tourdaten -$r;
$query_tourdaten0 "SELECT  (((sum(... = ".$checkbox0." and touren.gueltig='y' GROUP BY Date_Format(touren.datum,'%b') ORDER BY ".$Sortparam ." ".$Sortorder;
$msquery0 mysql_query($query_tourdaten0);
while(
$ausgabe0 mysql_fetch_assoc($msquery0))
$array0[]=round($ausgabe0['fahrdurchschnitt'],0);
$ausgabestring0 implode(",",$array0);
}
$reste0 12-count($array0);
for(
$x=0;$x<$reste0;$x++)
{
$nullen0 $nullen0.",0";
}
$ausgabestring0 $ausgabestring0.$nullen0
$endstring $ausgabestring0
Das ganze 4x, fest programmiert. So bekomme ich 4 strings entweder mit den entsprechenden Werten (falls checkbox gesetzt) oder einen string mit 12 Nullen.
Am Ende kommen also in jedem Fall 48 Werte zusammen. Auch für den Fall, das einer mal ein Jahr pausiert hat oder nur 1/2 Jahr Daten hat. dann wird halt aufgefüllt.

Danke vielmals!

tsunamitsunami

Geändert von tsunamitsunami (30.04.2009 um 14:01:23 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
string wird per Post anders ausgegeben zhamoran PHP Grundlagen 2 07.09.2008 19:38:24
Html öffnen und String hineinschreiben Rocco PHP Grundlagen 6 20.06.2008 22:52:28
Abfragen von mehreren Tabellen crowl MySQLi/PDO/(MySQL) 4 23.11.2005 15:51:19
HTML und PHP in String korrekt ausgeben/verarbeiten LukeDogg PHP für Fortgeschrittene und Experten 5 22.03.2003 13:11:47
String in Array umwandeln.... DeMaephis PHP für Fortgeschrittene und Experten 7 19.05.2002 19:34:28


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:27:34 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt