WinFuture-Forum.de: ID aufruf + DB auslesen (PHP MySQL) - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

ID aufruf + DB auslesen (PHP MySQL) Wie kann ich nach aufruf einer ID Daten aus einer DB auslesen?

#16 Mitglied ist offline   snwblnd 

  • Gruppe: aktive Mitglieder
  • Beiträge: 21
  • Beigetreten: 16. Juli 14
  • Reputation: 0

geschrieben 19. Juli 2014 - 11:59

VorUndNachName hat schon so seinen Sinn.
Man ändert öfter seinen Nachnamen als seinen Geburtsnamen, also steht in der DB auch Max Mustermann in einer weiteren Spalte (Geburtsname) zum Beispiel geborener Wald.
Wie das ganze dann aussehen kann sieht man hier:
http://www.visurox.de/genea/

Die Daten sind sowohl in der Livesearch als auch in unserem Problemscript hier, identisch!


Ein Bild von gerade eben wo man auch den Aufbau besser sieht.

Eingefügtes Bild
0

Anzeige



#17 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 19. Juli 2014 - 17:22

Okay, die Datenbank gibt's scheinbar noch.

Wo der jetzt plötzlich das 'Access Denied' herhat, kann ich Dir leider auch nicht sagen. KEine Ahnung, ob Du (oder irgendwer) da was an der Benutzerkonfiguration geändert hast oder ob die im Script eingetragenen Benutzerdaten in irgendeiner Form verändert wurden - passiert mir zumindest immer mal, daß ich Crtl-S drücken will und aber ein S krieg, dann hagelt es natürlich Fehlermeldungen, wenn da ein Zeichen steht (oder nicht mehr steht) wo es (nicht) stehen sollte.

Über Datenbankentwurf brauchen wir glaub ich nicht zu diskutieren, das ist glaub ich grad nicht so wirklich zielführend. :) Solange wie es für Dich - oder Euch - funktioniert, ist ja alles gut.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
1

#18 Mitglied ist offline   snwblnd 

  • Gruppe: aktive Mitglieder
  • Beiträge: 21
  • Beigetreten: 16. Juli 14
  • Reputation: 0

geschrieben 19. Juli 2014 - 19:13

Ja ich denke auch. Es soll später Beziehungen zueinander kommen,
da das ganz Projekt ja eine Ahnenseite sein soll. Sprich
ID1 (geborener Bla) 6.7.1998 ist der Sohn von ID2 (geborener ZYY) usw
Mit Kindern und Ehefrau und allem.

Ich habe die Zugangsdaten jetzt bestimmt 8x nachgesehen, da ist alles richtig.
Und vor dem SQLi Check hat auch alles funktioniert.
Es bringt nur natürlich nichts wenn es ein Einfallstor für blöde Menschen ist,
von daher ist/war deine Hilfe natürlich sinnvoll und hilfreich.
0

#19 Mitglied ist offline   Mondragor 

  • Gruppe: aktive Mitglieder
  • Beiträge: 391
  • Beigetreten: 22. Februar 12
  • Reputation: 44
  • Geschlecht:Männlich

geschrieben 24. Juli 2014 - 10:10

Hallo snwblnd Läuft das denn jetzt??
0

#20 Mitglied ist offline   snwblnd 

  • Gruppe: aktive Mitglieder
  • Beiträge: 21
  • Beigetreten: 16. Juli 14
  • Reputation: 0

geschrieben 29. Juli 2014 - 22:10

Hallo, entschuldigt das ich mich so lange nicht mehr gemeldet habe,
ich habe erfolgreich Ahnenforschung betrieben.

Das Script habe ich bis heute nicht mehr angerührt,
da es beim letzten mal schon nicht mehr ging.

Es ist bestimmt ein total simples Problem auf das wieder keiner kommt,
weil es bestimmt ein Komma ist das fehlt oder ähnliches.
Ich schau es mir morgen nochmal an und berichte dann.

Vielen Dank bis hierher! :)

EDIT:

Oh du böser Geist!
Ich habe den Fehler gefunden und bin geschockt und peinlich berührt
das ich DAS nicht gesehen habe!

 // Datenbank auswählen 
    mysql_select_db("datenbankname") or die(mysql_error()); 



Steht im ersten Code von mir.
Datenbankname! Das war nicht search... das war eben der andere Name.
Jetzt geht es natürlich.
Ich entschuldige mich für soviel Dummheit!

________________________________________________________

Nun habe ich noch eine Frage zu dem Code,
aber weiß nicht ob ich ein weiteren Thread dafür aufmachen soll/muss.

Als Ergebniss werden nun korrekt die Daten von der ID1 angezeigt,
wie schaffe ich es nun das dort quasi steht:

Dein Ergebniss für (Name aus ID1)
VATER: ID2

Also das nur der Name aus der ID2 angezeigt wird der aber anklickbar ist.
(http://bla.de/bla.php?id=2)

MUTTER:
das selbe nur eben mit ID3

Dieser Beitrag wurde von snwblnd bearbeitet: 29. Juli 2014 - 22:28

0

#21 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 30. Juli 2014 - 09:34

Ist das da oben im Screenshot alles an Spalten? :unsure:

Wenn ja, geht es nicht. Es fehlen Verweise auf beide Eltern - es muß noch je eine Spalte für Mami und Papi dazu.

In etwa so:

ALTER TABLE search ADD mutter INTEGER UNSIGNED NULL REFERENCES search;


ohne das jetzt spezifisch auf MySQL-Syntax geprüft zu haben. Das Ganze dann nochmal für den Vater.

Dann sähe das so aus:

id	Name	Geboren_als	Vorname Mutter	Vater	...
1	Müller			Hans	3	2	...
2	Müller			Peter	8	21	...
3	Müller	Meier		Maria	14	7	...



Hier im Beispiel also offensichtlich Peter und Maria als Eltern von Hans und die Eltern von Peter und Maria weitergehend in 8/21 für Peter und 14/7 für Maria.

Mit ein bissel Laune kann man auch noch ein 'Geschlecht' hinzufügen, das macht es später ein bißchen einfacher, nach konkret "weiblichen" bzw "männlichen" Ahnen zu forschen.

Dieser Beitrag wurde von RalphS bearbeitet: 30. Juli 2014 - 09:37

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
1

#22 Mitglied ist offline   snwblnd 

  • Gruppe: aktive Mitglieder
  • Beiträge: 21
  • Beigetreten: 16. Juli 14
  • Reputation: 0

geschrieben 30. Juli 2014 - 10:09

RalphS, du bist der Hammer! :)
Ich verstehe zwar noch(!) absolut nichts von Beziehungen bei MySQL,
aber ich werde gleich mal Google befragen.
Anhand deines Beispieles sollte da ja etwas möglich sein.

Kann man eigentlich in mehr als in "search" suchen?
Weil das eine wäre die für normale Verwandschaftsverhältnisse,
dann kommt noch Weltkriegslisten oder Telefonbücher usw. dazu.
0

#23 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 30. Juli 2014 - 10:51

Ja natürlich, dafür isses doch ein Datenbanksystem. :lol:

SELECT schule.name, person.name, person.vorname FROM schule
  JOIN schulbesuch ON (schulbesuch.schule_id = schule.id)
  JOIN person ON (schulbesuch.person_id = person.id)
    WHERE person.id = 1;



gibt alle Schulen-Namen aus, die von der Person mit der ID 1 besucht wurden. Natürlich unter der Annahme, daß die Tabellen alle vorhanden und ordentlich ausgefüllt sind. :)


Lies Dich am besten mal in die (My)SQL Referenz ein - Stichwort JOINs und, wenn das mehr als nur ein paar wenige Einträge werden, auch ins Thema Indices.

Außerdem ins Thema Datenbankentwurf. Aber dazu wird wohl in der SQL-Referenz nicht so viel stehen.

Was essentiell ist und ich schon mal kurz schreiben kann:
- Schlüsselinformationen müssen(!) enthalten sein.
- Informationen können teilweise abgeleitet werden - bis auf Ausnahmen ist es zu vermeiden, sowas dann mehrfach aufzunehmen. Im Beispiel oben sind die Eltern bereits referenziert - Großeltern können daher abgeleitet werden.
- Geschwister aber nicht. Wenn es möglich sein soll, danach zu suchen, müssen die aufgenommen werden. Das ist aufwendiger als Mutter/Vater, weil jeder Eintrag natürlich mehr als nur ein Geschwister haben kann; aber andererseits hängen an Geschwistern Verwandtschaftsbeziehungen wie Onkel/Tante/Cousin/etc.

- Jede Tabelle bildet eine eigene Dimension (ist unabhängig von jeder anderen) und die Spalten IN den Tabellen sind abhängig NUR von dieser Tabelle selber. Es gibt daher keine "Mutter" / "Vater" / "Kind" Tabellen, sondern nur die eine "Person" Tabelle, wo jeder mit seinen (eigenen) Eigenschaften eingetragen wird.

- Ein Datenbanksystem hat NICHTS mit Excel zu tun. Es gibt insbesondere nur EINEN Eintrag pro, nun ja, Eintrag. Wenn da ZWEI "Hans Müller" drinstehen, dann nur genau deswegen, weil es ZWEI Personen gab, die eben HANS MÜLLER hießen. Zwei Einträge für ein-und-denselben Hans gehen NICHT.

- Deswegen ist oben im Beispiel der 'schulbesuch' ausgegliedert. Weil jede Person mehr als eine Schule besuchen kann, müßten ansonsten mehrere Einträge für EINE Person in der Tabelle angelegt werden. Das ist aber nicht zulässig.

- Und natürlich wie weiter oben schon angedeutet: Informationen so klein wie möglich/praktikabel. So gibt es keine Einzelspalte für 'Adresse', sondern midestens vier (Straße, Hausnummer, PLZ, Ort). Für Namen - grad bei Ahnenforschung - gilt dasselbe.

Glaub das reicht erstmal. :)

Dieser Beitrag wurde von RalphS bearbeitet: 30. Juli 2014 - 11:06

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
1

#24 Mitglied ist offline   snwblnd 

  • Gruppe: aktive Mitglieder
  • Beiträge: 21
  • Beigetreten: 16. Juli 14
  • Reputation: 0

geschrieben 30. Juli 2014 - 11:56

UFF! Ich denke ich werde jetzt einige Tage damit verbringen die neuen Infos zu verstehen.
Vielen Dank für deine ausführliche Antwort(en) und Zeit!

Gruß, Snwblnd
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0