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 01-06-2005, 10:34
tschekowski
 Junior Member
Links : Onlinestatus : tschekowski ist offline
Registriert seit: Jan 2004
Beiträge: 186
tschekowski ist zur Zeit noch ein unbeschriebenes Blatt
Standard Kleine Probleme/Fragen wegen Datenbankabfrage

Hi,

Ich wollte ein Counter Script schreiben aber leider fehlen mir einige Informationen wie man das genau umsetzen kann.

Problem 1:
Ich habe eine Tabelle in der Datenbank, links am zeilenanfang steht jeweils das datum und die Spaltennamen haben die Namen der refids.
Wenn also jemand mit einer bestimmten refid auf die seite kommt soll automatisch überprüft werden ob es eine spalte mit eben diesem namen gibt und den wert gegebenenfalls um 1 erhöhen.
DIe Frage ist jetzt wie kann ich eine Datenbankabfrage machen, die die refids mit den spaltennamen vergleicht ?

Probmem2:
Ich will alle Refids mit zugehörigen Werten ausgeben lassen. Dazu nimmt man ja am besten eine while Schleife um alle Spalten auszulesen.
Frage1: Wie kann ich den Namen der Spalte als Variable auslesen ?
Frage2: wie kann ich eine while Schleife machen, die so oft die Daten ausgibt wie spalten vorhanden sind ?

Mit Zeilen ist es mir klar wie ich die ausgeben kann, das Problem ist in diesem Fall eben, dass es sich um Spalten handelt.

Vielen Dank für eure Hilfe schonmal im vorraus!
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 01-06-2005, 10:45
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: Kleine Probleme/Fragen wegen Datenbankabfrage

Zitat:
Original geschrieben von tschekowski
Ich habe eine Tabelle in der Datenbank, links am zeilenanfang steht jeweils das datum und die Spaltennamen haben die Namen der refids.
unsinniges datenmodell.

anständig normalisieren, dann gibt's auch weniger probleme.
Code:
datum      | refid | zähler
31.05.2005 | 4711  | 13
01.06.2005 | 4711  | 4
01.06.2005 | 1313  | 47
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 01-06-2005, 10:50
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.084
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das 1. verstehe ich nicht was du da machen willst...

beim 2. könnte dir ein SHOW COLUMNS FROM tabellenname helfen...

http://dev.mysql.com/doc/mysql/en/show-columns.html


http://se2.php.net/manual/en/functio...etch-field.php ist auch toll

Geändert von Shurakai (01-06-2005 um 10:53 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 01-06-2005, 10:57
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wie wahsaga schon sagte: "unsinniges...",

... aber wenn du willst, kannst du auch einfach 1 Datensatz auslesen, per foreach die Keys durchlaufen und dabei prüfen, ob die gesuchte Spalte dabei ist. Diese Vorgehensweise kannst du für beide Probleme anwenden.

oder du setzst einfach die Abfrage ab, ohne zu prüfen, ob die Spalte existiert, dann musst du den eventuell auftretende Fehler manuell abfangen.
Mit Zitat antworten
  #5 (permalink)  
Alt 01-06-2005, 11:09
tschekowski
 Junior Member
Links : Onlinestatus : tschekowski ist offline
Registriert seit: Jan 2004
Beiträge: 186
tschekowski ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also beim ersten ist es so wie es wahsaga schon gesagt hat nur das da wo refid steht gleich die id steht und in der spalte stehen dann die zugriffe an diesem tag - der vorteil ist, dass man so alle refids gebündelt in einer tabelle hat
Mit Zitat antworten
  #6 (permalink)  
Alt 01-06-2005, 11:13
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

das ist kein vorteil, sondern ein verkorkstes datenmodell.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 01-06-2005, 11:20
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Zitat:
Original geschrieben von wahsaga
das ist kein vorteil, sondern ein verkorkstes datenmodell.
Jo, dieses Datenmodell am besten ohne Umwege in die Tonne treten. Vor Jahren, als ich noch null Ahnung von ner anständigen DB-Struktur hatte, hab ich genau so nen Schrott zusammengeschustert wie du es grad vorhast. Das Ergebnis war ein Teil, das gleich mal ein paar Sekunden gebraucht hat um ein paar Datensätze auszuspucken.

Guck dir wahsaga's Datenmodell an und setze es um, außer es macht dir nix aus in nem halben Jahr nochmal von vorne beginnen zu müssen

Gruss
Quetschi
Mit Zitat antworten
  #8 (permalink)  
Alt 01-06-2005, 11:22
tschekowski
 Junior Member
Links : Onlinestatus : tschekowski ist offline
Registriert seit: Jan 2004
Beiträge: 186
tschekowski ist zur Zeit noch ein unbeschriebenes Blatt
Standard

der counter an sich steht schon, d.h er funktioniert eigentlich schon eine weile - ich will jetzt eigentlich nur das script vereinfachen damit ich nicht bei jeder neuen refid so viel arbeit habe - die struktur ändere ich jetzt nicht mehr
kann mir jemand auf trozdem helfen (vom prinzip her sind die ja sehr ähnlich) ?

(ich hab jetzt eigentlich keine lust hier diskussionen anzufangen warum das andere system besser ist etc. - die struktur steht und ich bin auf der such nach einer lösung für eben dieses problem - so viel anders wie das von wahrsaga ist es nun auch wieder nicht - also wird es denk ich auch ähnlich funktionieren)
Mit Zitat antworten
  #9 (permalink)  
Alt 01-06-2005, 11:32
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Zitat:
Original geschrieben von tschekowski
...damit ich nicht bei jeder neuen refid so viel arbeit habe...
Was für Arbeit? das du jedesmal eine neue Spalte für ne neue refid anlegen musst? genau das würdest mit dem anderen Datenmodell erreichen...

EDIT:
Doch, wahsaga's Datenmodel ist sehr viel anders und wesentlich einfacher und schneller, es kommt mit 3 Spalten aus, während bei deinem Modell immer mehr Spalten erzeugt werden, je mehr refid's du brauchst.

Trotzdem:
Guck dir Shurakis Links an. 'Show columns' sollte dir weiterhelfen, guck dir mal an, was bei so einer Abfrage auf deiner tabelle rauskommt, darauf solltest du aufbauen können.

Geändert von Quetschi (01-06-2005 um 11:36 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 01-06-2005, 13:17
tschekowski
 Junior Member
Links : Onlinestatus : tschekowski ist offline
Registriert seit: Jan 2004
Beiträge: 186
tschekowski ist zur Zeit noch ein unbeschriebenes Blatt
Standard

es ist noch etwas hinzugekommen:
Wie kann ich die Zahlenwerte einer ganze Zeile über einen SQL Befehl zusammenaddieren ohne jede spalte einzeln angeben zu müssen ?
Mit Zitat antworten
  #11 (permalink)  
Alt 01-06-2005, 13:18
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von tschekowski
es ist noch etwas hinzugekommen:
Wie kann ich die Zahlenwerte einer ganze Zeile über einen SQL Befehl zusammenaddieren ohne jede spalte einzeln angeben zu müssen ?
OffTopic:
und, stellt sich immer noch keine einsicht ein, dass das datenmodell mist ist ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #12 (permalink)  
Alt 01-06-2005, 13:37
tschekowski
 Junior Member
Links : Onlinestatus : tschekowski ist offline
Registriert seit: Jan 2004
Beiträge: 186
tschekowski ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich kann aber trozdem nicht die alte datenbankstruktur ändern - ich brauche die daten noch

Bitte nur noch posten wenn ihr wirklich eine lösung für mein problem habt - ganz egal ob die datenbankstruktur schlecht ist oder nicht - das steht hier nicht zur debatte!
Mit Zitat antworten
  #13 (permalink)  
Alt 01-06-2005, 14:28
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Wer sagt denn dass du deswegen deine bisherigen Daten verlieren würdest? Hab damals auch aus dieser 'Irrsinns'-Tabelle heraus die Daten in eine vernünftige konvertiert. Und gerade die neu hinzugekommene Aufgabe wäre mit dem vernünftigen Datenmodell in einer ganz simplen Abfrage zu lösen.

Wenn du aber auf Teufel komm raus nicht umsteigen willst, dann guck dir endlich mal den Link zu 'Show Columns' an, auch deine neue Aufgabe lässt sich mit deinem Datenmodell darüber lösen.

Mit 'Show Columns' erhälst du Infos zu allen Spalten deiner Tabelle, auch z.B. die jeweiligen Spaltennamen, die nimmst du her und bastelst draus ne neue Query, so ungefähr,

SELECT (t1.spalte1 + t1.spalte2 + t1.spalte3.... usw.) as meineSumme .... usw.

Genauso kannst mit 'Show columns' ermitteln ob bereits eine Spalte für die betreffende refid vorhanden ist und falls nicht, dann gleich die entsprechende 'Alter Table'-Query an Mysql absenden damit die Spalte angelegt wird.

Ist halt mit deinem Datenmodell alles ein schönes Stück komplizierter als mit ner vernünftigen Struktur wo man dann ganz simpel mit SELECT, INSERT und UPDATE arbeiten könnte...
Mit Zitat antworten
  #14 (permalink)  
Alt 01-06-2005, 14:29
Hoschi0815
 Member
Links : Onlinestatus : Hoschi0815 ist offline
Registriert seit: Jan 2004
Beiträge: 255
Hoschi0815 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dann mal ne Frage,... Wie viele Spalten hat deine Datenbank denn bis jetzt?
Mit Zitat antworten
  #15 (permalink)  
Alt 01-06-2005, 14:52
tschekowski
 Junior Member
Links : Onlinestatus : tschekowski ist offline
Registriert seit: Jan 2004
Beiträge: 186
tschekowski ist zur Zeit noch ein unbeschriebenes Blatt
Standard

es sind max. 10 Spalten - die sind dann nach bereichen sortiert
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

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

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


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:48 Uhr.