SQL + Zeichenmanipulation ???

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

SQL + Zeichenmanipulation ???

Beitrag von Condor »

Hallo,

ich habe eine temporäre DB die z.B. so aussieht:

Code: Alles auswählen

|   id    |    waren_id     |
-----------------------------
|    1    |     1234p       |
|    2    |     4343p       |
|    3    |     3454s       |
Alle Werte in der Spalte "waren_id" möchte ich nun in eine andere Tabelle abspeichern und zwar so, das es folgendermaßen aussieht:

Code: Alles auswählen

|   id   |           waren   |
-----------------------------
|   1    | 1234p,4343p,3454s |
Ich habe die Werte aus der ersten DB erstmal mit einer while-Schleife aus der DB geholt. Nun weiss ich aber nicht wirklich wie ich diese dann wie oben zusammenbauen soll.

Danach muss ich nämlich mit

Code: Alles auswählen

$letzte=substr($zeichen, -1, 1);
nachschauen welcher Buchstabe als letztes Zeichen ausgegeben wurde, damit ich dann mit den IF-Bedingungen arbeiten kann.

wie kann ich das realisieren ? Kann mir da jemand helfen ?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Initialisiere zu Beginn eine leere Variable

Code: Alles auswählen

$var = '';
und füge dann den Text für jedes Element auf diese Weise hinzu:

Code: Alles auswählen

$var .= (($var == '') ? '' : ',') . 'Neuer Text';
Alternativ ein Array erstellen und dass am Schluss zusammenfügen.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag von Condor »

Hi,

danke erstmal für deine Antwort.
So ganz hab ich deinen obigen Code nicht verstanden. Ich hab hier mal ein Schnipsel von mir:

Code: Alles auswählen

$sql = "SELECT * FROM $table";
$result = mysql_query($sql, $conn);
if($result)
  {
    while($row = mysql_fetch_array($result))
    {
$waren=$row[waren_id];
$waren .= (($waren == '') ? '' : ',');
}
}
Wenn das durchläuft, schreibt er nur "1234p," in das Feld.
Wenn ichs mir aber innerhalb der Schleife nochmals per echo ausgeben lasse, zeig er "1234p,4343p,3454s," an.
Was genau mache ich da falsch ?
Hängt es damit zusammen, das ich hier "$waren =''" nicht einsetze ?

Würde das nicht auch gehen:

Code: Alles auswählen

$sql = "SELECT * FROM $table";
$result = mysql_query($sql, $conn);
if($result)
  {
    while($row = mysql_fetch_array($result))
    {
$waren=$row[waren_id].",";
}
}
??
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Du solltest schon

Code: Alles auswählen

$waren .= (($waren == '') ? '' : ',') . $row[waren_id];
verwenden.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag von Condor »

Herzlichen Dank an euch ;-)
Antworten

Zurück zu „Coding & Technik“