Neuling versucht Datenbank zu durchsuchen
tassilo
- php
Hallo zusammen und guten Morgen!
Das ganze Wochenende hab ich mich jezt mit PHP&Mysql rumgeschlagen und bekomm es einfach nicht hin :o(
Hoffe ihr könnt mir helfen...
Ich habe eine Mysql-Datenbank mit Terminen. Ich habe folgende Spalten: event_id, bezirk, kreis, beschriftung, duedate, wotag, ort, zeit
Nun möchte ich eine Seite haben auf der ich in einem kleinen Formular Datum, Ort oder Kreis angeben kann - Datum bestmöglichst von xx.xx.xx bis xx.xx.xx
Dieses Formular wird dann an ein php-script gesendet dass in der Datenbank alle Termine am xx.xx.xx im Ort xxxxxx oder im Kreis xxxx ausgibt.
Mein Formular sieht so aus:
<form action='abfrage.php' method='post'>
<input type="text" name="plz" class="suche" size="5" maxlength="5">
<input type="text" name="ort" class="suche" size="10" maxlength="40">
<input type="text" name="lkrs" class="suche" size="10" maxlength="40">
<input type="text" name="termin" class="suche" size="10" maxlength="40">
<input type="text" name="von" class="suche" size="10" maxlength="40">
<input type="text" name="bis" class="suche" size="10" maxlength="40">
<input type='submit' value='abfrage'>
Mein PHP-script sieht so aus:
<?php
$db = mysql_connect ("localhost")
or die ("Nicht verbunden!");
mysql_select_db ("termine",$db);
$link=mysql_connect(); mysql_select_db("termine");
$anfrage="SELECT * FROM call_appoint WHERE $attribut LIKE
'$Suchanfrage' order by ort;";
$ergebnis=mysql_query($anfrage) or die
("Fehlermeldung=".mysql_error());
echo mysql_num_rows($ergebnis)."Datensätze<p> ";
echo "<TABLE border='1' width='70%'>";
for ($i=0;$i<mysql_num_fields($ergebnis);$i++) {echo
"<TH>".mysql_field_name($ergebnis,$i)."</th>"; };
while ($zeile=mysql_fetch_row($ergebnis))
{echo "<TR align='center'>";
for ($i=0;$i<mysql_num_fields($ergebnis);$i++) {echo
"<td>".$zeile[$i]."</td>";};
echo "</tr>";};
echo "</table>";
mysql_free_result($ergebnis);mysql_close($link);
?>
Irgendwie funzt das ganze net so - ists denn wirklich soooo schiimm? Ist ja mein erster Versuch :(
Würd mich freuen wenn sich jemand meiner annehmen könnte - ich bin völlig am Ende.
Viele Grüße & Dankeschön!
eure tassilo
Hi Tassilo
<?php
$db = mysql_connect ("localhost") or die ("Nicht verbunden!");
mysql_select_db ("termine",$db);
$link=mysql_connect();
--->
mysql_select_db("termine");
---> nochmal???
....
$anfrage="SELECT * FROM call_appoint WHERE $attribut LIKE '$Suchanfrage' order by ort;";
--> was ist das $Suchanfrage und $attribut??? Wo werden da Werte
zugewiesen?
gruss vom horst
mysql_select_db("termine");
---> nochmal???
also kann ich den hier rauslöschen?
Hab ich mir zusammengebastelt aus irgendwelchen Tutorials, Frauen und Technik eben :(
$anfrage="SELECT * FROM call_appoint WHERE $attribut LIKE '$Suchanfrage' order by ort;";
--> was ist das $Suchanfrage und $attribut??? Wo werden da Werte
zugewiesen?
Ich will die Formulardaten rüberbekommen und dachte mir so geht des? Wie denn dann? *verzweifelt*
Dank dir für die Mühen!! Ich verkümmer hier wirklich :(
ciao, tassilo
Hi Tassilo,
leider habe ich nich so viel Zeit so grundlegende Dinge zu erklären :(
Such mal ein gutes Tutorial oder leih/kauf Dir ein gutes Buch
z.B.:
http://tut.php-q.net/formulare.html (tutorial)
Viele Grüße vom Horst
Hallo tassilo,
Das ganze Wochenende hab ich mich jezt mit PHP&Mysql rumgeschlagen und bekomm es einfach nicht hin :o(
ganz ruhig :-) das geht halt nicht von heute auf morgen :-)
Ich habe eine Mysql-Datenbank mit Terminen. Ich habe folgende Spalten: event_id, bezirk, kreis, beschriftung, duedate, wotag, ort, zeit
was hat die Spalte für das Datum für ein Format?
Datum bestmöglichst von xx.xx.xx bis xx.xx.xx
mhh... wenn du mir jetzt noch verräts wo der Unterschied zwischen xx.xx.xx und xx.xx.xx ist :-)
Dieses Formular wird dann an ein php-script gesendet dass in der Datenbank alle Termine am xx.xx.xx im Ort xxxxxx oder im Kreis xxxx ausgibt.
Ich weiß nicht genau, was deine Spaltennamen genau bedeuten, und welche du brauchst, aber versuche es mal etwa so:
"SELECT <benötigtespaltennamen> FROM <tabellenname> WHERE ort = '$_POST["ort"]'"
für Kreis genauso und für das Datum dürften die Datumsfunktionen von mysql ganz praktisch sein: http://mysql.de/documentation/mysql/bychapter/manual.de_Tutorial.html#Date_calculations
wenn nur eins von datum, ort und kreis übergeben wurde könntest du deinen mysql-Query mit einer if-Abfrage machen, d.h. du fragst erst mal ab, was übergeben wurde, und dann setzt du den entsprechenden Query.
<input type="text" name="lkrs" class="suche" size="10" maxlength="40">
mhh... was heißt "lkrs"?
<input type='submit' value='abfrage'>
warum machst du hier einfache Anführungszeichen, sonst aber doppelte? Außerdem fehl hier noch ein name=""
mysql_select_db ("termine",$db);
$link=mysql_connect(); mysql_select_db("termine");
$anfrage="SELECT * FROM call_appoint WHERE $attribut LIKE
'$Suchanfrage' order by ort;";
für was ist $attribut?
echo "<TABLE border='1' width='70%'>";
<table> hat kein width="" -> css (genauso wie border="")
hier muss noch ein echo "<tr>"; rein
for ($i=0;$i<mysql_num_fields($ergebnis);$i++) {
echo "<TH>".mysql_field_name($ergebnis,$i)."</th>";
du öffnest ein <TH> und schließt ein </th>.
}
und hier fehlt ein echo "</tr>";
while ($zeile=mysql_fetch_row($ergebnis)){
echo "<tr align='center'>";
for ($i=0;$i<mysql_num_fields($ergebnis);$i++) {
echo "<td>".$zeile[$i]."</td>";
}
echo "</tr>";
}
so sieht das ganze etwas übersichtlicher aus, ob es funktioniert, weiß ich nicht (ich kann es mir ehrlichgesagt aber nicht vorstellen, dass das so klappt)
mysql_close($link);
welche datenbankverbindung schließt du hier?
Irgendwie funzt das ganze net so
was "funzt" denn nicht? Fehlermeldung?
- ists denn wirklich soooo schiimm?
naja, man könnte es schon noch übersichtlicher schreiben (einrücken)
Ist ja mein erster Versuch :(
naja dann :-)
Grüße aus Nürnberg
Tobias