WinFuture-Forum.de: Daten Speicher - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Daten Speicher in php


#1 Mitglied ist offline   MaliMaster 

  • Gruppe: aktive Mitglieder
  • Beiträge: 907
  • Beigetreten: 10. April 02
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Deutschland

geschrieben 01. Dezember 2004 - 14:01

ich möchte ne tabelle generieren lassen in denen die mitglieder eines vereines anklicken können ob sie am freitag zum training kommen und das die nächsten 4 wochen.. die tabelle wird auch richtig generiert usw nur das mit dem speicher und laden bekomm ich nich hin, eigentlich is es mir egal ob nu in ner datei oder mysql..

ich hab mir überlegt ich lege 2 tabellen an:

id(autowert), name (der person)
id,datum,wert(ja,nein angeklickt)

und der dropdown list gebe ich name über das array was ich am anfang über die tabelle einlesen will, und halt für jedes datum und jede person einen anderen is ja klar..

ich verstehe einfach nich von der logik wie ich die daten speichern muss..


<?php
class Kalender
{
	private $personen;
	private $anzahl;
	
	function __construct($personen, $anzahl = 4)
	{
         $this->personen = $personen;
         $this->anzahl = $anzahl;
	}
	
	}
	
	static function freitage($durchlauf = 0)
	{
  for($i=1; $i<=1; $i++)
  {
 	 do
 	 {
    $stamp = mktime(date("H"), date("i"), date("s"), date("m"), date("d")+$durchlauf, date("Y"));
    $date_short = date("D", $stamp);
    $date_long = date("d.m.Y", $stamp);
    $durchlauf++;
 	 }
 	 while($date_short != 'Fri');
 	 return $date_long;
  }
	}
	
	function tabellenkopf()
	{
         echo "<center>";
         echo "<table border='1' width='70%'>";
         echo "<tr><td></td>";
  for ($i=0; $i != $this->anzahl;$i++)
  {
          echo "<td><center>";
 	 $freitag = Kalender::freitage($durchlauf);
 	 echo"$freitag</td></center>";
          $durchlauf = $durchlauf + 7;
  }
  echo "<tr><td></td>";
  for ($i=0; $i != $this->anzahl;$i++)
  {
          echo '<td><center>Ja/Nein</center></td>';
  }
  echo '</tr>';;
	}
	
	function tabellenmitte()
	{
         echo "<form method='post'>";
         $anzahl = $this->anzahl;
  $anzahlpersonen = count($this->personen);
  for ($i=0; $i != $anzahlpersonen;$i++)
  {
          $durchlauf = 0;
          if ($i%2 == 0)
          {
          echo "<tr bgcolor='green'>";
          }
          else{
 	 echo "<tr>";}
 	 echo "<td>".$this->personen[$i]["name"]."</td>";
 	 for ($i1=0; $anzahl != $i1;$i1++)
 	 {
           $freitag = Kalender::freitage($durchlauf);
           echo "<td><center><select name='".$i." ".$freitag."'>
    <option value='true'>Ja</option>
    <option value='false'>Nein</option>
    </center></td>";
           $durchlauf = $durchlauf + 7;
 	 }
 	 echo "</tr>";
  }
	}
	
	function tabellenende()
	{
  echo "</table>";
  echo "<center>";
  echo "<br><input type='submit' name='submit' value='Daten Speichern'>";
  echo "</form>";
  echo "</center>";
  echo "</center>";
	}
}
?>
<?php
////////////////////////////////////////////////////////////////////////////////
include_once("kalender.inc");
////////////////////////////////////////////////////////////////////////////////
$con = mysql_connect("localhost","","");
mysql_select_db("volleydatenbank",$con);

$name = "SELECT name FROM volley_personen;";
$nameerg = mysql_query($name, $con);

$i=0;
while ($arraynew = mysql_fetch_array($nameerg))
{
	$array[$i]["name"] = $arraynew["name"];
	$i++;
}

$neukalender = new Kalender($array);
$neukalender->tabellenkopf();
$neukalender->tabellenmitte();
$neukalender->tabellenende();
mysql_close($con);
?>


soweit bin ich halt aber mit speicher is da noch nichts, ich kann halt grade mal die namen laden=( und komme einfach nich weiter
0

Anzeige



#2 Mitglied ist offline   ænima 

  • Gruppe: aktive Mitglieder
  • Beiträge: 62
  • Beigetreten: 30. Oktober 03
  • Reputation: 0

geschrieben 07. Dezember 2004 - 01:14

guten abend,

ich sag gleich vorweg, es ist spät und ich kann dir jetzt nur so ne relativ allgemeine antwort geben, falls es noch fragen gibt, morgen könnt ich dann auch code schreiben... :huh:

dein datenmodell ist nicht ganz richtig, deswegen fällt dir auch die logik zum speichern schwer.

also du hast in tabelle 1 ein feld id und ein feld name. id ist dein primary key, jedem namen wird per auto_increment eine eigene, unique id zugewiesen. soweit ist alles in ordnung.

in deiner 2. tabelle hast du jetzt id, datum und wert. datum und wert sind klar, und in deinem id-feld willst du bestimmt die id der jeweiligen personen ablegen. das geht auch, aber du hast in der tabelle nun keinen primary key mehr. Beispiel: Personen Klaus (id 5) und Sepp (id 7) kommen die nächsten 3 freitage zum training, deine tabelle enthält folgende daten:

id, datum, wert

5,12.12.2004,ja
5,19.12.2004,ja
5,26.12.2004,ja
7,12.12.2004,ja
7,19.12.2004,ja
7,26.12.2004,ja

erkennst du das problem? du kannst deine einträge nicht mehr eindeutig identifizieren, weil in jedem feld die einträge mehrmals vorkommen. daraus folgt: du brauchst ein zusätzliches feld für einen primary key! mein vorschlag:

id, pid, datum, wert

id ist wieder ein auto_increment wert, der als primary key fungiert und jeden eintrag eindeutig ansprechbar macht. in pid speicherst du dann die personen id ab, usw.

soweit klar? wenn nicht, weiterfragen ;D
0

Thema verteilen:


Seite 1 von 1

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