Seite 1 von 1

SQL + Zeichenmanipulation ???

Verfasst: 14.12.2005 16:24
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 ?

Verfasst: 14.12.2005 17:03
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

Verfasst: 14.12.2005 17:20
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].",";
}
}
??

Verfasst: 14.12.2005 23:56
von PhilippK
Du solltest schon

Code: Alles auswählen

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

Gruß, Philipp

Verfasst: 15.12.2005 11:42
von Condor
Herzlichen Dank an euch ;-)