Archiv verlassen und diese Seite im Standarddesign anzeigen : Letztes Komma in String löschen
Hallo Board,
es gibt einen String
$foo = " wer,werasd,dsfgsd,werwer,dfgdg,";
Wie bekommt man das letzte Komma weg ?
Ja aber substr() gibt mir das Zeichen nur wieder. Was habe ich davon?
MoRtAlAn 15-11-2004, 16:18 indem du dir den String vom anfang bis zum ende -1 Zeichen zurückgeben läßt ?!
gruss
wenn das Komma immer an der letzten Stelle steht, dann it's easy, überlege mal ;)
Also mit substr() hatte es nicht geklappt.
MoRtAlAn 15-11-2004, 16:26 Original geschrieben von MoRtAlAn
indem du dir den String vom anfang bis zum ende -1 Zeichen zurückgeben läßt ?!
gruss
ich zitiere mich jetzt mal!
und mit substring geht es nicht.
doch in kombination mit strlen()
gruss
peter
Original geschrieben von antman
Was soll das? Natürlich habe ich überlegt.
Ich habe mir alle String Funktionen auf php.net angeschaut und mit substring geht es nicht.
also mal wieder die gewohnte gründlichkeit, die man unter dem markennamen "antman" gewohnt ist.
@antman, es kann doch nicht sein, dass du deinen Thread radikal änderst, dass die Threads von Morti und Kroff in der Luft hängen. Bitte stellt wieder zurück. Einen Teil hat wahsaga zwar zitiert, aber wir hätten gern den Thread komplett wieder ... oder wir entziehen dir Editrecht
:o
Was hat das mit Gründlichkeit zu tun?
Vielleicht gibt es auch Leute denen nicht alles gleich alles zufliegt.
Original geschrieben von asp2php
@antman, es kann doch nicht sein, dass du deinen Thread radikal änderst, dass die Threads von Morti und Kroff in der Luft hängen. Bitte stellt wieder zurück. Einen Teil hat wahsaga zwar zitiert, aber wir hätten gern den Thread komplett wieder ... oder wir entziehen dir Editrecht
Tut mir leid. Dachte ich hätte noch Zeit gehabt.
Finde es sieht immer blöd aus wenn man zwei mal untereinander schreibt ohne dass vorher eine Antwort kam.
War keine Absicht. Wusste nicht, dass so schnell geantwortet wird.
Versuche es wieder zu ändern. Moment.
Original geschrieben von antman
Was hat das mit Gründlichkeit zu tun?
Vielleicht gibt es auch Leute denen nicht alles gleich alles zufliegt. wenn du die string-funktionen im manual schon gefunden hast, was spricht dagegen sich die auch mal KOMPLETT anzuschauen? das hat mit "zufliegen" nichts zu tun. sehr wohl aber mit "erarbeiten".
btw: implode() eignet sich für soetwas besser.
Original geschrieben von antman
Vielleicht gibt es auch Leute denen nicht alles gleich alles zufliegt.
was soll ihn denn schon zugeflogen sein, außer ein dickes Manual, welches er gründlich durchgearbeitet hat im Gegensatz zu dir.
btw: stell mal deinen Thread wieder her, oder du bist dein Editrecht los :teach:
btw: implode() eignet sich für soetwas besser.
Mit implode() geht es in diesem Fall nicht, da ich nicht nur die Werte benötige sondern auch die Keys als Array.
Original geschrieben von antman
da ich nicht nur die Werte benötige sondern auch die Keys als Array. na und? was hindert dich daran, keys & values in ein array zu schubsen?
MoRtAlAn 15-11-2004, 16:51 @antman: wasn jetzt eigentlich sache ?? willst du ein Array haben, oder nur das letzte komma weg?
Original geschrieben von MoRtAlAn
@antman: wasn jetzt eigentlich sache ?? willst du ein Array haben, oder nur das letzte komma weg? @morti
wenn er seinen codeschnipsel nicht gelöscht hätte, hattest du die foreach-schleife gesehen, mit der er seinen string zusammenwürfelt ;)
Original geschrieben von Wurzel
@morti
wenn er seinen codeschnipsel nicht gelöscht hätte, hattest du die foreach-schleife gesehen, mit der er seinen string zusammenwürfelt ;)
Ich musste doch den Thread wieder herstellen, sonst hätte mich asp ausgepeitscht.
Also ich wollte nur das Komma am Ende weg haben.
Der Stand der Dinge ist nun folgender. Versuche es gerade mit implode und einer anderen Array Funktion.
$addthese = array_diff($in, $old);
$keys = implode(', ', array_keys($addthese);
$values = ($values, 0, strlen($values)-1);
Muss natürlich so aussehen:
$addthese = array_diff($in, $old);
$keys = implode(', ', array_keys($addthese));
$values = implode($addthese);
Mist, foreach wäre doch besser gewesen. Wie soll man die nun alle zusammen in die Datenbank einfügen.
$addthese = array_diff($in, $old);
$keys = implode(', ', array_keys($addthese));
$values = implode(', ', $addthese);
$res =& $this->db->query("
INSERT INTO
warenkorb (sid, anzahl, artikelnummer)
VALUES
('".$this->sid."', '".$values."', '".$keys."')
");
}
:(
MelloPie 15-11-2004, 17:54 mit nem erweiterten insert
vielleicht malst du dir mal auf,
- was du hast
- was rauskommen soll
dann siehst du auch, wo du wie richtig "implodierst" ...
tipp: "INSERT ... (xy, yz, xz) values (val1, val2, vl3), (val1, val2, vl3), (val1, val2, vl3), (val1, val2, vl3), ..." geht auch.
Mahlzeit,
es werden einfach keine Produkte in die DB eingefügt.
Mittlerweile sieht es so aus:
## add new items }
$addthese = array_diff($in, $old);
$values = "";
foreach ($addthese as $key => $value) {
if (!empty($value)) {
$values .= "($this->sid, $value, $key), ";
}
}
$values = substr($values, 0, strlen($values)-1);
$res =& $this->db->query("
INSERT INTO
warenkorb (sid, anzahl, artikelnummer)
VALUES
$values
");
}
mrhappiness 16-11-2004, 12:11 und die abfrage hast du dir natürlich zu testzwecken mal am bildschirm ausgeben lassen und nur vergessen diese ausgane hier zu posten?
aber zum glück kannst du das ja jetzt umgehen nachholen
Habe mir das $values gerade noch mal vor dem $res ausgeben lassen:
(eff9d9385b2a8c4bd4d6898abdbf2300, 1, 10833), (eff9d9385b2a8c4bd4d6898abdbf2300, 2, 10835), (eff9d9385b2a8c4bd4d6898abdbf2300, 3, 10832),
Das letzte Komma ist immernoch da.
:(
und die abfrage hast du dir natürlich zu testzwecken mal am bildschirm ausgeben lassen und nur vergessen diese ausgane hier zu posten?
LOL, genau so ist es, wie du siehst. :)
mrhappiness 16-11-2004, 12:31 dass du selten schlaues menschenkind immer ein komma und ein leerzeichen anhängst weißt du?
wenn der string also mit einem komma und darauf folgend einem leerzeichen endet, welches zeichen steht dann ganz hinten?
welches zeichen schneidest du mit deinem prinzipell richtigen aufruf von substr also geraus?
Danke.
Ich verbeuge mich.
Klappt aber immer noch nicht. Auch mit dem entfernten Leerzeichen ist die Ausgabe gleich.
:)
Jetzt geht es. Aber eingetragen wird immer noch nichts.
Ausgabe:
INSERT INTO warenkorb (sid, anzahl, artikelnummer) VALUES (eff9d9385b2a8c4bd4d6898abdbf2300, 1, 10833),(eff9d9385b2a8c4bd4d6898abdbf2300, 2, 10835),(eff9d9385b2a8c4bd4d6898abdbf2300, 3, 10832)
Original geschrieben von antman
Klappt aber immer noch nicht. Auch mit dem entfernten Leerzeichen ist die Ausgabe gleich.
*grrr*
wenn du das nächste mal so eine wischi-waschi-aussage postest, ohne den aktuellen relevanten code zur problemstellung zu liefern, schließe ich den thread!
[ ] du willst STRINGS in " " bzw ' ' setzen!
Wurzel,
you are my Hero.
Danke.
deine sid ist vom Typ:
[ ] ich weiß nicht
[ ] string
[ ] zahl
wenn du es weißt, wäre die Lösung:
[ ] ich weiß nicht
[ ] ich verwende '
[ ] ich verwende "
[ ] ich verwende sowohl ' als auch ", denn doppel hält besser
:)sh*t, **scheisstelefonnat**
Habe die sid mal in Anführer gesetzt.
Nun sind die Werte in der DB.
Danke.
|
-
- |