php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 24-01-2010, 14:37
larsoniA
 Registrierter Benutzer
Links : Onlinestatus : larsoniA ist offline
Registriert seit: Aug 2006
Beiträge: 5
larsoniA ist zur Zeit noch ein unbeschriebenes Blatt
Standard rekursive Datenbankabfrage

hallo hallo,

unser entwickler hat nun gekündigt und nun muss ich mich als leihe damit rumplagen evtl kann mir da jemand helfen? das wäre super

IST-ZUSTAND
es gibt 2 tabellen.. die eine ist das produktthema und die andere das produkt selber.. ein produkt kann mehrere produktthemen beinhalten. die themen werden derzeit mit Leerzeichen getrennt in die spalte "themen" der produkttabelle geschrieben..
Beispiel der Produkttabelle -> Thema: "RADIO & TV MÖBEL"

die Produkttabelle kann via csv-export exportiert werden.


SOLL-ZUSTAND
beim csv export soll via SQL-Abfrage rekursiv die themen via "," getrennt werden anstatt wie es in der "Themen-Spalte" ist mit leerzeichen. Daher müsste ich ja die Produkttabelle mit der Spalte THEMEN rekursiv mit der Themen Tabelle vergleichen, so das dann sowas beim csv-export rauskommt:
"RADIO & TV, MÖBEL"


da ich wie schon gesagt ein leihe bin habe ich keine ansatzideen wie ich das machen könnte :-( vieleicht habt ihr es ja?

lg
lara
Mit Zitat antworten
  #2 (permalink)  
Alt 24-01-2010, 16:24
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.724
Kropff befindet sich auf einem aufstrebenden Ast
Standard

1. Es heißt Laie

2. Irgendwie sieht das nach einem ganz miesen Design aus. Imho solltest du die Datenbank vielleicht komplett umbauen.

3. Den Designfehler erkennst du ja schon an deinem Beispiel. Woher soll MySQL denn erkennen, dass es "RADIO & TV" und "MÖBEL" heißt. Es könnte doch auch so sein: "RADIO &" und "TV MÖBEL". Das kannst nur du händisch aufdröseln.

4. Mein Tipp. Informier dich über Normalisierung, da auch dein Vorschlag "RADIO & TV, MÖBEL" nicht das Gelbe vom Ei ist.

5. Beschränke das Problem nicht auf den csv-Export. Das ganze System ist viel zu redundant.

Gruß
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite

Geändert von Kropff (24-01-2010 um 16:58 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 24-01-2010, 16:46
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

OffTopic:
Bei dem Layout hätte ICH dem Entwickler gekündigt.


Aber das hilft nichts, ausbaden musst du die Sache. Ich würde daher auch empfehlen in den sauren Apfel zu beißen und das ganze zu normalisieren.

OffTopic:
Wenns so ganz und gar nicht dein Ding ist, es gibt ja auch Freelancer, die kurzfristig einspringen können. Bei uns kannst du auch Jobangebote einstellen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #4 (permalink)  
Alt 24-01-2010, 17:00
larsoniA
 Registrierter Benutzer
Links : Onlinestatus : larsoniA ist offline
Registriert seit: Aug 2006
Beiträge: 5
larsoniA ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja das ist nicht die beste Programmierung große Änderungen am Code sollen aber nicht mehr vorgenommen werden, da es sich nicht mehr lohnt.. später wird das projekt auch extern nochmal neu gebaut.. aber.. jetzt soll es erstmal so geändert werden (aufgabe wurde mir so erteilt..)

wie kann ich daher in mysql + php die spalte "themen" der produkte mit der thementabelle vergleichen? also das ich jede spalte durchgeh.. einen vergleich mach ob "radio & tv" ein thema ist.. und "möbel" ein extra thema und dies dann beim export so trennen kann? evtl. mit subanfrage?
Mit Zitat antworten
  #5 (permalink)  
Alt 24-01-2010, 17:07
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.724
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zunächst mal benötigen wir die Struktur beider Tabellen und deren genaue Relation. Vorher müssen wir raten.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #6 (permalink)  
Alt 24-01-2010, 17:13
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Was an der ganzen sache sollt eigentlich rekursiv sein??? Ich würde da höchstens ein iterativ sehen.

Wenn ich dich richtig verstanden habe, dann willst du nur aus

TV & Radio Möbel

ein

TV & Radio, Möbel

machen, richtig?

Ich würde evtl. gar ein

"TV & Radio", "Möbel"

bevorzugen.

Das ist eigentlich mit einem einmaligen Suchen und Ersetzen erledigt. Feddisch.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 24-01-2010, 17:16
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.724
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Ich denke, dass es auch noch andere "Produktthemen" gibt wie z.B. "Computer Hardware" oder "Computer Software". Da reicht kein suchen und ersetzen. Es sei denn, man macht es händisch bei allen Kombinationsmöglichkeiten.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #8 (permalink)  
Alt 24-01-2010, 17:23
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Ich gehe auch davon aus, dass das nicht die einzigen Kategorien sind. Aber ich bräuchte diese ja nur der Länge nach sortieren und dann zu ersetzen, aus "TV & Radio" mache "TV & Radio,". Und das Komma am Ende des "Gesamtwertes" kann ich ja abschneiden, wenns mir nicht zusagt.

Aber vielleicht ist mir der Sinn und Zweck auch noch nicht ganz klar geworden.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #9 (permalink)  
Alt 24-01-2010, 17:29
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.724
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Ich warte mal so lange, bis der TS mit der Db-Struktur und ein paar Beispieldatensätzen ankommt. Dann sehen wir weiter. Vielleicht liege ja ich daneben.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #10 (permalink)  
Alt 24-01-2010, 20:01
larsoniA
 Registrierter Benutzer
Links : Onlinestatus : larsoniA ist offline
Registriert seit: Aug 2006
Beiträge: 5
larsoniA ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hey..
also die db-struktur schaut so aus..


tabelle produkt:
id, name, thema
Beispiel:
(1,radio xyz, tv & radio elektro)


tabelle thema:
id, name
Beispiel:
(1, tv & radio
2, elektro)

die output wo dann quasi die csv exportiert wird:

PHP-Code:
$db_artikel->query("SELECT produkt_id as produktID,
name as Name ,
themenbereiche as Themenbereiche
FROM produkte;

$datum = date("
Ymd");

$exportname = "
../export.csv";

if (file_exists($exportname))
    unlink($exportname);

$fp = fopen ($exportname, "
w");

while ($db_artikel->next_record()) {
    $row = $db_produkte->Record;
    for ($i = 0; $i < $columns; $i ++) {
        $out .=''.str_replace("
r","",str_replace("n","",str_replace('"','',$row["$i"]))).'|;
    }
    
$out.="\n";
}
fwrite($fp,$out);

fclose($fp); 
bei dem csv export soll quasi die themenbereiche statt dem "leerzeichen" (wie´s in der DB ist) dies via sql abfrage die themenbereiche geprüft und dann für den export via "," getrennt werden.
das statt "tv & radio elektro" dann "tv & radio, elektro" geschrieben wird

Geändert von larsoniA (24-01-2010 um 20:24 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 24-01-2010, 20:15
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

was spricht gegen die replace-variante?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Rekursive MySQL-Anweisung! frankburian SQL / Datenbanken 4 13-03-2008 12:27
rekursive Queries Flip7 SQL / Datenbanken 2 23-11-2007 18:27
[REGEX] rekursive tags Maranello-550 PHP Developer Forum 10 08-10-2007 20:28
rekursive funktion datenbankabfrage Blutgraf PHP Developer Forum 16 15-11-2004 12:39

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:33 Uhr.