Personendatenbank

yui
Beiträge: 140
Registriert: Di 17. Jun 2003, 17:55
Kontaktdaten:

Personendatenbank

Beitrag von yui » Di 2. Dez 2003, 19:55

Tach zusammen,

ich komme mit meinem Projekt gut voran und durch das regelmässige Arbeiten mit Contenido erschliesst sich mir immer mehr die Funktionsweise. :)

Ich stehe jetzt vor einer Aufgabe von der ich nicht weiss, wie ich sie am elegantesten lösen soll:

Ich arbeite für einen bundesweiten Verein, der regionale Unterverbände hat und hier gibt es Menschen, die auf verschiedene Weise erreichbar sind.

Bisher wurden die Daten in eine Tabelle eingetragen, so richtig schön Hardcore-HTML:

Bundesland -> PLZ -> Ort -> Name -> Email -> Telefonnummer usw...

Jedes Bundesland stellt dabei eine Kategorie dar.

Da nun schon php und MySQL in Einsatz sind würde ich das natürlich gerne mit einer Datenbank realisieren und zwar so, dass die Eingabe dieser Daten NICHT via phpmyadmin läuft sondern über das CMS ich weiss nur nicht, ob Contenido das überhaupt leisten kann.

Hat jemand von Euch eine Idee, wie man das am besten löst?

Danke!
yui

Black Widow
Beiträge: 174
Registriert: Mi 22. Okt 2003, 11:08
Kontaktdaten:

Beitrag von Black Widow » Mi 3. Dez 2003, 09:11

Hi yui!

Also das ist generell schon möglich!
Du müsstest nur nen Modul schreiben mit einem Formular darauf, dass alle benötigten Daten aufnimmt. Dann könntest Du das Formular z.B. auf die gleiche Seite schicken und im Modul einfach abfragen, ob die entsprechenden Parameter (aus dem Formular gesetzt sind). Wenn nicht, zeigst Du halt das Formular an, wenn schon, dann trägst Du diese Daten in die DB ein (musst Dich natürlich etwas mit SQL auskennen, aber da gehe ich jetzt mal von aus!!).
Falls Du es so realisieren möchtest, prefix'e die Parameter am Besten, damit Du nicht ausversehen Contenido interne überschreibst. Also z.B. yui_name, yui_email, ... etc.

Gruß,
Black Widow

mtealc
Beiträge: 22
Registriert: Sa 29. Nov 2003, 03:22
Kontaktdaten:

Beitrag von mtealc » So 7. Dez 2003, 03:50

zum auslesen der adressen würde ich ein modul schreiben!

aber zum eintragen der daten würde ich mir ein kleines script schreiben
das mir die daten in die DB schiebt!

Es muss net immer alles über contenido laufen!

gruss micha

Black Widow
Beiträge: 174
Registriert: Mi 22. Okt 2003, 11:08
Kontaktdaten:

Beitrag von Black Widow » Mo 8. Dez 2003, 08:54

Hi!

Also da stellt sich jetzt dann die Frage, WER darauf alles zugreifen dürfen soll. (komisches deutsch :lol:)
Wenn es nur lokal funktionieren muss, dann kann man das natürlich über ein kleines Script machen, wenn man aber auch von extern Daten eintragen/verwalten möchte, bietet es sich z.B. an, das Script in einen geschützten Bereich auf der Contenido-Seite zu legen, oder noch besser, es ins Backend zu integrieren.
Dann könnte man es von überall administrieren.

Ist jetzt ne Frage was da gewünscht wird ....


Black Widow

Bruder Barnabas
Beiträge: 5
Registriert: Mi 24. Dez 2003, 22:11
Kontaktdaten:

Beitrag von Bruder Barnabas » Mi 24. Dez 2003, 22:15

Hi leute,
ich bräuchte so ein Modul auch!
Hat jemand schon sowas?
Ich kann das leider nicht selbst - da scheiterts schon am einfachsten PHP ;)

Ich hab ne Feuerwehr Homepage und bräuchte auch so eine Personendatenbank!

Wär toll, wenn jemand sowas hat!

Ciao
Basti

yui
Beiträge: 140
Registriert: Di 17. Jun 2003, 17:55
Kontaktdaten:

Beitrag von yui » So 28. Dez 2003, 12:55

Hi Black Widow,

ein kleiner zeitlicher Abstand hilft manchmal, den Überblick wieder zu bekommen. Bei mir leider nicht...

Man soll von aussen auf die Daten zugreifen und es ist nur nötig, die PLZ abzufragen.

Wie man eine SQL-Abfrage macht weiss ich, ich scheitere daran, die in die Contenido-Seite zu integrieren. Das "DirektModul" kann da wohl weiterhelfen, nur was kommt dann?

Inzwischen völlig kopflos grüsst

yui

Black Widow
Beiträge: 174
Registriert: Mi 22. Okt 2003, 11:08
Kontaktdaten:

Beitrag von Black Widow » Mo 29. Dez 2003, 15:29

Hi yui!

Was ist denn bitte das "DirektModul"???
Wie bereits erwähnt, die Frage ist immer noch, wer die Daten eintragen darf???

Falls Du noch nicht weißt wie sich ein Modul zusammensetzt - ganz einfach:
Im Input steht ganz normaler php Code (bereits duch <?php eingeleitet!), mit dem Du ein Formular erzeugen kannst. Ganz normal, wie jedes andere Formular auch, aber ohne <form>-Tag! Dies wird dann in der Modulkonfiguration im Contenido-Backend angezeigt!
Im Output steht wiederum php-Code (noch nicht eingeleitet!! Also erstmal html und muss auch im html-Modus enden!!!) der dann das generiert, was nachher angezeigt wird. Das wird einfach an die Stelle gesetzt, an der der entsprechende Container steht!

Mein Vorschlag für Dein Prob wäre:
Du schreibst ein Modul (PHP und SQL Kenntnisse vorausgesetzt), das ein Formular mit allen nötigen Eingabefelder ausgibt. Beim Abschicken schickt es die Daten an ich selber (also die gleiche Seite) und das Modul fragt ab, ob die entsprechenden Formular-Daten existieren oder nicht. Wenn ja (also es wurde ein Formular ausgefüllt und abgeschickt) schreibt es die Daten in die DB und wenn sie nicht existieren, dann wird halt das Formular angezeigt!
Somit hast Du die ganze Sache schön in einem Modul!
Dann setzt Du das Modul in ein Template und erzeugst einen Artikel mit diesem Template und schützt den!!
Dann kannst Du den Benutzern, die eben Daten eintragen dürfen das Recht geben, diese Seite zu betreten!

Gruß,
Black Widow

macangelo
Beiträge: 12
Registriert: Fr 26. Dez 2003, 21:34
Kontaktdaten:

me too ;-)

Beitrag von macangelo » Mo 29. Dez 2003, 23:16

Ich schließe mich an, ich brauche für einen Verein auch so eine Personendatenbank. Leider kann ich das nicht selbst.

Wer toll, wenn das jemand schreiben könnte.

einen schönen Abend

Macangelo

yui
Beiträge: 140
Registriert: Di 17. Jun 2003, 17:55
Kontaktdaten:

Beitrag von yui » Do 1. Jan 2004, 13:58

Ahoi Black Widow,

das was Du oben schreibst ist genau das, was ich will. Um diese Aufgabe aber lösen zu können muss ich meinen einzigen erstzunehmenden Neujahrsvorsatz auch in die Tat umsetzen: PHP lernen. 8)

Happy New Year!

yui

Black Widow
Beiträge: 174
Registriert: Mi 22. Okt 2003, 11:08
Kontaktdaten:

Beitrag von Black Widow » Fr 2. Jan 2004, 13:47

Hi yui!

Frohes neues Jahr!!

Hab mich mal kurz hingesetzt und Dir mal ne kleine Stütze geschrieben:
Hangel Dich daran mal lang, so KÖNNTE es z.B. aussehen. Ist natürlich jetzt noch ziemlich spartanisch - musst Du selber noch erweitern!
Wichtig, musste in der cfg_sql.inc.php den Namen Deiner Tabelle eintragen (siehe SQL-Query) und in der Tabelle sequences einen neuen Eintrag machen, damit Du eine laufende Nummer bekommst (siehe $nextID).

Vielleicht hilft es Dir ja ... brauchst einfach nur nen neues Modul erstellen und folgenden Code in den Output kopieren (ist nicht auf Fehler getestet!!!):

Code: Alles auswählen

<?php
/****************************************************
** Contenido 4.4.x Modul
** OUTPUT - Darstellung
**
** Name:        Personendatenbank
** Autor:       Black Widow
** Version:     0.1b
** Erstellt:    02.01.2004
** Modifiziert: 02.01.2004
*****************************************************/

?>
<table>
		<tr align="center">
			<td>Personendatenbank</td>
		</tr>
		<tr><td>&nbsp;</td></tr>

<?php
if (isset($_POST["tg_newentry"]))
{
	$db_Connect = new DB_Contenido;
	$nextID = $db_Connect->nextid($cfg['sql']['sqlprefix']."_tg_personen");
	
	$sql_insertEntry =  "INSERT INTO ".$cfg["tab"]["personen"]."
						 VALUES (".$nextID.",
								 '".$_POST["nachname"]."',
								 '".$_POST["vorname"]."',
								 '".$_POST["adresse"]."',
								 '".$_POST["plz_ort"]."';";
		
	$db_Connect->query($sql_insertEntry);
	if ($db_Connect->affected_rows() <= 0)
		echo("<tr><td style=\"color:#FF0000;\"><b>Die Daten konnten nicht gespeichert werden!</b></td></tr>");
	else
		echo("<tr><td style=\"color:#FF0000;\"><b>Die Daten wurden gespeichert!</b><br/></td></tr>");
}
else
{
?>
		<tr>
			<td>
				So hier steht etwas Text ... z.B. Ihre Angaben werden vertraulich behandelt oder so ...<br/><br/><br/><br/>
			</td>
		</tr>
		<tr>
			<td>
				<form action="<?php echo($sess->url("front_content.php")); ?>" method="post">
					<input type="hidden" name="idcatart" value="<?php echo($idcatart); ?>" />
					<input type="hidden" name="tg_newentry" value="1" />
					
					<table>
						<tr><td width="10" sytle="color:#FF0000;">*</td><td width="160">Nachname:</td><td width="200"><input type="text" name="nachname" size="30" value="" /></td></tr>
						<tr><td width="10" sytle="color:#FF0000;">*</td><td width="160">Vorname:</td><td width="200"><input type="text" name="vorname" size="30" value="" /></td></tr>
						<tr><td width="10" sytle="color:#FF0000;">&nbsp;</td><td width="160">Adresse:</td><td width="200"><input type="text" name="adresse" size="30" value="" /></td></tr>
						<tr><td width="10" sytle="color:#FF0000;">&nbsp;</td><td width="160">PLZ/Ort:</td><td width="200"><input type="text" name="plz_ort" size="30" value="" /></td></tr>
						
						<tr><td colspan="3" align="right">
						      <input type="reset" value="Zurücksetzen" onclick="return confirm('Möchten Sie die Eingaben wirklich zurücksetzen?');"/>&nbsp;&nbsp;
						      <input type="submit" value="Eintragen" onclick="return confirm('Möchten Sie Ihre Eingaben wirklich übernehmen?');"/>
						</td></tr>
						<tr><td colspan="3" sytle="color:#FF0000;">* = obligatorisch</td></tr>
					</table>
				</form>
			</td>
		</tr>
<?php
}
?>
</table>
Gruß,
Black Widow

yui
Beiträge: 140
Registriert: Di 17. Jun 2003, 17:55
Kontaktdaten:

Beitrag von yui » Fr 2. Jan 2004, 15:25

Hi Black Widow,

vielen Dank für Deinen Beitrag. Diese Eingabemöglichkeit kann ich nachvollziehen.

Was im Moment jedoch dringender ist, ist die Ausgabe, d.h. die Anzeige nach Bundesländern. Das Modul "Hauptnavigation" kann da ein Weg sein: Pro Seite wird ausgewählt, was angezeigt werden soll.

Ich werde mal etwas experimentieren.

Schönes Wochenende!

yui[/b]

Black Widow
Beiträge: 174
Registriert: Mi 22. Okt 2003, 11:08
Kontaktdaten:

Beitrag von Black Widow » Fr 2. Jan 2004, 15:44

Die Hauptnavigation?
Was hat denn die damit zu tun? :lol:

Also bei der Ausgabe (weiß ja nicht wie sie später funktionieren soll) würd ich folgendes vorschlagen: Du hast nen Modul, das oben auf der Seite nen Pulldown-Menü hat, mit sämtlichen Bundesländern. Sobald jemand eines ausgewählt hat, suchst Du aus der Datenbank alle Einträge mit diesem Bundesland und gibst sie aus! Dazu musst Du natürlich irgendwie in der Datenbank stehen haben, wer aus welchem BL kommt! Dazu würde ich in der Eingabemaske (zum Eintragen) das gleiche Pulldownmenü anlegen, das einfach ne Zahl für jedes BL speichert. Z.B. Hamburg = 1, Berlin = 2, NRW = 3, usw... .

Gruß,
Black Widow

yui
Beiträge: 140
Registriert: Di 17. Jun 2003, 17:55
Kontaktdaten:

Beitrag von yui » Fr 2. Jan 2004, 16:01

Genau so soll das funktionieren! :D

Das mit der Hauptnavigation war so eine Krücke, vergiss es.... Ich habe mal wieder zu kompliziert gedacht. (dabei wollte ich mir das dieses Jahr abgewöhnen. :roll:

yui

Black Widow
Beiträge: 174
Registriert: Mi 22. Okt 2003, 11:08
Kontaktdaten:

Beitrag von Black Widow » Fr 2. Jan 2004, 16:10

Na denn, dann haste ja jetzt schon zwei Vorsätze ... :wink:

yui
Beiträge: 140
Registriert: Di 17. Jun 2003, 17:55
Kontaktdaten:

Ich raffe es nicht.

Beitrag von yui » Mi 7. Jan 2004, 14:55

Mit dem folgenden Script kann eine Postleitzahl ausgewählt werden. Die Abfrage soll jedoch lauten: "Zeige alle Datensätze, deren PLZ mit einer x anfängt und gebe die in der Datei personen.php aus".

Kann mir jemand auf die Sprünge helfen?

Schöne grüsse
yui

Code: Alles auswählen

  <select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
    
                  <option>Personen</option>
    
                    <option>---------------------------</option>
    
                    <?php $query =mysql_query("SELECT * FROM con_personen");  

while ( $row = mysql_fetch_array($query)){

                     echo "<option value=\"".$row['PLZ']."\">".$row['PLZ']."</option>";

}

                   ?> 
  </select> 

Gesperrt