Explode String aus Datenbank teilen
satarielxx
- php
hallo,
da ich noch neu in sachen PHP und mySQL und am lernen bin hir ne "Anfängerfrage"
Ich habe eine Datenbanktabelle die ist mit Daten gefüllt (Adressen und Ort)
Auslesen kann ich diese folgendermaßen nur ich möchte meinen Inhalt per explode (" ")teilen und diese vertauschen. Sozusagen ist dann der ort vor der Adresse. Ich komm da einfach nicht drauf.... DANKE
<?
include("functions.php");
include("connect.php");
$sql="SELECT Tabelle_B FROM Tabelle";
$summary=mysql_query($sql);
while($row=mysql_fetch_assoc($summary)
{
echo $row=["Tabelle_B"].<br />\n";
Hallo,
Ich habe eine Datenbanktabelle die ist mit Daten gefüllt (Adressen und Ort)
Könntest du mal das Schema der Tabelle (also die Tabellendefinition und einen Beispieldatensatz) zeigen? Dazu führst du (z.B. mit phpMyAdmin) folgenden Befehl aus:
SHOW CREATE TABLE Tabellenname
Gegebenenfalls hast du ein suboptimales Schema gewählt.
Gruß
Christoph
Hallo
Ich habe eine Datenbanktabelle die ist mit Daten gefüllt (Adressen und Ort)
Auslesen kann ich diese folgendermaßen nur ich möchte meinen Inhalt per explode (" ")teilen und diese vertauschen. Sozusagen ist dann der ort vor der Adresse.
Du speicherst Ort, PLZ und Straße/Hausnummer im selben Feld, wie deine Aussage vermuten lässt?
Dann ist der Aufbau deiner DB-Tabelle unpraktisch. Lege für jede dieser Informationen ein eigenes Feld in der DB-Tabelle an, also eines für die PLZ, eines für den Ort, eines für den Straßennamen und eines für die Hausnummer. Das nennt man Atomisierung von Daten.
Einerseits hast du damit, wenn du alle relevanten Felder ausliest, die Möglichkeit, die Ausgabe nach jedem möglichen Kriterium zu sortieren, andererseits lassen sich die Datensätze nach den einzelnen Informationen filtern (z.B. Ort, PLZ(-Bereiche)).
<?
$sql="SELECT Tabelle_B FROM Tabelle";
$summary=mysql_query($sql);while($row=mysql_fetch_assoc($summary)
{
echo $row=["Tabelle_B"].<br />\n";
Was steht typischerweise im Feld "Tabelle_B"?
Tschö, Auge
Kann nicht mal einer einfach auf ne gestellte Frage antworten?
Hallo starielxx,
wenn Ort und Adresse immer mit dem gleichen Zeichen voneinander getrennt sind (z.B. ',' wie bei 'Berlin, Kurfürstendamm 1'), dann trennts Du das mit explode:
$teiladresse=strip(explode(',',$row['Tabelle_B]));
$teiladresse[0] => 'Berlin' und $teiladresse[1] => 'Kurfürstendamm 1'
Kannst Du dann neu zusammensetzen:
$neueadresse=$teiladresse[1].', '.$teiladresse[0];
Ist es das, was Du wolltest? ;-)
Gruß vom foomaker
Hallo
Kann nicht mal einer einfach auf ne gestellte Frage antworten?
Kann man auch mal auf gravierende konzeptionelle Schwächen hinweisen? Zumal, wenn sich bei Behebung dieser Schwächen das Problem in Nichts auflöst?
Tschö, Auge
Sicher kann man das.
Aber MUSS man das?
Als Du angefangen hast, Dich mit Programmieren, PHP und was auch immer zu beschäftigen, hat es Dir was genutzt, wenn Dir, sobald Du mit einer einfachen Frage aufschlägst, jemand erstmal konzeptionelle Schwächen vorhält?
Ich denke nicht.
Die besten Erkenntnisse sind immer noch die, die man selbst hat.
satarielxx wird genau das schon selbst sehen, wie alle letztendlich, dass es Unsinn ist, 2 Daten in einem Feld zu speichern. Spätestens wenn er/sie sich mit Datenbankdesign genauer auseinandersetzt. Und das wir er/sie. Aber nicht genau dann, wenn Du Konzeptschwächen aufdeckst.
Naja, das alte Lied.
Hallo
Sicher kann man das.
Aber MUSS man das?
Manchmal schon, denke ich.
Als Du angefangen hast, Dich mit Programmieren, PHP und was auch immer zu beschäftigen, hat es Dir was genutzt, wenn Dir, sobald Du mit einer einfachen Frage aufschlägst, jemand erstmal konzeptionelle Schwächen vorhält?
Ich denke nicht.
Doch, doch. Das kam und kommt zwar auf den Ton an, aber grundsätzlich war/bin ich schon froh, wenn ich auf solche grundsätzlichen Fehler hingewiesen werde. Das erspart mir ja hinterher einen Haufen Arbeit. Und, wenn ich mir mein Posting durchlese, habe ich mich mMn nicht im Ton vergriffen und auch gleich die Begründung für die empfohlene Herangehensweise mitgeliefert. Einfach nur bashen ist ja nun auch nicht mein Ding (Ausnahmen bestätigen die Regel ;-)).
Die besten Erkenntnisse sind immer noch die, die man selbst hat.
Muss dazu aber erst das Kind in den Brunnen fallen?
satarielxx wird genau das schon selbst sehen, wie alle letztendlich, dass es Unsinn ist, 2 Daten in einem Feld zu speichern. Spätestens wenn er/sie sich mit Datenbankdesign genauer auseinandersetzt. Und das wir er/sie. Aber nicht genau dann, wenn Du Konzeptschwächen aufdeckst.
Hoffentlich doch, damit sie/er den Fehler nicht verstetigt. Oder ist es dir lieber, wenn sie/er in einem halben Jahr ankommt und fragt, wie man die dann bereits aufgelaufenen Daten auseinanderklabustert und in einer neuen Struktur abspeichert? Das ist zwar nicht das große Problem, aber es ist doch vermeidbar. *Ich* wäre jedenfalls froh, wenn ich frühzeitig darauf hingewiesen würde, dass das Design ungünstig ist.
Tschö, Auge
Sicher kann man das.
Aber MUSS man das?
wenn ich in die werkstatt fahre, erwarte ich, dass mir der mechaniker bei einer allfälligen überprüfung beiläufig erwähnt: "pickerl [1] gehört gemacht, du bist schon überfällig - sollen wir das gleich machen?"
in meinem fall hat das der mechaniker meines misstrauens nicht gemacht - heute hat mich freundlicherweise die polizei drauf hingewiesen, dass das ding seit kurzem abgelaufen ist - natürlich bin ich als fahrzeughalter dafür verantwortlich das selbst zu machen, aber wenn man mich in der werkstatt drauf hinweist, sage ich auch nicht frech "könnt ihr nicht einfach meinen kühler flicken und den rest bitte einfach sein lassen? ich lass das schon machen, keine sorge" [2]
in diesem fall war ich nur 1x in dieser werkstatt weils nicht anders ging - die werkstatt meines vertrauens hätte mich darauf hingewiesen - haben sie bisher immer gemacht
Die besten Erkenntnisse sind immer noch die, die man selbst hat.
besonders wenn sie viel geld kosten ;)
[1] etwa die tüv-überprüfung in deutschland
[2] überspitzt
Hallo
wie ich das meine, kann man hier schön sehen. ;-)