bestimmte Daten mit MySQL in eine Variable speichern

Naddl150

Mitglied
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...:confused:

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
 
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?
 
PHP:
<?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
 
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
 
Hier hab ich mal schnell ein kleines Beispiel gemacht, muss natürlich noch von Dir angepasst werden. Soll nur veranschaulichen wie es funktioniert.

PHP:
<?

// 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
		}
	}
?>
 
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:
<?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'];
        }
    }
	
	
?>
 
gibt es das Feld "datum" in deiner Datenbank?
Du kannst auch anstatt

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

auch die seite direkt anspreechen:

Code:
<form method="post" action="deineseite.php">
 
Zuletzt bearbeitet:
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?
 
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']."'
 
Zurück