P
Patrik Garten
Hallo liebe Community,
ich bin jetzt seit eben gerade registriert und habe jetzt schon ein Problem, zwar geht es darum das ich ein Projekt habe, bei dem es um eine Abfrage von einer Datenbank online geht. Mein Problem besteht darin, das ich ich nicht weiß wie ich nun das Geburtsdatum von Personen richtig ausgeben kann. Bisher habe ich folgendes schon hin bekommen:
Allerdings zeigt er mir bisher nur das aktuelle Datum an und ich habe echt keinen blassen Schimmer wie ich jetzt weiter vorgehen soll. :-/
Habe schon rumprobiert und experimentiert und entweder die Seite zeigt gleich gar nichts an, oder mir werden laufend irgendwelche Fehlermeldungen um die Ohren gehauen.
(Ich muss dazu sagen, ich habe vor kurzem erst mit PHP und SQL angefangen und habe gleich so ein Projekt bekommen.)
Ich bedanke mich jetzt schon einmal bei euch, für eure Hilfe/Kommentare/Tipps/Tricks.
ich bin jetzt seit eben gerade registriert und habe jetzt schon ein Problem, zwar geht es darum das ich ein Projekt habe, bei dem es um eine Abfrage von einer Datenbank online geht. Mein Problem besteht darin, das ich ich nicht weiß wie ich nun das Geburtsdatum von Personen richtig ausgeben kann. Bisher habe ich folgendes schon hin bekommen:
PHP:
<?php
// Logindaten für die Datenbank
$host = ...
$dbuser = ...
$dbpassword = ...
// Datenbank Login
$login = ibase_connect($host, $dbuser, $dbpassword);
// Fehlermeldung
if($login==false)
{
echo "Die Datenbank konnte nicht geöffnet werden.<br />";
echo ibase_errmsg();
die;
}
// Einbindung der HTML Datei (zur Wiederholung der Eingabe)
include('index.html');
$text = $_POST['eingabe'];
// Abfrage der query
switch($text)
{
// Keine Eingabe
case FALSE:
echo "<br /><b>Bitte machen Sie eine Eingabe!</b>";
echo ibase_errmsg();
die;
// Eingabe: Komma -> Alles anzeigen
case ',':
$query = "SELECT pa_name,pa_vorname,pa_titel,pa_geb_datum,pa_pat_nr FROM patient
ORDER by pa_name,pa_vorname;";
break;
// Eingabe = Zahl
case is_numeric($text):
$query = "SELECT pa_name,pa_vorname,pa_titel,pa_geb_datum,pa_pat_nr FROM patient
WHERE LOWER(PA_PAT_NR) LIKE '".$text."%';";
break;
case (strpos($text, ',')<1):
$splitted_name = explode(',', $text);
$vorname = trim($splitted_name[1]);
$query = "SELECT pa_name,pa_vorname,pa_titel,pa_geb_datum,pa_pat_nr FROM patient
WHERE LOWER(PA_VORNAME) LIKE '".strtolower($vorname)."%'
ORDER by pa_name,pa_vorname;";
// Suche nach Vor- und Nachnamen über Eingabe: Komma
case (strpos($text, ',')>0):
$splitted_name = explode(',', $text);
$name = trim($splitted_name[0]);
$vorname = trim($splitted_name[1]);
$query = "SELECT pa_name,pa_vorname,pa_titel,pa_geb_datum,pa_pat_nr FROM patient
WHERE LOWER(PA_NAME) LIKE '".strtolower($name)."%'
AND LOWER(PA_VORNAME) LIKE '".strtolower($vorname)."%'
ORDER by pa_name,pa_vorname;";
break;
// Suche nach Vor- und Nachnamen über Eingabe: Leerzeichen
case (strpos($text, ' ')>0):
$splitted_name = explode(' ', $text);
$name = trim($splitted_name[0]);
$vorname = trim($splitted_name[1]);
$query = "SELECT pa_name,pa_vorname,pa_titel,pa_geb_datum,pa_pat_nr FROM patient
WHERE LOWER(PA_NAME) LIKE '".strtolower($name)."%'
AND LOWER(PA_VORNAME) LIKE '".strtolower($vorname)."%'
ORDER by pa_name,pa_vorname;";
break;
// Suche nach Vor- und Nachnamen über Eingabe: Kommas anschließenden Leerzeichen
case (strpos($text, ', ')>0):
$splitted_name = explode(', ', $text);
$name = trim($splitted_name[0]);
$vorname = trim($splitted_name[1]);
$query = "SELECT pa_name,pa_vorname,pa_titel,pa_geb_datum,pa_pat_nr FROM patient
WHERE LOWER(PA_NAME) LIKE '".strtolower($name)."%'
AND LOWER(PA_VORNAME) LIKE '".strtolower($vorname)."%'
ORDER by pa_name,pa_vorname;";
break;
// Suche nach Vor- und Nachnamen über Eingabe: Leerzeichen anschließend Komma
case (strpos($text, ' ,')>0):
$splitted_name = explode(' ,', $text);
$name = trim($splitted_name[0]);
$vorname = trim($splitted_name[1]);
$query = "SELECT pa_name,pa_vorname,pa_titel,pa_geb_datum,pa_pat_nr FROM patient
WHERE LOWER(PA_NAME) LIKE '".strtolower($name)."%'
AND LOWER(PA_VORNAME) LIKE '".strtolower($vorname)."%'
ORDER by pa_name,pa_vorname;";
break;
// Suche nach Vor- und Nachnamen über Eingabe: Leerzeichen, Komma, Leerzeichen
case (strpos($text, ' , ')>0):
$splitted_name = explode(' , ', $text);
$name = trim($splitted_name[0]);
$vorname = trim($splitted_name[1]);
$query = "SELECT pa_name,pa_vorname,pa_titel,pa_geb_datum,pa_pat_nr FROM patient
WHERE LOWER(PA_NAME) LIKE '".strtolower($name)."%'
AND LOWER(PA_VORNAME) LIKE '".strtolower($vorname)."%'
ORDER by pa_name,pa_vorname;";
break;
// Normale Suche nach Nachnamen
default:
$query = "SELECT pa_name,pa_vorname,pa_titel,pa_geb_datum,pa_pat_nr FROM patient
WHERE LOWER(PA_NAME) LIKE '".strtolower($text)."%'
ORDER by pa_name,pa_vorname;";
}
// Login und Verbindung zur Query
$dbabfrage = ibase_query($login, $query);
//Fehlermeldung
if($dbabfrage==false)
{
echo(string)ibase_errmsg();
die;
}
// Datenbank anzeigen
echo '<br />';
echo '<table border="0" style="background-color: white; min-width: 750px; font-family: Arial">';
echo '<tr>';
echo '<th>Name, ';
echo 'Vorname</th>';
echo '<th>Titel</th>';
echo '<th>Geb.-Datum</th>';
echo '<th>Pat-Nr.</th>';
echo '</tr>';
$anzFields = ibase_num_fields($dbabfrage);
while($zeile = ibase_fetch_row($dbabfrage))
{
echo '<tr>';
for($j=0; $j<1; $j++)
{
echo '<td>'.(string)$zeile[0].', '.(string)$zeile[1].'</td>';
}
for($j=2; $j<$anzFields; $j++)
{
if($j==3)
{
$format = '%d.%m.%Y';
$zeile[$j] = strftime($format);
}
echo '<td>' . (string)$zeile[$j] . '</td>';
}
echo '</tr>';
}
echo '</table>';
// Beenden und Schließen der Datenbank
ibase_free_result($dbabfrage);
ibase_close($login);
// Abschließender Satz
echo "<br /><br />database request completed";
?>
Allerdings zeigt er mir bisher nur das aktuelle Datum an und ich habe echt keinen blassen Schimmer wie ich jetzt weiter vorgehen soll. :-/
Habe schon rumprobiert und experimentiert und entweder die Seite zeigt gleich gar nichts an, oder mir werden laufend irgendwelche Fehlermeldungen um die Ohren gehauen.
(Ich muss dazu sagen, ich habe vor kurzem erst mit PHP und SQL angefangen und habe gleich so ein Projekt bekommen.)
Ich bedanke mich jetzt schon einmal bei euch, für eure Hilfe/Kommentare/Tipps/Tricks.