auslesen aus input-felder

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • auslesen aus input-felder

    hallo zusammen

    ich bin's wieder!!
    sorry, aber ich will niemandem auf die nerven gehen, aber ich muss in absehbarer zeit eine diplomarbeit abgeben.
    ich bin sicher, dass das folgende problem eigentlich einfach zu lösen ist, aber ich komme nicht auf die lösung!!

    folgend ein formular mit einigen inputfeldern und ein php-skript, das die werte auslesen sollte (aber eben...).
    jeder record, der in die db geschrieben werden sollte besteht aus $year,$month,$unit_tab,$item,$value. die variablen $unit_tab, $item und $value sind in jedem record unterschiedlich und müssen immer wieder neu "berechnet" werden. diese werte kommen aus der 3x3-matrix. die anderen variablen sind immer die gleichen.

    weiss jemand rat??
    vielen dank!!
    georg


    Code:
    <html>
    
    <head>
    <title>OPR</title>
    </head>
    
    <body>
    <form method="POST" action="savedata.php">
    &nbsp;
    <table border="0" width="20%">
      <tr>
        <td width="50%"><font size="2" face="Arial">Year</font></td>
        <td width="50%"><input type="text" name="year" size="8"></td>
      </tr>
      <tr>
        <td width="50%"><font size="2" face="Arial">Period</font></td>
        <td width="50%"><input type="text" name="month" size="8"></td>
      </tr>
      <tr>
        <td width="50%"><font size="2" face="Arial">Unit</font></td>
        <td width="50%"><input type="text" name="unit" size="8"></td>
      </tr>
    </table>
      <table border="0" width="67%" height="76">
        <tr>
          <td width="37%" height="23" bgcolor="#C0C0C0"></td>
          <td width="23%" height="23" align="center" bgcolor="#C0C0C0"><font size="2" face="Arial"><b>OPR</b></font></td>
          <td width="25%" height="23" align="center" bgcolor="#C0C0C0"><font size="2" face="Arial"><b>FIN</b></font></td>
          <td width="25%" height="23" align="center" bgcolor="#C0C0C0"><font size="2" face="Arial"><b>SRV</b></font></td>
        </tr>
        <tr>
          <td width="37%" height="23"><font size="2" face="Arial">Domestic Sales</font></td>
          <td width="23%" height="23"><font size="2"><input type="text" name="A11_010OPR" size="20"></font></td>
          <td width="25%" height="23"><font size="2"><input type="text" name="A11_010FIN" size="20"></font></td>
          <td width="25%" height="23"><font size="2"><input type="text" name="A11_010SRV" size="20"></font></td>
        </tr>
        <tr>
          <td width="37%" height="16"><font size="2" face="Arial">Intragroup Sales</font></td>
          <td width="23%" height="16"><font size="2"><input type="text" name="A11_020OPR" size="20"></font></td>
          <td width="25%" height="16"><font size="2"><input type="text" name="A11_020FIN" size="20"></font></td>
          <td width="25%" height="16"><font size="2"><input type="text" name="A11_020SRV" size="20"></font></td>
        </tr>
        <tr>
          <td width="37%" height="19"><font size="2" face="Arial">Cogs</font></td>
          <td width="23%" height="19"><font size="2"><input type="text" name="A11_030OPR" size="20"></font></td>
          <td width="25%" height="19"><font size="2"><input type="text" name="A11_030FIN" size="20"></font></td>
          <td width="25%" height="19"><font size="2"><input type="text" name="A11_030SRV" size="20"></font></td>
        </tr>
      </table>
      <p>&nbsp;</p>
    <table border="0" width="30%">
      <tr>
        <td width="50%"><font size="2"><input type="submit" value="Submit" name="B1"></font></td>
        <td width="50%"><font size="2"><input type="reset" value="Reset" name="B2"></font></td>
      </tr>
    </table>
    </form>
    
    </body>
    
    </html>

    Code:
    <?php
     /* Hier muessen die Datenbank-Server-Daten eingetragen werden! */
    	$db_server = "localhost"; /* Server, meistens localhost */
    	$db_user   = "root";      /* Benutzername fuer Datenbank */
    	$db_passwd = "groth";     /* Password fuer Datenbank */
    	$db_name   = "test";      /* Name der Datenbank */
    
     /*Verbindung zum Datenbank-Server wird aufgenommen*/
        $connect_server=@mysql_connect ($db_server,$db_user,$db_passwd) or die
              ("<font face='Arial' size='2'>Connection to the database server failed.</font>");
    
        /*Verbindung zur Datenbank wird aufgenommen*/
        $connect_db=mysql_select_db($db_name,$connect_server) or die
               ("<font face='Arial' size='2'>Connection to the database failed.</font>");
               
    
               
               reset ($HTTP_POST_VARS);
               while (list($key, $value) = each ($HTTP_POST_VARS))
    
    
               /*foreach ($HTTP_POST_VARS as $key => $value)*/
                {
    
                        if (substr($key,4)=="A11_")
                        {
                            $item=substr($key,7);
                            $tab=substr($key,-3);
                            $unit_tab="R".$unit.$tab;
                        }
    
                            $query="INSERT INTO test VALUES($year,$month,$unit_tab,$item,$value)";
                            $result=mysql_query($query) or die ("<font face='Arial' size='2'>Error= ".mysql_error());
    
    
                }
    
    ?>

    vielen, vielen dank!!

  • #2
    hmm,

    irgendwie werd ich nicht wirklich schlau aus deinem Posting, ich verstehe das Problem nämlich nicht
    Was ich annehme was du haben willst :

    Angenommen es werden diese Werte Übergeben :
    Code:
    Year    = 2002
    Unit    = 100
    Period  = 2
    
    Domestic Sales 1    = 1
    Intragroup Sales 1  = 1
    Cogs 1              = 1
    
    Domestic Sales 2    = 2
    Intragroup Sales 2  = 2
    Cogs 2              = 2
    
    Domestic Sales 3    = 3
    Intragroup Sales 3  = 3
    Cogs 3              = 3
    Dann willst du dass drei Datensätze geschrieben werden like :
    Code:
    2002,100,2,1,1,1
    2002,100,2,2,2,2
    2002,100,2,3,3,3
    oder wie ?

    Wenn den so ist dann ist dies eine äusserst unsaubere Art da sehr viele redundante Daten austreten. Ich würde das in zwei Tabellen aufspalten und dann mit IDs arbeiten, das macht die Sache viel sauberer. zB.
    Code:
    Tab 1
    Satz_ID    <> Year  <>  Period  <> Unit <>
    1          <> 2002  <>  100     <>   2  <>
    2          <> 2001  <>  98      <>   23 <>
    
    Tab 2
    Satz_ID <> set_ID <> DSales <> ISales <> Cogs <>
      1     <>   1    <>   1    <>   1    <>  1   <>
      1     <>   2    <>   2    <>   2    <>  2   <>
      1     <>   3    <>   3    <>   3    <>  3   <>
      2     <>   1    <>   10   <>   10   <>  10  <>
      2     <>   2    <>   20   <>   20   <>  20  <>
      2     <>   3    <>   30   <>   30   <>  30  <>
    Die Satz_ID in Tab 2 ist dieselbe Satz_ID wie in eins und die set_ID ist die Reihe im Formular. Aufgrund dieser Beziehung kann man alles genau zuordnen.
    Ich hoffe meine Mühe war nicht vergebens.

    Kommentar


    • #3
      Antwort

      hallo!!

      deine mühe war nicht vergebens, sondern hat mich zur lösung gebracht!! vielen, vielen dank!!

      georg

      Kommentar

      Lädt...
      X