Teil von  SELFPHP   Teil von  Praxisbuch
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 



 

Umfrage via MySQL




Wir haben Ihnen bereits im Kapitel 5 aufgezeigt, wie Sie mit Hilfe von PHP und einer Textdatei eine Umfrage umsetzen können. Die auf MySQL basierende Lösung lehnt sich an diese an. Sie wurde jedoch um zusätzliche Funktionen erweitert:

. Anlegen von Umfragen
. Löschen von Umfragen
. Auswahl vorhandener Umfragen
. Darstellung der Umfrageergebnisse
. Regulierung der Stimmabgabe

Die Anwendung ist in einen administrativen und einen öffentlichen Bereich unterteilt und setzt sich aus zwei Datenbanktabellen zusammen, welche in einer 1:n Beziehung zu einander stehen.

Initialisierungsdateien
. config.inc.php - in diesem Skript befinden sich die wesentlichen Zugriffsdaten und der Verbindungsaufbau zur MySQL Datenbank.
. install.php - mit Hilfe dieses Skripts sind Sie in der Lage die benötigten Datenbanktabellen für die Umfrage-Anwendung festzulegen. Sie müssen das Skript lediglich im Browseraufrufen. Achten Sie darauf das Skript anschliessend von Server zu entfernen!


Datenbanktabellen



CREATE TABLE umfrage (
  uid int(11) NOT NULL auto_increment,
  thema varchar(200) NOT NULL default '',
  PRIMAR<HighlightClose></td></tr></table>Y KEY  (uid)
)



Datensatz für die umfrage-Tabelle:


INSERT INTO umfrage VALUES (1, 'Website des Jahres?');





CREATE TABLE umfragedaten (
  sid int(11) NOT NULL default '0',
  inhalt varchar(100) NOT NULL default '',
  stimmen int(11) NOT NULL default '0'
)



Datensätze für die umfragedaten-Tabelle:


INSERT INTO umfragedaten VALUES (1, 'Flashangel', 5);
INSERT INTO umfragedaten VALUES (1, 'Flashstar', 1);
INSERT INTO umfragedaten VALUES (1, 'Flashpower', 2);




Administrationsdateien:

. umfrageadmin.htm - in dieser Datei befindet sich die Eingabemaske (Formular) zur Erzeugung einer Umfrage. Die Daten werden an das Skript erzeugeumfrage.php weiter geleitet.
. erzeugeumfrage.php - mit diesem Skript wird dafür gesorgt, dass die Umfrage-Datensätze sowohl in der umfrage-Tabelle als auch umfragedaten-Tabelle erzeugt werden. Die Verbindung der beiden Tabellen untereinander wird durch die Primärenschlüssel uid und sid hergestellt.
. umfrageloeschen.php - mit diesem Skript wird dafür gesorgt, dass die angelegten Datensätze einer Umfrage sowohl aus der umfrage-Tabelle als auch umfragedaten-Tabelle entfernt werden und dies ohne andere Umfragen innerhalb der jeweiligen Tabellen negativ zu beeinflussen oder gar unbeabsichtlich mit zu entfernen.

Hinweis: Sowohl umfrageadmin.htm als auch umfrageloeschen.php lassen sich lediglich mit Hilfe von Administrator-Zugangsdaten ausführen. Diese sind in der config.inc.php festgelegt.


Die eigentliche Umfrage setzt sich aus folgenden Dateien zusammen:
. umfrageauswahl.php - mit diesem Skript werden sämtliche in der umfrage-Tabelle enthaltenen Umfragen erfasst und dem Besucher zur Verfügung gestellt. Die Auswahl verweist hierbei auf die umfrage.php.
. umfrage.php - mit diesem Skript ist der Besucher in der Lage seine Stimme abzugeben. Mit Hilfe eines Cookies wird darauf geachtet, dass für jeder zur Verfügung stehende Umfrage lediglich eine Stimme abgegeben werden kann.
. ergebnis.php - mit diesem Skript ist der Besucher in der Lage sich die aktuellen Umfrageergebnisse zu betrachten.

Da sich die Skripte umfrage.php und ergbnis.php von Ihrem Aufbau her kaum von denen aus Kapitel 5 unterscheiden, werden im folgenden lediglich die Skript für die Administration der Umfrage vorgestellt.


1. umfrageadmin.htm



<html>
<head>
<title>Umfrage - Administration</title>
<link rel='stylesheet' type='text/css' href='css/umfrage.css'>
</head>
<body>
<img src='bild/umfragelogo.gif' width='506' height='62'><br>
<h3>Atomic-Umfrage [Administration]</h3>
<form method="post" action="erzeugeumfrage.php">
  <p>Thema:
    <input type="text" name="uthema" maxlength="100" size="30">
  </p>
  <p>1. Auswahl:
    <input type="text" name="uinhalt1" maxlength="100" size="30">
    <br>
    2. Auswahl:
    <input type="text" name="uinhalt2" maxlength="100" size="30">
    <br>
    3. Auswahl:
    <input type="text" name="uinhalt3" maxlength="100" size="30">
    <br>
    4. Auswahl:
    <input type="text" name="uinhalt4" maxlength="100" size="30">
    <br>
    5. Auswahl:
    <input type="text" name="uinhalt5" maxlength="100" size="30">
    <br>
    6. Auswahl:
    <input type="text" name="uinhalt6" maxlength="100" size="30">
    <br>
    7. Auswahl:
    <input type="text" name="uinhalt7" maxlength="100" size="30">
    <br>
    8. Auswahl:
    <input type="text" name="uinhalt8" maxlength="100" size="30">
  </p>
  <p>Adminstrator:
    <input type="text" name="fadmin" size="20" maxlength="40">
    Passwort:
    <input type="password" name="fpwd" size="20" maxlength="40">
  </p>
  <p>
    <input type="submit" name="anlegen" value="Umfrage Anlegen">
     <input type="reset" name="Löschen" value="Reset">
  </p>
</form>
<p>
[ <a href="umfrageauswahl.php">Zur Umfrageauswahl</a> ] -
[ <a href="umfrageloeschen.php">Umfrage Entfernen</a> ]</p>
</body>
</html>




2. erzeugeumfrage.php



<html>
<head>
<title>Umfrage - Erzeugt</title>
<link rel='stylesheet' type='text/css' href='css/umfrage.css'>
</head>
<body>
<img src='bild/umfragelogo.gif' width='506' height='62'><br>
<h3>Atomic-Umfrage [Administration]</h3>
<?php

require ("config.inc.php");

if (isset(
$_POST['anlegen']) && $_POST['fadmin'] == $admin && $_POST['fpwd'] == $pwd) {

foreach(
$_POST as $key=>$element) {
    if (!empty(
$element) && $key == "uthema") {
        if (
mysql_query("INSERT INTO umfrage VALUES ('', '$element')")) {
        
$satz mysql_query("SELECT uid FROM umfrage ORDER BY uid DESC LIMIT 0,1");
        
$row mysql_fetch_object($satz);
        }
    }
    if (!empty(
$element) && $key != "uthema" && $key != "anlegen" && $key != "fadmin" && $key != "fpwd") {
        
mysql_query("INSERT INTO umfragedaten VALUES ('$row->uid', '$element',0)");
        
$anzahl++;
    }
}

echo
"<table width='300'>
  <tr>
    <td align='center' colspan='3'>- UMFRAGE ERZEUGT - <br>
      Die Umfrage $uthema wurde erzeugt.<br>
     </td>
  </tr>
</table>"
;

} else {
    echo
"<table width='300'>
  <tr>
    <td align='center' colspan='3'>- FEHLER - <br>
      Umfrage konnte nicht erzeugt werden.<br>
      Versuchen Sie es bitte erneut!<br>
      <a href='javascript:history.back()'>Zur&uuml;ck</a></td>
  </tr>
</table>"
;
}

?>
<p>
[ <a href="umfrageauswahl.php">Zur Umfrageauswahl</a> ] -
[ <a href="umfrageadmin.htm">Zur Umfrage-Administration</a> ]</p>
</body>
</html>




3. umfrageloeschen.php



<html>
<head>
<title>Atomic-Umfrage [Löschen]</title>
<link rel='stylesheet' type='text/css' href='css/umfrage.css'>
<link rel='stylesheet' type='text/css' href='css/main.css'>
</head>
<body>
<img src='bild/umfragelogo.gif' width='506' height='62'><br>
<h3>Umfrage - Löschen</h3>
<form method='post' action='<?php echo $PHP_SELF?>'>
<p>
<?php

require ("config.inc.php");

if (isset(
$_POST[umfrageloeschen]) && !empty($ergebnis) && $_POST['fadmin'] == $admin && $_POST['fpwd'] == $pwd) {

$tab_umfrage "DELETE FROM umfrage WHERE uid=$ergebnis";
$tab_daten "DELETE FROM umfragedaten WHERE sid=$ergebnis";

if (
mysql_query($tab_umfrage) && mysql_query($tab_daten)) {
    echo 
"Umfrage wurder erfolgreich entfernt!<p>\n";
    unset(
$ergebnis);
}

} else {
    echo 
"Bitte wählen Sie...<br>Hinweis: Adminname und Passwort sind erforderlich!<p>\n";
}

$satz mysql_query("SELECT * FROM umfrage");

echo 
"<table width='300'>
  <tr align='left'>
    <td class='latestnews' colspan='2'>&nbsp;Umfragen</td>
  </tr>"
;

while (
$row mysql_fetch_array($satz)) {
extract($row);
echo 
"
  <tr>
    <td colspan='2' class='autor'>
      <table width='100%' border='0' cellspacing='2' cellpadding='2'>
        <tr>
          <td class='autorblack' width='280'>$thema</td>
          <td class='autor' width='20'><input type='radio' name='ergebnis' value='$uid'></td>
        </tr>
      </table>
    </td>
  </tr>"
;

}

echo 
"</table>";

?>
</p>
<p>Adminstrator:
    <input type="text" name="fadmin" size="20" maxlength="40">
    Passwort:
    <input type="password" name="fpwd" size="20" maxlength="40">
</p>
<input type='submit' name='umfrageloeschen' value='Umfrage Entfernen'>
</form>
<p>
[ <a href="umfrageauswahl.php">Zur Umfrageauswahl</a> ] -
[ <a href="umfrageadmin.htm">Zur Umfrage-Administration</a> ]
</p>
</body>
</html>



Dem Besucher stellt sich die Web-Anwendung, wie folgt dar.


 



 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de