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 06-08-2007, 16:07
tetra
 Newbie
Links : Onlinestatus : tetra ist offline
Registriert seit: Aug 2007
Beiträge: 24
tetra ist zur Zeit noch ein unbeschriebenes Blatt
Question Komplizierte mysql abfrage...

Hallo leute,

Ich habe schon endliche Seiten durchgeschaut und bei google habe ich auch nichts gefunden was mir weiter hilft bzw nicht in der Form so das ich das verstehe :S

Ich habe folgenes problem:

Ich habe eine datenbank mit 1000 tabellen da muss ich erstmal die tabellen raussuchen die im tabellennamen ein bestimmten sufix stehen haben. Dann muss ich fuer jede gefundene tabelle die datensaetze sumieren bzw den hoesten wert anzeigen oder den niedrrigsten wert anzeigen lassen kommt drauf an fuer welche spalte... nur das ueberfordert mich ein wenig weil ich alle datensaetze im array (assoc) drin hab und nicht weiss wie ich jetzt weiter machen soll...

Ich lasse jetzt pro tabelle alle datensaetze anzeigen nur sollen nicht alle angezeigt werden sondern nur die maximalen , niedrigsten,durchschnitts werte.. :S

Geändert von tetra (06-08-2007 um 16:12 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 06-08-2007, 16: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

Zitat:
komplizierte mysql abfrage...
ah, und deswegen postest du im PHP-Forum? *verschieb*

OffTopic:
Wiederholungsfehler.


Zitat:
Ich habe eine datenbank mit 1000 tabellen da muss ich erstmal die tabellen raussuchen die im tabellennamen ein bestimmten sufix stehen haben.
Dann holst du dir erst mal alle Tabellen aus der Datenbank. SHOW TABLES sollte dir da schonmal ganz gute Dienste erweisen.
Die packste in ein Array und durchläufst es und prüfst auf dieses Prefix. (Kann sein, dass es dafür auch eine fertige array-Funktion gibt.

Zitat:
Dann muss ich fuer jede gefundene tabelle die datensaetze sumieren bzw den hoesten wert anzeigen oder den niedrrigsten wert anzeigen lassen kommt drauf an fuer welche spalte... nur das ueberfordert mich ein wenig weil ich alle datensaetze im array (assoc) drin hab und nicht weiss wie ich jetzt weiter machen soll...
Wenn du es nicht schon SQL-Seitig mit MIN() und MAX() machen kannst, dann halt mit PHP. Entsprechende Funktionen gibt es.

So, jetzt werd erstmal aktiv. und poste erste ansätze. Wir sind hier nicht zum vorkauen...

OffTopic:
Auf das vermutlich miese DB-Layout gehe ich an dieser Stelle nicht ein, weil du dazu hoffentlich schon oft genug etwas gehört hast...
EDIT:
Zitat:
Ich lasse jetzt pro tabelle alle datensaetze anzeigen nur sollen nicht alle angezeigt werden sondern nur die maximalen , niedrigsten,durchschnitts werte.. :S
Super Leistung.

__________________
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
  #3 (permalink)  
Alt 06-08-2007, 16:16
kuddeldaddeldu
 Registrierter Benutzer
Links : Onlinestatus : kuddeldaddeldu ist offline
Registriert seit: Sep 2006
Beiträge: 437
kuddeldaddeldu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

Tabellen auflisten kannst Du mit "SHOW TABLES LIKE...".
Wenn Du Spalten in Tabellen summieren, Min/Max berechnen usw. willst, empfiehlt es sich, das die Datenbank machen zu lassen, statt alles auszulesen und in einer Schleife rumzurechnen.

LG
Mit Zitat antworten
  #4 (permalink)  
Alt 06-08-2007, 16:21
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

Zitat:
Tabellen auflisten kannst Du mit "SHOW TABLES LIKE...".
Das ist natürlich noch besser!
__________________
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
  #5 (permalink)  
Alt 06-08-2007, 16:22
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Eventuell ein VIEW+UNION, aber warum zur Hölle liegen die Daten denn auf Tabellen geclustert und auch noch in Spalten mit unterschiedlichen Namen?...
Mit Zitat antworten
  #6 (permalink)  
Alt 06-08-2007, 16:26
tetra
 Newbie
Links : Onlinestatus : tetra ist offline
Registriert seit: Aug 2007
Beiträge: 24
tetra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

rofl danke erstmal fuer die schnelle antworten... (teilweise lustigen ^^)

at TobiaZ ^^

ich habe ja schon alles nur wusste bzw weiss ich nicht genau wie ich alle datensaetze jetzt ggf. summieren soll...

PHP-Code:
function tbls(){
require(
"config.inc.php");
  
dbconnect();
  
$tbls mysql_query("SHOW TABLES LIKE '%".$DB_SUFIX."'");
  
$num mysql_num_rows($tbls);
  
$msgtit "Result:";
  
$msgcon "Found: ".$num." Tables ";
  include(
"templates/message.tpl");

// $timestamp = time();
// $datetime = date("d-m-Y H:i:s",$timestamp);


    
while ($row mysql_fetch_array($tbls)){
      
$qry mysql_query("select * from $row[0]");
      include(
"templates/tbl_head.tpl");
      while (
$res mysql_fetch_assoc($qry)){
        
$timestamp gmdate("d-m-Y H:i:s"$res["TimeStamp"]);
        
$rfactor $res["RFactor"];
        
$mos $res["MOS"];
        
$mlel $res["MaxLossEpisodesLen"];
        
$mles $res["MaxLossEpisodes"];
        
$nlp $res["NetworkLossProbality"];
        
$jitter $res["Jitter"];
        
$iseq $res["InSquence"];
        
$loss $res["Loss"];
        include(
"templates/tbl_content.tpl");
      }
      include(
"templates/tbl_footer.tpl");
    }

das was ich bisher geschaffen habe....

Geändert von tetra (06-08-2007 um 16:30 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 06-08-2007, 16:30
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Naja das isses doch schon fast. Statt

select * from $row[0]
while (...) { }

jetzt nur noch MIN()/MAX() einbauen und Feierabend machen.
Mit Zitat antworten
  #8 (permalink)  
Alt 06-08-2007, 16:36
tetra
 Newbie
Links : Onlinestatus : tetra ist offline
Registriert seit: Aug 2007
Beiträge: 24
tetra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von onemorenerd
[...]Statt

select * from $row[0]
while (...) { }

[...]
meinst du statt

select * from $row[0]
eine while schleife?
while (...) { }

hab grad irgendwie blackout oO oder bin einfach begriffsstuzig...

Hab ja ueber dem query "select * from $row[0]" einen query der mit die anzahl der tabellen angibt bzw die namen... die beutzt ich dann um an die datensaetze der jeweiligen tabellen ranzukommen...

muss ich jetzt anstatt * , max(feldname) eingeben und das wars?
Mit Zitat antworten
  #9 (permalink)  
Alt 06-08-2007, 16:38
kuddeldaddeldu
 Registrierter Benutzer
Links : Onlinestatus : kuddeldaddeldu ist offline
Registriert seit: Sep 2006
Beiträge: 437
kuddeldaddeldu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,
Zitat:
muss ich jetzt anstatt * , max(feldname) eingeben und das wars?
Zum Beispiel. Oder AVG, SUM,... was immer Du berechnen willst.

LG
Mit Zitat antworten
  #10 (permalink)  
Alt 06-08-2007, 16:40
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Und weil die Aggregatfunktionen allesamt nur einen einzigen Wert zurückgeben, entfällt die innere While-Schleife. Dass wollte ich da oben sagen. Sorry, wenn es zu undeutlich war.
Mit Zitat antworten
  #11 (permalink)  
Alt 06-08-2007, 16:40
tetra
 Newbie
Links : Onlinestatus : tetra ist offline
Registriert seit: Aug 2007
Beiträge: 24
tetra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ah ok vielen dank, werd es mal ausprobieren...

Ah ok ich verstehe ich waehle die datenbank aus und lasse dann anch dem maximal wert von"felname" suchen.... oder lasse den durchschnitt vom "feldnamen" berechnen dafuer brauch ich nicht alle datensaetze raushohlen und einzelnt sumieren oder sonst was...

nur leider funktioniert das nicht richtig oder ich mach wieder etwas falsche -.-

PHP-Code:
$qry mysql_query("select MAX(Jitter) from $row[0]"); 

der query sollte doch richtig sein oder nicht?

Geändert von tetra (06-08-2007 um 16:45 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 06-08-2007, 16:47
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

Lies bitte die Regeln und befolge sie!

Was gibt mysql_error zurück? wie sieht die Query aus?

echo "select MAX(Jitter) from $row[0]";

Und funktioniert nicht ist keine Fehlerbeschreibung!
__________________
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
  #13 (permalink)  
Alt 06-08-2007, 16:52
tetra
 Newbie
Links : Onlinestatus : tetra ist offline
Registriert seit: Aug 2007
Beiträge: 24
tetra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry, aber ich habe die Query gepostet und wuerde mein code mir auch einen error ausgeben wuerde ich ihn euch auch mitteilen!

Anscheinend funktioniert es aber es wird nichts ausgebenen...

Wenn ich im query max(feldname) schreibe dann kann ich diesen wert doch mit

PHP-Code:
$res["feldname"]; 
ausgeben lassen oder irre ich mich da?

*edit

wenn ich den query so schreibe wie vorhin
PHP-Code:
$qry mysql_query("select * from $row[0]"); 
dann aber beim ausgeben
PHP-Code:
 $jitter max($res["Jitter"]); 
dann kommt ein fehler

Code:
Warning: Wrong parameter count for max() in C:\xampp\htdocs\test\qry\inc\function.inc.php on line 48
Das feld hat den datentyp int unsigned

Geändert von tetra (06-08-2007 um 16:54 Uhr)
Mit Zitat antworten
  #14 (permalink)  
Alt 06-08-2007, 16:53
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

var_dump($res);

SELECT MAX(Jitter) AS jitter FROM ...
Mit Zitat antworten
  #15 (permalink)  
Alt 06-08-2007, 16:54
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

Zitat:
Sorry, aber ich habe die Query gepostet
Nein, du hast einen Stück PHP-Code gepostet. Wofür mache ich mir eigentlich die Mühe und schreibe dir auch noch, welchen Code du für die Testausgabe verwenden sollst???

Zitat:
Wenn ich im query max(feldname) schreibe dann kann ich diesen wert doch mit $res["feldname"]; ausgeben lassen oder irre ich mich da?
Nein natürlich nicht!
select max(feldname) feldname
würde gehen
__________________
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

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

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:13 Uhr.