Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Dabei seit: 10.02.2003

Beiträge: 2 037

 

1 Zum Seitenanfang

Dienstag, 14. November 2006, 00:40

kontrollstruktur für idente - aber unbekannte - spalteneinträge identifizieren?

hi@all!

also jetzt hab ich mich schon im betreff schwergetan, jetzt will ich das problem noch erklären :(

ok. los gehts:
ERSTER TEIL:
also in der spalte 'bid' einer tabelle 'abcd' stehen ids von einer anderen tabelle, sie identifizieren dort diverse parameter (gleichgültig für diese frage). obwohl ich das nicht mag, versuche ichs mal mit einem 'pseudocode', vielleicht hilft das zu sagen, was ich will.

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
if ($bid ist ident/*das ist mein wesentliches probl.: wie findet man idente werte einer spalte, 
wenn man nur weiss, dass es zahlen sind aber nicht welche*/
{
echo'Nur 1x "bid" zeigen, bzw. nur 1x die bezeichnung der spalte 

(andere spalte, die mit "bid" identifiziert wird),
 
die bid ergibt, weil es nur als überschrift benötigt wird';
}
else
{
echo'Es gibt keine identen Veranstaltungen!';
}?>

ZWEITER TEIL:

wenn ich solche identen finde, kann ich die zählen auch, wenn ja wie ?(
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »webmastersworld« (14. November 2006, 00:44)

 

ospx

Kaiser

Dabei seit: 11.11.2006

Beiträge: 1 131

 

2 Zum Seitenanfang

Dienstag, 14. November 2006, 02:34

Meinst du sowas:

Tab 1: Tab1
Feld: bid

Tab2: Tab2
Feld: ids

bsp. bid=20 (die mußt du natürlich vorher irgendwie als Ansatz bekommen)
=> Ergebniss sind alle zugehörigen ids in Tabelle :efgh

SELECT Tab1.bid, Tab2.ids
FROM Tab1 LEFT JOIN Tab2 ON Tab1.bid = Tab2.ids
WHERE (((Tab1.bid)="20"));

irgendwie kann man da auch noch die count-Funktion von sql einarbeiten und erhält die Anzahl der gefundenen ids

oder in php:

mysql_affected_rows() = Anzahl der gefundenen Datensätze

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »ospx« (14. November 2006, 14:35)

 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

3 Zum Seitenanfang

Dienstag, 14. November 2006, 13:43

thx ich werde das abends versuchen, mal sehen, ob ich das realisieren kann :D

EDIT:

wieso ="20" ??? bitte erkläre mir das :D
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »webmastersworld« (14. November 2006, 13:49)

 

ospx

Kaiser

Dabei seit: 11.11.2006

Beiträge: 1 131

 

4 Zum Seitenanfang

Dienstag, 14. November 2006, 14:30

die 20 soll nur als ein Beispiel für eine bid stehen. Soll heißen, du müßtest also vorher zumindest die entsprechende bid, für die du die zugehörigen ids haben willst, kennen/ermitteln und mit der 20 austauschen (z.B durch eine Variable in php).

Ich ging davon aus, dass deine 'bid' irgendeine ID sein soll. Das ist aber eher unwichtig. Die 20 ist ein Stellvertreter für irgendwelche bid-Werte, also auch Strings usw.
 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

5 Zum Seitenanfang

Dienstag, 14. November 2006, 19:47

verstehe thx, eine ID - Range (sowas wie bid <=20000 ) ist für meine zwecke viel besser (irgendwie eine while() oder foreach() dazu halt :)), jetzt hab ich theoretisch den einblick, wenn ich das heute noch zeitlich schaffe, versuche ich mal das prakt. umzusetzen, bin schon extrem neugierig, schreibe dir dann ob und wie ichs gemacht habe, thx für die infos :D
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »webmastersworld« (14. November 2006, 19:57)

 

ospx

Kaiser

Dabei seit: 11.11.2006

Beiträge: 1 131

 

6 Zum Seitenanfang

Dienstag, 14. November 2006, 20:51

Halt , stop ich glaube da ist ein Mißverständniss

Zitat

bid <=20000
geht in der Abfrage so nicht, da kommt Müsli raus, in obiger Abfrage geht glaub ich nur '=' , es sei denn du hast ein ganz spezielles Design

ich meinte zusammengehörige ID's.

Also 1. Tabelle Felder
irgendwas | nochwas | bID

haupt1 xxy 20
haupt2 cde 21


2. Tabelle Felder:

ids | parameter1 | parameter2 ...

20 a3 b5
20 c7 d2
20 x9 y4

21 s3 w3
21 a3 c8

-------------------------------------------------------------------

mit obiger Abfrage bekommst du alle Datensätze der 2.Tabelle mit ids=20


willst du mehrere ids- Werte abfragen, müßte das sql-statement angepaßt oder für jede ids ausgeführt werden.
das werden einige sql-cracks vielleicht als unprofessionell bezeichnen, aber du könntest die ids-werte mit einem einfachen weiteren sql-statement abfragen, in php auswerten und den teil, mit dem du weiter willst im obigen statement abfragen. in kleineren Datensatzmengen gänge auch eine foreachschleife, in der dann die entsprechenden ids anstatt der 20 als werte eingesetzt werden.

Aber vorsicht, ich kenne dein system nicht und hab das mal eben so hingeworfen. Das ganze ist nicht gerade resourcen-sparend aufgezogen, bzw achte auf die Mengen der zu verarbeitenden Datensätze (du wirst es wissen, nur falls nicht, sei es nochmal angemerkt)
 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

7 Zum Seitenanfang

Dienstag, 14. November 2006, 22:02

ah da haben wir uns missverstanden.

ich erklär nochmal, was ich wollte:

also in tabelle 1 stehen alle vorträge, die jemand abhält ein vortrag mit preisspalte, ortspalte, zeitspalte, vortragenderspalte ...

jeder dieser vorträge erhält in tabelle1 eine ID (autoincremented).

_______

jetzt melden sich per mail leute an mit mail und geben ihre persönlichen daten ein, diese mailangaben werden in tabelle2 gespeichert. der vortrag für den sich leute anmelden wird in der spalte 'bid' in tabelle2 gespeichert. so weit so klar.

wenn ich jetzt dem user dieses systems eine choicemöglichkeit aller seiner anmeldungen geben will, muss ich 'bid' in tabelle2 durchlaufen und schauen
1. wieviele bid sind ident +
2. mit welcher ID aus tabelle1 stimmen diese bid (also alle anmeldungen) überein.

dann will ich den vortrag 1x als überschrift zeigen + die zahl der identen bid cunten (also z.b. für den vortrag blabla meldeten sich bisher 10 teilnehmer an).

das wars was ich wollte :D
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org
 

ospx

Kaiser

Dabei seit: 11.11.2006

Beiträge: 1 131

 

8 Zum Seitenanfang

Dienstag, 14. November 2006, 23:13

Das hört sich so an, als ob ein paar mehr Tabellen sinnvoll sein könnten ??
die 5 Normalformen und Normalisierung von Datenbanken kennst du?
wenn nicht, schau es dir mal an:
ausführlich:
DSP
akademisch:
http://wwwcs.uni-paderborn.de/cs/ag-boet…k5n.html#K5_7_0

Aber wahrscheinlich hast du schon einen guten Ansatz gefunden (?). Es scheint zumindest so.

ich würde, das, was du willst in mind. 3, wahrscheinlich sogar 4 oder 5 Tabellen aufteilen
1. Tab Vorträge
2. Tab Teilnehmer
3. Tab Kreuztabelle ID-Vortrag | ID-Teilnehmer

4.Tab Referenten

ev. noch 5. ort etc, um redundanzen zu vermeiden


abgesehen davon scheint mir obiger Ansatz sehr passend für dein konzept
was ist denn eigentl dieses 'ident' oder identisch mit was?

irgendwie habe ich ne menge sql vergessen, aber was du willst, läßt sich perfecto in sql ausführen und du brauchst eigentlich gar nicht so viele foreach's und while's in php.
ich krame morgen nochmal nach. wenn du es vorher anders löst ist das top . lass es mich wissen. bin echt neugierig geworden, was du daraus machst. also bis demnächst - viel glück
 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

9 Zum Seitenanfang

Dienstag, 14. November 2006, 23:22

naja 'ident' identisch bedeutet nix anderes, dass die vielen identen bid der tabelle2 mit einer ID in tabelle1 übereinstimmen müssen, sonst gäbe es ja den vortrag nicht. da der user die vorträge anlegt und vergangene löscht ändern sich natürlich die IDs in tabelle1 + demgemäß auch die bid der anmeldungen die in tabelle2 halt mehrfach ident vorkommen, weil sich ja mehr leutz zu einem vortrag (=ID in tabelle1) anmelden. :D
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »webmastersworld« (14. November 2006, 23:23)

 

ospx

Kaiser

Dabei seit: 11.11.2006

Beiträge: 1 131

 

10 Zum Seitenanfang

Dienstag, 14. November 2006, 23:31

darum die 3.Tabelle als Kreuztabelle mit den ID's Vortrag | ID's Teilnehmer ;)
 

Dabei seit: 10.02.2003

Beiträge: 2 037

 

11 Zum Seitenanfang

Mittwoch, 15. November 2006, 01:38

ja man sollte sich nie 'mit der rechten hand am liken ohr kratzen wollen' ;)

anders gesagt: es ist ganz einfach gewesen :) der user, der die vorträge erstellt, muss nur auswählen, welchen votrag er sehen will +
> ich habe die id aus tabelle 1,
dann lasse ich ein count AS (*) WHERE `bid` = '$id' in tabelle2 los ... und schon weiss ich die gesamtzahl aller anmeldungen zum jeweiligen vortrag
> dann lasse ich tabelle2 mit einer while - schleife durchlafen WHERE `bid` = '$id' + ich habe alle daten der angemeldeten auf einen blick

moral von der geschicht: warum kompliziert, wenns einfach auch geht, thx für die hilfe :D + gn8
Im Leben gibt man nur Briefe auf, sonst nix!
www.realtype.org

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »webmastersworld« (15. November 2006, 01:39)

 

ospx

Kaiser

Dabei seit: 11.11.2006

Beiträge: 1 131

 

12 Zum Seitenanfang

Mittwoch, 15. November 2006, 10:47

hey cool,
hatte gerade mal eine Referenz zu count herausgekramt ... und sehe, dass du es schon hast. Ich finde, deine Lösung hört sich gut an.