# bestimmte Daten mit MySQL in eine Variable speichern



## Naddl150 (16. Oktober 2008)

Hallo!
So, nach einer langen Suche und keiner Lösung hab ich mich entschlossen, euch mal wieder um Hilfe zu bitten. 

Ich arbeite derzeit an einem Projekt mit PHP. Es geht um folgendes:

Daten sollen in einem Formular eingegeben werden, und mit SQL in der Datenbank gespeichert sein. Damit hatte ich keine Probleme. 
Nun sollen die Daten ausgewertet werden. Man soll in einem Formular ein Datum auswählen, und von diesem Datum aus sollen alle Werte aus der Datenbank einzeln in eine Variable gespeichert werden, um mit den Ergebnissen weitere Berechnungen zu machen. 

Leider hab ich wenig Erfahrung mit MySQL und bin schon langsam am verzweifeln...

Habt ihr vll. eine Lösung oder einen Link für mich, der mir weiterhilft? 

Hab auch die Suchfunktion benutzt und nichts gefunden...

Lg, 
Nadja


----------



## Maniac (16. Oktober 2008)

Soll hierbei in dem Formular nur die Datum drinstehen welche schon in der Datenbank vorhanden sind, oder eher eine Suchfunktion um nach einem beliebigen Datum zu suchen ob es in der DB vorhanden ist?


----------



## aquasonic (16. Oktober 2008)

```
<?php
$sql = "SELECT id FROM   sometable WHERE '".$datum."' < datumInDb";
$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) {
    echo $row["userid"];
}

mysql_free_result($result);
?>
```

Du findest dazu sehr viele Beiträge bei Google oder direkt bei php.net


----------



## Naddl150 (16. Oktober 2008)

Maniac_81 hat gesagt.:


> Soll hierbei in dem Formular nur die Datum drinstehen welche schon in der Datenbank vorhanden sind, oder eher eine Suchfunktion um nach einem beliebigen Datum zu suchen ob es in der DB vorhanden ist?



Das Datum ist in der Datenbank schon vorhanden.. Es ist eine DB mit ca. 50 Felder. In einem Formular soll man ein Datum eingeben und dann sollen die Werte von der anderen Datenbank-felder (von diesem Datum) mit einer Variable weiter berechnet werden


----------



## Maniac (16. Oktober 2008)

Hier hab ich mal schnell ein kleines Beispiel gemacht, muss natürlich noch von Dir angepasst werden. Soll nur veranschaulichen wie es funktioniert.


```
<?

// alle Datums die in der DB stehen auslesen mit ID
$sql = "SELECT id, datum FROM tabelle";
$result = mysql_query($sql) or die(mysql_errno()." : ".mysql_error());
?>
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<select name="datum">
<?
while($row = mysql_fetch_array($result))
{
echo "<option value=\"".$row['id']."\">".$row['datum']."</option>";
}
?>
</select>
<input type="submit" name="dat_select" value="anzeigen" />
</form>

<?
	//prüfen ob der button geklickt wurde
	if(isset($_POST['dat_select']))
	{
		$sql = "SELECT * FROM tabelle WHERE id=".$_POST['datum'];
		$result = mysql_query($sql);
		while($res = mysql_fetch_array($result))
		{
			//die datenbank felder
		}
	}
?>
```


----------



## Naddl150 (20. Oktober 2008)

Viel dank für die Antwort.. Ich habe das natürlich sofort versucht.. dann würde ein Fehler angezeigt, den ich die letzten Tage bearbeitet habe. Da die Seite jetzt richtig im Browser angezeigt wird, müsste der Code jetzt stimmen. Doch wenn ich auf den Button klicke, kommt kein Ergebnis. Nicht einmal, wenn ich eine einfache Ausgabe nach der isset-Funktion mache. Kann sich vll jemand meinen Code ansehen? Sitz da schon wieder 3 Tage und finde den Fehler nicht 

Da ja die Inhalte des Drop-Down-Felds von der DB kommen, kann es ja auch kein Fehler sein wegen dem Format des Datums, oder? 


```
<?php


// Zum Testen folgende Werte im Array anpassen:
$param = array(
    'host' => 'localhost',
    'username' => 'user',
    'password' => 'pass',
    'database' => 'mis');

// Resource aufsetzen
if (!$dbconnection = @mysql_connect($param['host'], $param['username'], $param['password']) OR !mysql_select_db($param['database'], $dbconnection)) {
    // Verbindung fehlgeschlagen, Parameter zum "Debuggen" ausgeben und Script beenden
    echo "nicht erfolgreich mit folgenden Parametern:\n";
    print_r($param);
    exit;
} 
    
 
	
	
// alle Datums die in der DB stehen auslesen mit ID
$sql = "SELECT id, datum FROM mis";
$result = mysql_query($sql) or die(mysql_errno()." : ".mysql_error());
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<select name="datum">
<?php
while($row = mysql_fetch_array($result))
{
echo "<option value=\"".$row['id']."\">".$row['datum']."</option>";
}
?>
</select>
<input type="submit" name="submit" value="anzeigen" />
</form>

<?php
    //prüfen ob der button geklickt wurde
   if(isset($_POST['submit']))
    {
	 
        $sql = "SELECT * FROM mis WHERE datum='".$_POST['datum']."'";
        $result = mysql_query($sql);
        while($res = mysql_fetch_array($result))
        {
            echo $res['datum'];
        }
    }
	
	
?>
```


----------



## Maniac (20. Oktober 2008)

gibt es das Feld "datum" in deiner Datenbank?
Du kannst auch anstatt 


```
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
```

auch die seite direkt anspreechen:


```
<form method="post" action="deineseite.php">
```


----------



## Naddl150 (20. Oktober 2008)

jaja, natürlich gibt es das Feld "datum" in der DB.. 
ich hab jetzt schon ewig den Code studiert und versteh auch die ganze Funktion.. Und ich hab ebenso schon in vielen Foren nachgelesen, und ähnliche Methoden gesucht, die aber auch nicht funktionierten.. 

Hat es eig. einen bestimmten Sinn, dass man die Datums mit der ID auslest?


----------



## Maniac (20. Oktober 2008)

einen bestimmten nur soweit das man halt mit der id weiterarbeitet. Du kannst es auch direkt übers Datum ansteuern, wie Du möchtest.

Ich glaube auch das ich den Fehler gefunden habe.

Was über das selectfeld übergeben wird, ist die immer wenn angegeben das value. $_POST['datum'] ist der name des selectfeldes.

somit ist hier was an dein Script übergeben wird die ID welche im value steht.
Da Du mit der 2. Abfrage aber nach "datum='".$_POST['datum']."' suchst, kann es nicht funktionieren.

wenn dann:

SELECT * FROM mis WHERE id='".POST['datum']."'


----------



## Naddl150 (20. Oktober 2008)

ja super, jetzt funktionierts  

vielen vielen und nochmals vielen dank


----------



## Naddl150 (8. November 2008)

so, jetzt muss ich noch mal lästig sein.. tut mir leid 

ich hab das gleiche script, nur muss ich jetzt einen bestimmten Zeitraum auswählen, der angezeigt wird, nicht nur mehr einen Tag. Ebenso muss ich auch auswählen können, welcher Mitarbeiter die Daten eingetragen hat, und wie das Wetter war. Diese Felder habe ich auch schon bei der Datenbank hinzugefügt. 

Bitte helft mir nochmal, dann geb ich das Programmiern sowieso auf. Kostet mir nur Nerven ^^


----------

