verflixte variablen
berti
- php
Abend, Leute!
Mich nervt schon seit langem so 'n scheiss Fehler in meinen Variablen.
Ich hab folgenden Code:
(in einer vorhergehenden schleife:
$allspalten = "$allspalten;$spalten";
(zu diesem Zeitpunkt sieht $allspalten so aus: "; wert1; wert2")
$name = trim($allspalten);
$allspaltenend=explode(";",$name);
for($x=0;$x<count($allspaltenend);$x++){
$test = $allspaltenend[$x];
print"<span class='title2'>» $title</span><br>";
}
nun entstht folgende ausgabe:
»
» grp1
» grp3
wie bekommt ich nun den leeren eintrag am anfang weg???
danke,
euer berti
Hello,
nun entstht folgende ausgabe:
»
» grp1
» grp3wie bekommt ich nun den leeren eintrag am anfang weg???
Na, woran hast Du denn bemerkt, dass er dich stört?
Liebe Grüße aus http://www.braunschweig.de
Tom
hehe, ooops, sorry!
am - für dieses forum - extrem schlecht gewählten aufzählungszeichen
"»"..
;))
lg,
berti
Hello,
am - für dieses forum - extrem schlecht gewählten aufzählungszeichen
"»"..;))
Also hat dich das Quote-Zeichen gestört, nicht das, was im (leeren) Element drinstand? Formulier das doch nochmal bitte: Welche Elemente dürfen denn angezeigt werden, und welche nicht?
Liebe Grüße aus http://www.braunschweig.de
Tom
also, ich nehm mal andere aufzaehlungszeichen:
die ausgabe ist im moment so:
solte aber so sein:
infotextblabla
isses so besser?
lg,
berti
Hello,
die ausgabe ist im moment so:
infotextblabla
- wert1
- wert2
solte aber so sein:
infotextblabla
- wert1
- wert2
isses so besser?
Nochmal mit Buntstiften und ganz langsam:
Du sollst mir mal verbal erzählen, wann Du eine Variable angezeigt haben möchtest und wann nicht, und bitte in einem ganzen Satz!
Liebe Grüße aus http://www.braunschweig.de
Tom
hi du!
ich versuchs mal:
ich hab mallfolgende schleifenkonstruktion gemacht:
$name = trim($allspalten);
$allspaltenend=explode(";",$name);
for($x=0;$x<count($allspaltenend);$x++){
$test = $allspaltenend[$x];
$title = str_replace("grp_", "", $test);
print"<span class='title2'>- $title</span><br>";
}
hierzu ist aber interessant, dass die variable $allspalten zu diesem zeitpunkt den inhalt ";grp_grp2;grp_grp3" hat.
-wer2
-wert3
in einer auflistung sieht das natürlich doof aus, wenn der erste eintrag einfach leer ist.
deshalb möchte ich das irgendwie so machen, dass der erste wert in $allspalten, der quasi leer ist, und die leere aufzählung "- " durch die schleife erzeugt, entfernt wird...
verstehst du was ich meine?
Hello,
-wer2
-wert3in einer auflistung sieht das natürlich doof aus, wenn der erste eintrag einfach leer ist.
deshalb möchte ich das irgendwie so machen, dass der erste wert in $allspalten, der quasi leer ist, und die leere aufzählung "- " durch die schleife erzeugt, entfernt wird...verstehst du was ich meine?
Verstanden habe ICH das schon die ganze Zeit. Aber DU solltest das mal im Klartext formulieren. Siehr ja schon ganz gut aus. Ich fasse nochmal zusammen:
Die Schleife soll alle Werte des Arrays behandeln
Wenn aber ein Wert leer ist, soll er nicht ausgegeben werden
sonst darf er ausgegeben werden
Ende der Schleife
oder anders herum:
Die Schleife soll alle Werte des Arrays behandeln
Wenn ein Wert gefüllt ist, soll er ausgegeben werden
sonst darf er nicht ausgegeben werden
Ende der Schleife
Soetwas nennt man Pseudocode.
Daraus kannst Du nun in NullkommaNix einen Programmcode erzeugen.
Noch ein Tipp:
benutze nicht diese Zählerkontruktionen bei PHP-Arrays. Das kann in die Hose gehen. Benutze dafür die Spezialschleife foreach() http://de3.php.net/manual/de/control-structures.foreach.php
Das ist erstens schneller und kennt Anfang und Ende der Elementekette des "Arrays" alleine, vergisst auch kein Element.
foreach($allspaltenend as $element)
{
# hier die Entscheidung einfügen für $element
#
#
}
Liebe Grüße aus http://www.braunschweig.de
Tom
hi !
wow! danke für diese super einschulung!
ich habe heute erst gelernt, wieviel zeit ich mir spare, wenn ich im vorfeld ganz genau definiere, was genau der nun zu bearbeitende code können muss...
da passt deine kleine einführung hier genau in meinen lernprozess!!
vielen, vielen dank,
berti
Hello,
vielen, vielen dank,
berti
Muss ich meinen <I>-Detector einschalten oder hat es wirklich geholfen?
Liebe Grüße aus http://www.braunschweig.de
Tom
nein, ich mein das wirklich ernst, das hats voll gebracht!
ich bin nur ehrlich gewesen...
Hello,
nein, ich mein das wirklich ernst, das hats voll gebracht!
ich bin nur ehrlich gewesen...
Dann wünsche ich Dir weiterhin viel Erfolg und Gute Nacht. Du wolltest Doch ins Bett gehen, oder?
Liebe Grüße aus http://www.braunschweig.de
Tom
in einer auflistung sieht das natürlich doof aus, wenn der erste eintrag einfach leer ist.
deshalb möchte ich das irgendwie so machen, dass der erste wert in $allspalten, der quasi leer ist, und die leere aufzählung "- " durch die schleife erzeugt, entfernt wird...
Wenn der erste immer leer ist (warum eigentlich?!), hilft ein einfaches ändern der Schleife in:
for($x=1;$x<count($allspaltenend);$x++) // $x=1
... oder schau, ob in $allspaltenend[$x] überhaupt etwas drinne ist:
for( $x=0; $x<count ($allspaltenend); $x++ ){
if ( emtpy ( $allspaltenend[$x] ) )
continue;
$test = $allspaltenend[$x];
$title = str_replace("grp_", "", $test);
print"<span class='title2'>- $title</span><br>";
}
hi !
genial!!!! $x=1 is die lösung, ich glaub ich sollte für heute besser schluss machen... ;)
danke für die hilfe,
berti
Hello hitch,
ich habe da eine Bitte an Dich:
Wenn du das nächste Mal siehst, dass ich hier mit einem Poster einen mehrfachen Dialog in der Art dieses Threads angefangen habe, und Fragen stelle, dann warte bitte solange, bis ein Ergebnis vorhanden ist.
Es war sicher lieb gemeint, dass Du die Lösung sooo kurz vorm Schluss einfach mal "ins Quiz" hineingerufen hast, aber Du hast Berti dadurch die Möglichkeit genommen, selber die Punkte für die Erkenntnis zu bekommen. Das ist schade. Man lernt nämlich am meisten von seinen eigenen Erfolgs- oder Misserfolgserlebnissen.
Und dieses Frage-und-Antwort-Spiel kann man auch ganz alleine mit sich selbst spielen. Das hilft auch manchmal, einen Fehler oder eine Lösung zu finden.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello hitch,
ich habe da eine Bitte an Dich:
Wenn du das nächste Mal siehst, dass ich hier mit einem Poster einen mehrfachen Dialog in der Art dieses Threads angefangen habe, und Fragen stelle, dann warte bitte solange, bis ein Ergebnis vorhanden ist.
Es war sicher lieb gemeint, dass Du die Lösung sooo kurz vorm Schluss einfach mal "ins Quiz" hineingerufen hast, aber Du hast Berti dadurch die Möglichkeit genommen, selber die Punkte für die Erkenntnis zu bekommen. Das ist schade. Man lernt nämlich am meisten von seinen eigenen Erfolgs- oder Misserfolgserlebnissen.
Und dieses Frage-und-Antwort-Spiel kann man auch ganz alleine mit sich selbst spielen. Das hilft auch manchmal, einen Fehler oder eine Lösung zu finden.
Es tut mir ja leid, daß ich in deine erzieherischen Bemühungen eingegriffen habe, aber imho ist das Forum ein nicht ganz passender Ort dafür, den Menschen das beizubringen, was sie anscheinend in der Schule mühevoll nicht gelernt haben ( Informationverwertung und eigenständiges Denken ).
Ein kurzes Frage-Antwort-Spiel mit überheblichem Unterton ist zwar hier und da interessant und kann dem eigenen Ego ein wenig schmeicheln, genauso kann es aber auch ermüden (und damit ist nicht nur der Server-Trafic gemeint ;)). Ich war mir auch deiner Reputation hier im Forum nicht bewußt (es sah offensichtlich so aus, daß du Schwierigkeiten hast das hier besprochene Problem zu verstehen). Noch weniger war mir bekannt, daß es in diesem -anscheinend- pseudo-öffentlichen Forum nicht erwünscht ist, Beiträge in bereits laufende Diskussionen einzubringen.
Aber ich lerne ja noch ;)
Hello hitch,
Es tut mir ja leid,
das ist gut.
daß ich in deine erzieherischen Bemühungen eingegriffen habe,
Mit Erziehung hatte das nichts zu tun, sondern mit Problemlösung
aber imho ist das Forum ein nicht ganz passender Ort dafür, den Menschen das beizubringen, was sie anscheinend in der Schule mühevoll nicht gelernt haben ( Informationverwertung und eigenständiges Denken ).
Doch, dafür ist es sogar gedacht. Es ist nämlich ein SELF-forum und kein "sag mir die Lösung"-Forum. Dass es manchmal besser sein kann, kleinere oder größere Lösungen direkt zu geben, sei dahingestellt. In der Regel wird hier aber mehr Wert auf Hinweise zum LösungsWEG, und wie man den findet, gelegt.
Ein kurzes Frage-Antwort-Spiel mit überheblichem Unterton ist zwar hier und da interessant und kann dem eigenen Ego ein wenig schmeicheln,
Meinst Du mich jetzt damit?
genauso kann es aber auch ermüden (und damit ist nicht nur der Server-Trafic gemeint ;)).
Die paar Sätze killen den Server nicht.
Ich war mir auch deiner Reputation hier im Forum nicht bewußt (es sah offensichtlich so aus, daß du Schwierigkeiten hast das hier besprochene Problem zu verstehen).
Wenn Du den Thread von vorne bis hinten aufmerksam verfolgt hättest, hättest Du bemerken können, dass berti und ich uns in unserem Verständnis Stück für Stück genähert haben, und ich die Fragen gestellt habe, auf die er bereitwillig geantwortet hat. So unsensibel kannst Du eigentlich nicht sein. ;-)
Noch weniger war mir bekannt, daß es in diesem -anscheinend- pseudo-öffentlichen Forum nicht erwünscht ist, Beiträge in bereits laufende Diskussionen einzubringen.
Es ist meine Bitte an Dich, nicht mit der Lösung hreinzuplatzen, kurz bevor der OP sie selber formuliert. Im Anschluss (das hätte ja eben nur noch 1 Minute gedauert) hättest Du uns Deine gesamten PHP-Kenntnisse in strukturierter Form darbieten können.
Aber ich lerne ja noch ;)
Das will ich hoffen.
Ich habe hier auch durch solche Frage-und-Antwort-Threads gelernt, vielleicht auf einer etwas höheren Ebene, aber auch durch geduldiges Pingpong mit einem, der wußte, wie es geht.
Das heißt immer noch nicht, dass es nicht doch manchmal sinnvoller ist, einem Fortgeschrittenen eine Musterlösung zu geben. Der schaut sich das dann aber auch kritisch an und gibt ggf. sogar noch Verbesserungsvorschläge zurück.
Liebe Grüße aus http://www.braunschweig.de
Tom
daß ich in deine erzieherischen Bemühungen eingegriffen habe,
Mit Erziehung hatte das nichts zu tun, sondern mit Problemlösung
Das war aber Problemlösung mit pädagogisch erprobten System. :)
aber imho ist das Forum ein nicht ganz passender Ort dafür, den Menschen das beizubringen, was sie anscheinend in der Schule mühevoll nicht gelernt haben ( Informationverwertung und eigenständiges Denken ).
Doch, dafür ist es sogar gedacht.
Achso.
Es ist nämlich ein SELF-forum und kein "sag mir die Lösung"-Forum. Dass es manchmal besser sein kann, kleinere oder größere Lösungen direkt zu geben, sei dahingestellt. In der Regel wird hier aber mehr Wert auf Hinweise zum LösungsWEG, und wie man den findet, gelegt.
Das ist ja schön und gut. Mir kam mir bis zu meinem Beitrag eher wie ein "wir reden um den heißen Brei rum"-Forum vor. War allerdings wohl mein Fehler.
Ein kurzes Frage-Antwort-Spiel mit überheblichem Unterton ist zwar hier und da interessant und kann dem eigenen Ego ein wenig schmeicheln,
Meinst Du mich jetzt damit?
Meinte ich allgemein.
genauso kann es aber auch ermüden (und damit ist nicht nur der Server-Trafic gemeint ;)).
Die paar Sätze killen den Server nicht.
Es ist ja auch immer die Menge die zählt.
Wenn Du den Thread von vorne bis hinten aufmerksam verfolgt hättest, hättest Du bemerken können, dass berti und ich uns in unserem Verständnis Stück für Stück genähert haben, und ich die Fragen gestellt habe, auf die er bereitwillig geantwortet hat.
Richtig. Schrieb ich doch schon.
So unsensibel kannst Du eigentlich nicht sein. ;-)
Ne. Ich habe z.B. bei Winntou 3 geweint. :-)
Noch weniger war mir bekannt, daß es in diesem -anscheinend- pseudo-öffentlichen Forum nicht erwünscht ist, Beiträge in bereits laufende Diskussionen einzubringen.
Es ist meine Bitte an Dich, nicht mit der Lösung hreinzuplatzen, kurz bevor der OP sie selber formuliert. Im Anschluss (das hätte ja eben nur noch 1 Minute gedauert) hättest Du uns Deine gesamten PHP-Kenntnisse in strukturierter Form darbieten können.
Das würde ja dann gar nicht sooo lange dauern. :(
Ich habe hier auch durch solche Frage-und-Antwort-Threads gelernt, vielleicht auf einer etwas höheren Ebene, aber auch durch geduldiges Pingpong mit einem, der wußte, wie es geht.
Das heißt immer noch nicht, dass es nicht doch manchmal sinnvoller ist, einem Fortgeschrittenen eine Musterlösung zu geben. Der schaut sich das dann aber auch kritisch an und gibt ggf. sogar noch Verbesserungsvorschläge zurück.
Die Vorgehensweise ist ja schön und gut. Werde mich dann demnächst zurückhalten und erst den didaktisch sinnvolleren Weg abwarten.
Gruß
Hello,
Ein kurzes Frage-Antwort-Spiel mit überheblichem Unterton ist zwar hier und da interessant und kann dem eigenen Ego ein wenig schmeicheln,
Meinst Du mich jetzt damit?
Meinte ich allgemein.
Feigling!
Es ist meine Bitte an Dich, nicht mit der Lösung hreinzuplatzen, kurz bevor der OP sie selber formuliert. Im Anschluss (das hätte ja eben nur noch 1 Minute gedauert) hättest Du uns Deine gesamten PHP-Kenntnisse in strukturierter Form darbieten können.
Das würde ja dann gar nicht sooo lange dauern. :(
Die Vorgehensweise ist ja schön und gut. Werde mich dann demnächst zurückhalten und erst den didaktisch sinnvolleren Weg abwarten.
Ich habe nicht gesagt, dass Du dich raushalten sollst. Dafür ist es ein Forum und kein Chat. Ich habe Dich nur gebeten, nicht wieder mit der Lösung reinzuplatzen, wenn der OriginalPoster sie gereade selber entdeckt.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo!
Ein kurzes Frage-Antwort-Spiel mit überheblichem Unterton ist zwar hier und da interessant und kann dem eigenen Ego ein wenig schmeicheln,
Meinst Du mich jetzt damit?
Meinte ich allgemein.Feigling!
rofl - Psychologie nach Mitternacht!
Beste Grüße
Viennamade
Es macht Spaß, Eurer völlig sinnolosen Diskussion zu folgen...
Aber kümmert Euch doch besser um den offensichlich mangelnden Schlaf - Ihr Beide. Streithähne :-)
Schlaft gut :-)
grüße aus dem Norden
Till
Hello,
Es macht Spaß, Eurer völlig sinnolosen Diskussion zu folgen...
Aber kümmert Euch doch besser um den offensichlich mangelnden Schlaf - Ihr Beide. Streithähne :-)
Hä?
Liebe Grüße aus http://www.braunschweig.de
Tom
Meinst Du mich jetzt damit?
Meinte ich allgemein.Feigling!
... und dich im besonderen.
War ja auch kaum zu überlesen. So unsensibel kannst Du eigentlich nicht sein.
wie bekommt ich nun den leeren eintrag am anfang weg???
Bau dir doch schon beim Einlesen(?) bzw. beim Zusammenstellen einen (1.) Array mit (2.) korrekten Werten auf.
In der von dir angesprochenen Schleife also z.B. ein
if ( $spalte )
push ( $spalte, $allspalten );
... und dann später mit
foreach ( $allspalten as $spalte )
print "<span class="title2">» ". $spalte ."</span><br>\n";
Es ist immer gut für die Performance und Übersicht, unnötiges hin und her konvertieren der Daten zu verhindern.