Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) datensätze, db, formular, mehrere (edit)
 
Reply to this topicStart new topicStart Poll
> Probleme mit Formular, Mehrere Datensätze eintragen ?!?
fexal
  Geschrieben am: Mo 16.01.2006, 19:54
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 5
Mitglied seit: 17.12.2005


Hallo Leutz,

habe wieder mal ein Problem. Ich habe ein Formular, in welches ich eingebe, wieviele Spieltag in die Datenbank eingegeben werden soll. Anschließen wird das Formular wie gewünscht erstellt. Wenn ich jetzt meine Daten eingebe und anschließend in die DB speichern will. Schreibt er mir nur den letzten Eintrag hinein. Ich weiß ich kann das irgendwie mit einer Schleife machen, aber ich komme einfach nicht zurecht. Wäre nett, wenn Ihr mir helfen könnt. Danke im voraus.

CODE

<?php
include ("zugriff.inc.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Spielplan eingeben:</title>
<style type="text/css">
<!--
@import url("style.css");
.Stil1 {font-weight: bold}
-->
</style>
</head>

<body>

<?php
if (empty($action)) {
?>
<form action="form.php" method="post" <?php echo $_SERVER['PHP_SELF']; ?>>
<input type="text" name="anzahl">
<input type="hidden" name="action" value="send">
<input type="submit" value="Eintragen">
</form>

<?php

}

elseif ($action=="send") {

$i=0;

echo "<table border='1'>";
?><form action="form.php" method="post" <?php echo $_SERVER['PHP_SELF'];?>>
<input type="hidden" name="action" value="insert">
<?php
    while ($i < $_POST['anzahl']) {
          $i++;
          echo "<td>" . "Spieltag: " . "<input type='text' name='heim' size='1' value=$i>";
          echo "<td>" . "Tag: " . "<select name='wochentag' size='1'>" .
                           "<option name='tag' value='Montag'>Montag</option>" .
                           "<option name='tag' value='Dienstag'>Dienstag</option> " .
                           "<option name='tag'value='Mittwoch'>Mittwoch</option> " .
                           "<option name='tag' value='Donnerstag'>Donnerstag</option> " .
                           "<option name='tag' value='Freitag'>Freitag</option> " .
                           "<option selected name='tag' value='Samstag'>Samstag</option> " .
                           "<option name='tag' value='Sonnatg'>Sonntag</option> " .
                       "</select> " ."</td><td>" . "Datum: " . "<input type='text' name='tag' size='2'>" . "<input type='text' name='monat' size='2'>" . "<input type='text' name='jahr' size='4'>".
                       "</td><td>" . "Heim: " . "<input type='text' name='heim'>" .
                       "</td><td>" . "Gast: " . "<input type='text' name='gast'>" .
                       "</td><td>" . "Anstoss: " . "<input type='text' name='anstoss' size='5'>" . " Uhr" .
                       "</td></tr>";

        }
echo "<tr><td>" . "<select name='mannschaft' size='1'>" .
                           "<option name='mannschaft' value='erste'>I. Mannschaft</option>" .
                           "<option name='mannschaft' value='zweite'>II. Mannschaft</option>" .
                           "<option name='mannschaft' value='dritte'>III. Mannschaft</option>" .
                           "<option name='mannschaft' value='senioren'>Senioren</option>" .
                           "<option name='mannschaft' value='damen'>Damen</option>" .
                           "<option name='mannschaft' value='ajun'>A- Junioren</option>" .
                           "<option name='mannschaft' value='bjun'>B- Junioren</option>" .
                           "<option name='mannschaft' value='cjun'>C- Junioren</option>" .
                           "<option name='mannschaft' value='djun'>D- Junioren</option>" .
                           "<option name='mannschaft' value='ejun'>E1- Junioren</option>" .
                           "<option name='mannschaft' value='e2jun'>E2- Junioren</option>" .
                           "<option name='mannschaft' value='fjun'>F- Junioren</option>" .
                           "<option name='mannschaft' value='gjun'>G- Junioren</option>" .
                       "</select>";
echo "<td>" . "<input type='submit' value='Abschicken'>" . "</td></tr>";
echo "</table>";
echo "</form>";

} elseif ($action=="insert") {

echo "insert";

$sql="INSERT INTO bw_spieltag " .
 "VALUES ('', '$_POST[spieltag]', '$_POST[wochentag]', '$_POST[tag]', '$_POST[monat]', '$_POST[jahr]'," .
 "'$_POST[heim]', '$_POST[gast]', '$_POST[anstoss]', '$_POST[heimtore]', '$_POST[gasttore]', '$_POST[heimtore_hz]', '$_POST[gasttore_hz]', '$_POST[mannschaft]')";

echo $sql;
mysql_query($sql);

}
?>

</body>
</html>



Schaut mal ob Ihr damit was anfangen könnt. danke
Top
PMEmail Poster
Top
 
 
radarin
GIHD mbH
#2 Geschrieben am: Di 17.01.2006, 23:42 (+27:48)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


also fexal, ich rekapituliere mal, ob ich dich richtig verstanden habe.

du gibst in einem formular an, wieviele datensätze du erstellen willst. bei 3 erhällst du auf der folgeseite ein formular mit den feldern 'titel1', 'info1', 'text1', 'titel2', 'info2', 'text2', 'titel3', 'info3', 'text3'. Mit dem Submit sollen dann 3 Datensätze erstellt werden, mit den spalten 'titel', 'info', 'text' in der tabelle.

Soweit richtig?

der gedanke mit der schleife ist naheliegend. du brauchst mal eine variable in der du die die anzahl ds merkst.

1. durchgang, insert alle felder mit zusatz 1
2. durchgang, insert alle felder mit zusatz 2
3. durchgang, insert alle felder mit zusatz 3

bei deinem formular ist mir aufgefallen, dass alle felder für 'heim' den selben namen haben. das geht natürlich nicht, jedes feld in einem form muss einen eindeutig eigenen namen haben

CODE

while ($i < $_POST['anzahl']) {
         $i++;
         echo "<input type='text' name='begriff".$i."' size='20'><br>
         <TEXTAREA NAME='text".$i."' ROWS='5' COLS='40' WRAP='virtual'></TEXTAREA><br><br>
   <input type='hidden' name='anzahl' value='$_POST[anzahl]'>
   ";
   }



beim speichern der daten folgt nun das selbe 'while', jedoch mit dem 'insert'. das problem ist bei jedem durchlauf $_POST['text1'], $_POST['text2'] mit dem korrekten inhalt zu generieren. da bin ich noch am probieren...
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 
radarin
GIHD mbH
#3 Geschrieben am: Mi 18.01.2006, 00:14 (+00:32)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


so, den rest hab ich jetzt auch hingekriegt

CODE

$i=0;
 while ($i < $_POST['anzahl']) {
         $i++;
  $query = "INSERT INTO daten".
        " (begriff,text)".
     " VALUES ".
  "('".$_POST[begriff.$i]."','".$_POST[text.$i].
     "') ";
 echo "<p>".$query;
 //string übermitteln
 $insertds = mysql_query($query);
   }




habs getestet, bei mir funktioniert es biggrin.gif
bei jedem durchlauf wird das entsprechende feld aus dem form eingesetzt.
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 
fexal
#4 Geschrieben am: Mi 18.01.2006, 01:17 (+01:02)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 5
Mitglied seit: 17.12.2005


Danke für die Hilfe, aber bin irgendwie mit deiner Antwort überfragt...
Könntest du es mir bitte noch ein bisschen näher erläutern.

Bin doch noch so jung in Sachen PHP und MySQL...

Danke Danny unsure.gif
Top
PMEmail Poster
Top
 
radarin
GIHD mbH
#5 Geschrieben am: Mi 18.01.2006, 01:23 (+00:06)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


Was verstehst du denn nicht..?
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 
radarin
GIHD mbH
#6 Geschrieben am: Mi 18.01.2006, 01:33 (+00:09)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


am besten du probierst es einfach selber aus. erstelle in deiner datenbank die tabelle 'daten'. z.b. in phpmyadmin folgenden code ausführen:

CODE

CREATE TABLE `daten` (
 `begriff` varchar(50) collate latin1_german1_ci NOT NULL default '',
 `text` text collate latin1_german1_ci NOT NULL,
 `id` int(11) NOT NULL auto_increment,
 PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci AUTO_INCREMENT=1;


erstelle eine neue seite mit dem namen 'multiform.php' und kopiere folgenden cor rein:

CODE

<a href="multiform.php">start</a>

<?php
$dbhost = 'localhost';
$dbname = 'datenbankname';
$dbuser = 'user';
$dbpasswd = 'passwort';
?>

<?php
$database = mysql_connect($dbhost, $dbuser, $dbpasswd);
mysql_select_db($dbname, $database);
?>


<?php

if(isset($_GET['modus'])){
 $modus = $_GET['modus'];
}else{
 $modus = "anzahl";
}



if ($modus=="anzahl") {
?>
<form action="multiform.php?modus=form" method="post">
<input type="text" name="anzahl" size='2'>
<input type="submit" value="Formular">
</form>

<?php

}

elseif ($modus=="form") {

$i=0;


?><form action="multiform.php?modus=insert" method="post">
<?php
   while ($i < $_POST['anzahl']) {
         $i++;
         echo "<input type='text' name='begriff".$i."' size='20'><br>
         <TEXTAREA NAME='text".$i."' ROWS='5' COLS='40' WRAP='virtual'></TEXTAREA><br><br>
   <input type='hidden' name='anzahl' value='$_POST[anzahl]'>
   ";
   }

echo "<input type='submit' value='Abschicken'>";
echo "</form>";

}


elseif ($modus=="insert") {
echo "anz. ".$_POST['anzahl'];
$i=0;
 while ($i < $_POST['anzahl']) {
         $i++;
  $query = "INSERT INTO daten".
        " (begriff,text)".
     " VALUES ".
  "('".$_POST[begriff.$i]."','".$_POST[text.$i].
     "') ";
 echo "<p>".$query;
 //string übermitteln
 $insertds = mysql_query($query);
   }
 
 
 
 
 echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=multiform.php?modus=glossar\">";


}
?>



<?php
if ($modus == 'glossar'){
 $sql = "SELECT *".  
      " FROM daten".
   " ORDER BY begriff ASC";
 $result = mysql_query ($sql);
 $num_rows = mysql_num_rows($result);
 $i = 1;
 ?>
 <table border="0" cellspacing="0" cellpadding="0">
 
 <?php
 while($results = mysql_fetch_array($result,MYSQL_BOTH))
 {
 ?>
   <tr>
<td valign="top"><a name="<?php echo $results[begriff];?>"></a><p class="begriff"><?php echo $results[begriff];?></td>
   <td><img src="../img/eff/leer.gif" width="30" height="1" border="0"></td>
<?php

?>

   <td valign="top"><p class="text"><?php //echo autoLink($str);?><?php echo str_replace(chr(10),"<br>",$results[text]);?></td>
<td><img src="../img/eff/leer.gif" width="30" height="1" border="0"></td>
   <td valign="top"><p class="text"><a href="index.php?modus=edit&id=<?php echo $results[id];?>" class="link"><img src="../img/buttons/ok.gif" border="0"></a></td>
<td valign="top"><p class="text"><a href="index.php?modus=del&id=<?php echo $results[id];?>" class="link"><img src="../img/buttons/del.gif" border="0"></a></td>
</tr>
<tr>
<td colspan="6"><img src="../img/eff/black.jpg" width="100%" height="1" border="0"></td>
</tr>
 
 <?php
 $i ++;
 }//endwhile
 ?>      
 
 </table>
<?php }?>


<?php
mysql_close($database);
?>


Nun kannst du es testen wie es sich verhällt
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 
fexal
#7 Geschrieben am: Mi 18.01.2006, 01:47 (+00:14)
Report PostQuote Post

AyomRank 2
****

Gruppe: Member (inaktiv)
Beiträge: 5
Mitglied seit: 17.12.2005


Alles klar, werde es mal testen, aber jetzt nicht mehr. Seh schon nur noch Quelltext... *g*

Danke erst mal. Werde wieder posten, wenn ich nicht weiter weiß.

Gutes Nächtle
Top
PMEmail Poster
Top
 
radarin
GIHD mbH
#8 Geschrieben am: Mi 18.01.2006, 02:00 (+00:12)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 429
Mitglied seit: 25.07.2004


gleichfalls, gehe jetzt auch offline.
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/10161

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Formular & PHP milkboy 104 1 Mo 22.12.2008, 09:06
IPB Probleme Ghostwriter 1187 25 Fr 12.12.2008, 17:46
Probleme mit QIP / ICQ Marc3l 94 0 Mi 10.12.2008, 20:09
Funktionsfeedback PDF Formular Marc Schuler 174 5 Fr 28.11.2008, 17:01
Firefox 2.0.0.18 -> ajax Probleme ?! lalo 197 1 Fr 21.11.2008, 22:34
Firefox 3 macht Probleme? Nico B 222 4 Mi 12.11.2008, 22:28
Formular input zerstört design im IE inox 274 4 Do 16.10.2008, 21:44
Probleme beim Projektkauf KIWI-WORKS 270 7 Do 2.10.2008, 20:08
Formular rechnen lassen easymoments 361 6 So 21.09.2008, 11:18
PHP und MySQL Probleme Swisstiger 549 4 So 14.09.2008, 22:23




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]