php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 11-09-2003, 09:56
TBT
  Moderator
Links : Onlinestatus : TBT ist offline
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.787
TBT befindet sich auf einem aufstrebenden Ast
TBT eine Nachricht über ICQ schicken TBT eine Nachricht über AIM schicken TBT eine Nachricht über Yahoo! schicken
Standard Zeilen nebeneinander

So,

mal ein großes Problem bei mir.
Ich habe eine schöne DB, die alles macht was der AG will.
Nun ist er auf den Trichter gekommen, schöne Excel
Dateien als Übersichtlisten haben zu wollen. Kein Problem

Aber, er will Daten, die in verschiedenen Tabellen stehen,
nebeneinander haben.

Also sowas

tab_doc
======
doc_id
titel
...


tab_doc_2_autor
============
doc_id
autor_id

tab_autor
=======
autor_id
name
...


Er will alle Documente habe,
und dazu in der selben Zeile alle Autoren

Irgendjemand ne Idee, Ansatz, ... wie
man sowas möglichst einfach hinbekommt?

Wenn möglich mit einer SQL Anweisung, dann
kann ich gleich mein fertiges Export Modul nutzen.
__________________
TBT

Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!


PHP 2 AllPatrizier II Browsergame
Mit Zitat antworten
  #2 (permalink)  
Alt 11-09-2003, 10:06
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

meinst du etwas in der art:
verschachtelte templates
__________________
Kissolino.com
Mit Zitat antworten
  #3 (permalink)  
Alt 11-09-2003, 10:35
TBT
  Moderator
Links : Onlinestatus : TBT ist offline
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.787
TBT befindet sich auf einem aufstrebenden Ast
TBT eine Nachricht über ICQ schicken TBT eine Nachricht über AIM schicken TBT eine Nachricht über Yahoo! schicken
Standard

nö, der will ne Excel Datei in der Art


| doc_id | titel | Name1, Name2, Name3, ... |
__________________
TBT

Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!


PHP 2 AllPatrizier II Browsergame
Mit Zitat antworten
  #4 (permalink)  
Alt 11-09-2003, 11:31
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OffTopic:
geht doch nix über kreative kunden


wie wärs damit:
PHP-Code:
$sql "SELECT tab1.*, tab2.* FROM tab1, tab2";
$result mysql_query($sql,$conn) or die (mysql_error());
while(
$row mysql_fetch_array($result,MYSQL_NUM))
{
    
$ausgabe[] = $row;
}
print_r($ausgabe); 
- damit hast du alle inhalte
- die feldnamen (als spaltentitel) zu holen, dürfte kein akt sein
- der rest sollte eine spielerei mit arrays sein
__________________
Kissolino.com
Mit Zitat antworten
  #5 (permalink)  
Alt 11-09-2003, 13:06
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

@wurzel: ich glaub nicht ganz!

Denke das ist ein Fall für zwei Abfragen...
Anders müsstest du immer das Ergebnis Prüfen. Was glaube ich nicht so gut ist.
__________________
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
  #6 (permalink)  
Alt 11-09-2003, 13:17
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von TobiaZ
@wurzel: ich glaub nicht ganz!

Denke das ist ein Fall für zwei Abfragen...
Anders müsstest du immer das Ergebnis Prüfen. Was glaube ich nicht so gut ist.
=> ergebnis prüfen?

weitere abfragen sind eh nötig. die spaltennamen kriegst du nur in einem
rutsch, wenn's keine dubletten in den spaltennamen gibt.

ohne dubletten kann man's ganz elegant mit einer abfrage und einer
kombimierten for/foreach schleife ausgeben.

oder bin ich blöd ? (=> kein spruch getz )

belehr mich.
__________________
Kissolino.com
Mit Zitat antworten
  #7 (permalink)  
Alt 11-09-2003, 13:20
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

die spaltennamen (um sie oben drüber zu schreiben) interessieren hier glaube ich noch am wenigsten. da hatte ich mich jetzt gar nicht drum gekümmert. Die werden denke ich mal sowieso von hand gemacht.

es ging hier hauptsächlich um die daten. und da kommst du mit deinem script glaube ich nicht ganz so weit.
__________________
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
  #8 (permalink)  
Alt 11-09-2003, 13:22
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: Zeilen nebeneinander

Zitat:
Original geschrieben von TBT
Er will alle Documente habe,
und dazu in der selben Zeile alle Autoren
ich würde erstmal beide tabellen in arrays einlesen.

dann gehst du das array mit den dokumenten durch, und legst ein weiteres assoziatives array an. die dokumente verwendest du hier als schlüssel.

$neuesarray[$dokumentname] .= $autorarray[$autorid];

wenn zu dem dokument noch kein array-eintrag existiert, legt php diesen ja automatisch an.
und jeder autor wird einfach hinten drangehangen, so dass du sie nachher alle als einen string vorliegen hast (trennzeichen o.ä. kannst du ja noch einfügen).
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 11-09-2003, 13:22
TBT
  Moderator
Links : Onlinestatus : TBT ist offline
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.787
TBT befindet sich auf einem aufstrebenden Ast
TBT eine Nachricht über ICQ schicken TBT eine Nachricht über AIM schicken TBT eine Nachricht über Yahoo! schicken
Standard

hab jetzt nen Würgaround.
Hoffe das alle anderen Listen per Standardmodul exportiert
werden können.
Und ja, der Kunde ist kreativ - aber nicht kreativ genug !

PHP-Code:
$res $query->select('    SELECT 
                            m.man_id                                msnoconf,
                            \'\'                                    msnrpss,
                            \'\'                                    issue,
                            \'\'                                    series,
                            concat(u1.vorname,\' \',u1.name)        authors,
                            m.titel                                    title,
                            \'\'                                    mspages,
                            \'\'                                    figs,
                            \'\'                                    received,
                            \'\'                                    revised,
                            \'\'                                    accepted,
                            concat(u1.vorname,\' \',u1.name)        corrauthor,
                            u1.mail                                    email,
                            u1.fax                                    fax,
                            s.bezeichnung                             status,
                            DATE_FORMAT(m.datum,\'%d.%m.%Y\')        date,
                            concat(u.vorname,\' \',u.name)            referee1,
                            \'\'                                    referee2,
                            \'\'                                    referee3,
                            \'\'                                    referee4,
                            \'\'                                    referee5,
                            \'\'                                    referee6,
                            \'\'                                    referee7,
                            \'\'                                    referee8,
                            \'\'                                    referee9
                        FROM manuscripte m
                        LEFT JOIN gutachten g
                            ON  ( m.man_id = g.man_id )
                        LEFT JOIN user u
                            ON ( g.user_id = u.user_id )
                        LEFT JOIN user u1
                            ON ( m.user_id = u1.user_id )
                        LEFT JOIN status s
                            ON ( m.sta_id = s.sta_id )
                        GROUP BY 
                            msnoconf,msnrpss,issue,series,authors,title,
                            mspages,figs,received,accepted,corrauthor,email,fax,status,
                            date,referee1,referee2,referee3,referee4,referee5,
                            referee6,referee7,referee8,referee9
                        '
);
$z 0;
$ref 1;
for(
$i 0;$i $query->rows;++$i){
    
$r 0;
    if(
$i == 0){ 
        
// 24
        
foreach($res[$i] as $key => $value){
            
$sheet->write(0$r$key);
            
$sheet->write(1$r$value);
            ++
$r;
        }
    }else{
        if(
$res[$i]['msnoconf'] == $res[$i-1]['msnoconf']){ 
            
// gleicher DS, keine neue Zeile
            
++$z;
            
$m 0;
            foreach(
$res[$i] as $key => $value){
                if(
$m 15) continue;
                if(
$key == 'authors' && $res[$i]['authors'] != $res[$i-1]['authors']){
                    
$res[$i]['authors'] = $res[$i-1]['authors'] . ',' $res[$i]['authors'];
                    
$sheet->write($i $z$r$res[$i]['authors']);
                }
                if(
$key == 'referee1' && $res[$i-1]['referee1'] != $res[$i]['referee1']){
                    
$sheet->write($i $z$r $ref$res[$i]['referee1']);
                    
$ref++;
                    
$r++;
                }
                ++
$r;
            }
        }else{ 
            
// 15
            
$ref 1;
            foreach(
$res[$i] as $key => $value){
                
$sheet->write($i $z$r$value);
                ++
$r;
            }
        }
    }

PS: die SQL Abfrage ist noch im Aufbau, nur schon alle Felder
für die Excel Tabelle drin.
Das Forum verschluckt die \ bei der SQL Anweisung
__________________
TBT

Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!


PHP 2 AllPatrizier II Browsergame
Mit Zitat antworten
  #10 (permalink)  
Alt 11-09-2003, 13:24
TBT
  Moderator
Links : Onlinestatus : TBT ist offline
Registriert seit: Sep 2002
Ort: Berlin
Beiträge: 2.787
TBT befindet sich auf einem aufstrebenden Ast
TBT eine Nachricht über ICQ schicken TBT eine Nachricht über AIM schicken TBT eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von TobiaZ
Die werden denke ich mal sowieso von hand gemacht.
Handarbeit wenns nen Computer mit DB gibt ?
Das geht mir nen bissel zu weit, so weit komms noch!

Nene, das Standardmodul übernimmt die Spaltennamen
der SQL Anweisung in die Excel Tabelle
__________________
TBT

Die zwei wichtigsten Regeln für eine berufliche Karriere:
1. Verrate niemals alles was du weißt!


PHP 2 AllPatrizier II Browsergame
Mit Zitat antworten
  #11 (permalink)  
Alt 11-09-2003, 14:18
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 dachte nur, wenn du die spalten ohnehin in der query eingibst.
__________________
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)
 

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

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:59 Uhr.