php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.02.2010, 08:15  
Benutzer
 
Registriert seit: 23.02.2010
Beiträge: 60
PHP-Kenntnisse:
Anfänger
1988UR befindet sich auf einem aufstrebenden Ast
Standard Variablen mit Formular übergeben

Guten Morgen!!!
Ich habe ein HTML Formular erstellt wo ich mit php und mysql abfragen einer DB machen kann.
In meiner DB habe ich eine Tabelle mit mehreren Spalten unter anderem auch eine Spalte Datumv erstellt und nun möchte ich aus dieser Spalte einen bestimmten Datumszeitraum auswählen können.
Nun habe ich folgendes in meinen Formular erstellt und möchte die Variablen in mein php script übergeben:
HTML-Code:
<tr>
<td width="170" bgcolor="#e7e7e7"><b>Datum</b><br><br>Bitte folgendes Datumformat verwenden:<br>z.B.: 2001-01-01</td>
<td width="230" bgcolor="#ffffff"><input type="hidden"  name="datum_von" value=$von><input type="datum_von" name=$von size="32" class="input">
		                  <input type="hidden"  name="datum_bis" value=$bis><input type="datum_bis" name=$bis size="32" class="input">
</tr> 
In meinen php script möchte ich mit den Variablen weiter arbeiten:
PHP-Code:
case 'daterange':
                    if (
$wert[0])   $von vsprintf('"%04d-%02d-%02d"'explode('-'$wert[0]));
                    if (
$wert[1])   $bis vsprintf('"%04d-%02d-%02d"'explode('-'$wert[1]));
                    if (
$wert[0] && $wert[1])
                        {
                        
$wert "{$spalte} BETWEEN '{$von}' AND '{$bis}'";
                        } 
                        elseif (
$wert[0])
                        {
                        
$wert "{$spalte} >= '{$von}'";
                        }
                    
                        break; 
So mein Problem ist nun das meine Variablen nicht gefüllt werden und ich in meinen php script in den Variablen nichts bekomme!
könnte mein Code so passen oder fehlt mir noch etwas wichtiges??
ich sitze nun schon seit Tagen drann aber ich komm nicht drauf wie ich das lösen kann!

Vielen Dank
Mfg
1988UR ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.02.2010, 08:21  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

1. Dein Formular dürfte nicht das beinhalten, dass du erreichen willst. Das sieht komisch aus. Zum einen verstehe ich nicht den Grund für das Hidden-Feld bei zeitgleichem Eingabefeld. Des weiteren dürfte $von bei dir nicht richtig gefüllt sein. Das ist einfach kaputt.
2. Wo ist dein Script, was die Variablen auswerten soll?
3. http://www.php.de/php-einsteiger/489...rundlagen.html Das Handling mit Formularen ist einer der ersten Themen, die ein gutes Tutorial zu bieten hat.
__________________
Entwickler aus Leidenschaft und ein Zahnrad in einem der größten Java-Projekte der Welt.
mepeisen ist offline  
Alt 23.02.2010, 08:43  
Benutzer
 
Registriert seit: 23.02.2010
Beiträge: 60
PHP-Kenntnisse:
Anfänger
1988UR befindet sich auf einem aufstrebenden Ast
Standard

Hallo mepeisen!
Danke für deine Antwort!
1.)zum hidden und Eingabefeld hab ich zur zeit zum testen drinnen.
zur Erklärung:warum ist mein $von kaputt???
2.)Mein Script:
PHP-Code:
<?php
  
  
require("logintemplate.php");
  require(
"index.php");
  
  
?>
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
          <head>
            <title>Datensätze auswählen</title>
          <link rel="stylesheet" type="text/css" href="style.css">
          </head>
        <body>
  <?php if(!isset($_POST['submit']))
    { 
?>
          <form action="<?php $PHP_SELF ?>" method="post">
          <table width="600" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
            <tr>
              <td bgcolor="#e7e7e7" align="center" colspan="2">
              <b>Datensatz auswählen</b>
              </td>
            </tr>
            
            <tr>
              <td width="170" bgcolor="#e7e7e7"><b>Wählen Sie einen Mitarbeiter aus</b></td>
              <td bgcolor="#ffffff"><select name="Name" size="1" style="width:150; bgcolor:#ffffff">
                <option select></option>
<?php              
                    $SQL_statement
="SELECT Name FROM users"
                    
$resultset=mysql_query($SQL_statement); 
                    while(
$data=mysql_fetch_array($resultset))
                    { 
                        echo 
"<option value=\"$data[0]\">$data[0]</option>";
                    }  
                    
                    
                  
?>              
              </select>
              </td>
            </tr>
            
            <tr>
              <td width="170" bgcolor="#e7e7e7"><b>Bitte wählen Sie eine Firma aus</b></td>
              <td bgcolor="#ffffff"><select name="Firma" size="1" style="width:150; bgcolor:#ffffff">
                <option select></option>
<?php              
                    $SQL_statement
="SELECT Firma  FROM projekte"
                    
$resultset=mysql_query($SQL_statement); 
                    while(
$data=mysql_fetch_array($resultset))
                    { 
                        echo 
"<option value=\"$data[0]\">$data[0]</option>";
                    }  
                    
                    
                  
?>              
              </select>
              </td>
            </tr>
            
            <tr>
              <td width="170" bgcolor="#e7e7e7"><b>Bitte wählen Sie einen Standort aus</b></td>
              <td bgcolor="#ffffff"><select name="Standort" size="1" style="width:150; bgcolor:#ffffff">
                <option select></option>
<?php              
                    $SQL_statement
="SELECT Standort FROM projekte"
                    
$resultset=mysql_query($SQL_statement); 
                    while(
$data=mysql_fetch_array($resultset))
                    { 
                        echo 
"<option value=\"$data[0]\">$data[0]</option>";
                    }  
                    
                    
                  
?>              
              </select>
              </td>
            </tr>
            
            
            <tr>
              <td width="170" bgcolor="#e7e7e7"><b>Datum</b><br><br>Bitte folgendes Datumformat verwenden:<br>z.B.: 2001-01-01</td>
              <td width="230" bgcolor="#ffffff"><input type="datum_von" name=$von size="32" class="input">
                                                <input type="datum_bis" name=$bis size="32" class="input">
            </tr>
                    
        

            <tr>
              <td bgcolor="#e7e7e7" align="center" colspan="2">
              <input type="submit" name="submit" value="Daten auslesen" class="button">
              </td>
            </tr>

          </table>
          </form>
  <?php
   
}
        
    else
    {           
            


                            
        
        
        function 
createWherePart(&$wert$spalte)
        {    
            switch(
$GLOBALS['allowedPost'][$spalte])
                {        
                    case 
'daterange':
                    if (
$wert[0])   $von vsprintf('"%04d-%02d-%02d"'explode('-'$wert[0]));
                    if (
$wert[1])   $bis vsprintf('"%04d-%02d-%02d"'explode('-'$wert[1]));
                    if (
$wert[0] && $wert[1])
                        {
                        
$wert "{$spalte} BETWEEN '{$von}' AND '{$bis}'";
                        } 
                        elseif (
$wert[0])
                        {
                        
$wert "{$spalte} >= '{$von}'";
                        }
                        
                        break;
                        
                        case 
'date':
                                 
                        
$wert vsprintf('%04d-%02d-%02d'explode('-'$wert));
                        break;
                        
                        case 
'number':
                        
$wert "{$spalte} = {$wert}";
                        break;
                        
                        case 
'string':
                        
$wert "{$spalte} LIKE '{$wert}'";
                    }
                } 
//Erwartete Felder und ihr Datentyp
                
$allowedPost = array(
                                    
'Name' => 'string',
                                    
'Firma' => 'string',
                                    
'Standort' => 'string',
                                    
'Datumv' => 'daterange');
                
$where array_filter(array_intersect_key($_POST$allowedPost));
                
array_walk($where'createWherePart');
                
$where implode(' AND '$where);
                if(
$where$where "WHERE {$where}";
                
$sql "SELECT *FROM projekte {$where}";
                echo 
$sql;
                echo 
$wert[0];
                
$erg = @mysql_query($sql) or die( mysql_error());
                        echo 
"<table border=3 bgcolor='#FFCC33'>";
                        echo 
"<tr>";
                        for(
$i=0$i<mysql_num_fields($erg); $i++) //mysql_num_fields() liefert die Anzahl der Felder in der Ergebnismenge, die mit dem Parameter Ergebnis-Kennung angegeben wurde.
                        

                        
$feld mysql_field_name($erg$i);
                            echo 
"<th>"$feld "</th>";
                        }
                            echo 
"</tr>";
                        while(
$row mysql_fetch_row($erg)) 
                        {
                            echo 
"<tr>";
                          
                          for(
$i=0$i<mysql_num_fields($erg); $i++)
                            echo 
"<td>" $row[$i] . "</td>";
                            echo 
"</tr>";
                        }
                
                        echo 
"</table><p>";
        
                
?><a href="datenauslesen.php<?php session::showLink(true); ?>">Zurück zu Auswahl</a></p><?php
    
}
?>
        </body>
    </html>
Also in meinen script kann ich zwischen Firma,Standort,...Datumv auswählen.
meine einzige sache wo ich eben zur zeit noch hänge ist beim Datumv.
Hast du vielleicht einen Tipp wie man das einfacher lösen kann??
Habe bereits viel in verschieden tutorials und google,...gesucht aber noch nichts gefunden was mir helfen könnte

Vielen Dank
Mfg
1988UR ist offline  
Alt 23.02.2010, 09:13  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Außerhalb der PHP-Tags werden keine Variablen ersetzt. Das $von landet dann so im Klartext im HTML. Zudem werden Formularfelder vom Namen her niemals mit $ vorangestellt im HTML ausgewiesen. Außerdem wird $von bei dir innerhalb einer Funktion gesetzt. Außerhalb der Funktion, die zudem mehrfach aufgerufen wird, ist das $von dann nicht erreichbar.

Es ist Gegenstand eines Tutorials, dass als einer der ersten Punkte erklärt wird, wie Variablen von einem Script zum anderen übergeben werden (GET-Parameter in der URL oder POST per Formular). Und dort wird sicher auch in schlechten Tutorials dieses Konstrukt mit keinem Wort erwähnt:
Code:
<input type="datum_von" name=$von size="32" class="input">
Du hast zudem einige Lücken bei deinem HTML-Basiswissen. type="datum_von" ist einfach nur falsch.


Also nochmal: Schau in den obigen Link, lerne Grundlagen und fülle dein Wissen gezielt mit den Tutorials auf, die dort verlinkt sind. Es ist keine Schande, etwas nicht zu wissen oder etwas falsch zu machen. Es ist aber eine Schande, sich nicht die Zeit zu nehmen, es ordentlich zu erlernen.
__________________
Entwickler aus Leidenschaft und ein Zahnrad in einem der größten Java-Projekte der Welt.
mepeisen ist offline  
Alt 23.02.2010, 09:29  
Benutzer
 
Registriert seit: 23.02.2010
Beiträge: 60
PHP-Kenntnisse:
Anfänger
1988UR befindet sich auf einem aufstrebenden Ast
Standard

Danke für die Anregungen!
werd mich nochmal in meine Bücher schmeissen!
ganz versteh ich es noch nicht aber es wird schon werden.
im Prinzip muss ich ich eigntlich nur das umsetzen:
PHP-Code:
$_POST = array(   
 
'name'=>'user',
 
'firma'=>'GMBH',
 
'standort'=>'',
 
'datumv' => array($_POST["datumvon"], $_POST["datumbis"])); 
1988UR ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Variablen aus einem Formular an mehrere Dateien übergeben? Tarantil PHP Tipps 2009 3 30.11.2009 20:44
[Erledigt] Formular mit einem Link übergeben Felix JavaScript, Ajax und mehr 4 11.09.2008 11:54
[Erledigt] Formatierung im Textfeld per Formular mit übergeben PlanLos23 PHP Tipps 2008 2 25.06.2008 09:05
POST Daten ohne Formular übergeben? &lt;Daniel&gt; PHP Tipps 2006 8 19.06.2006 14:34
variablen richtig übergeben und prüfen rudi13 PHP Tipps 2006 11 17.05.2006 19:38
Variablen per Javascript übergeben snoopiline HTML, Usability und Barrierefreiheit 3 14.12.2005 17:29
Variablen an ein anderes Skript übergeben PHP Tipps 2005-2 5 24.09.2005 14:21
Variablen von Link in Formular übertragen PHP Tipps 2005-2 8 16.08.2005 14:44
Variablen werden nicht übergeben PHP Tipps 2005-2 6 26.06.2005 22:08
Variablen übergeben bzw. auslesen? PHP Tipps 2005 4 30.01.2005 03:56
variablen an inlineframe übergeben PHP Tipps 2004-2 1 17.12.2004 21:10
Wie kann ich einem Frame Variablen übergeben? Chr!s PHP Tipps 2004-2 4 12.12.2004 10:36
komplexe Variablen übergeben? PHP Tipps 2004-2 8 02.12.2004 08:29
[Erledigt] Aktuelle Url an Formular übergeben PHP Tipps 2004 6 04.08.2004 16:12
Variablen per adresse übergeben rocco PHP Tipps 2004 7 24.07.2004 12:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-einsteiger/65017-variablen-mit-formular-uebergeben.html, php formular übergeben, dating kostenlos einzigen standort, php formulardaten übergeben, formulardaten übergeben php, html formulardaten übergeben, formular übergeben php, php input übergeben, php daten übergeben, session::showlink(true), php sessions formulardaten übergabe, formulardaten übernehmen java, php formulars variablen, html form daten an php skript übergeben, html form daten übergeben, variablen mit, php formdaten an php scrtipt übergeben, php formular variablen übergeben, html formular daten übergeben, php datum für verschiedene aktionen übergeben

Alle Zeitangaben in WEZ +1. Es ist jetzt 12:59 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum