Hallo zusammen
Ich habe hier eine Suchfunktion welche Daten nach Auswahlfeldern sucht. Zur Datenbankstruktur: Es wird nach Spalten in der Haupttabelle (event) gesucht. Neben der Haupttabelle gibt es 3 Nebentabellen welche je eine Zwischentabelle zur Haupttabelle besitzten. Diese haben immer die IDs beider Tabellen gepeichert.
Jetzt mal der Code:
mein Problem ist das wenn ich die exit() nicht mache zeigt es mir meine Ergebnisstabelle gleich 3 mal oder mehrmals an.. (was es doch bei elseif abfragen nicht tun sollte?)
Daher muss ich also irgend ein Stopp einfügen, das Problem ist das der Html code dann nicht weitergerechnet wird und nach der Suchfunktion ist dann einfach Schluss...
Hat wer eine Idee? ^^
Gruss Skala
edit: jetzt versteh ich gar nichts mehr...
im folgenden wird sowohl if als auch else ausgeführt, und zwar false bevor true...
Ich habe hier eine Suchfunktion welche Daten nach Auswahlfeldern sucht. Zur Datenbankstruktur: Es wird nach Spalten in der Haupttabelle (event) gesucht. Neben der Haupttabelle gibt es 3 Nebentabellen welche je eine Zwischentabelle zur Haupttabelle besitzten. Diese haben immer die IDs beider Tabellen gepeichert.
Jetzt mal der Code:
PHP:
//Funktion: Query mit einer Kontrolle
function query1($table,$row,$data) {
return "SELECT event_fk FROM " . $table . " WHERE " . $row . " = '" . $data . "'";
}
//Funktion: Query mit 2 Kontrolle
function query2($table,$row,$data,$data2) {
return "SELECT event_fk FROM " . $table . " WHERE " . $row . " = '" . $data . "' AND event_fk = '" . $data2 . "'";
}
function EchoOrga($where) {
$sel = mysql_query("SELECT organisation_fk FROM orga_id WHERE event_fk = '" . $where . "'") or die(mysql_error());
if(mysql_num_rows($sel)) {
while($res = mysql_fetch_array($sel)) {
$sel2 = mysql_query("SELECT name FROM organisation WHERE organisation_id = '" . $res[0] . "'") or die(mysql_error());
if(mysql_num_rows($sel2)) {
$res2 = mysql_fetch_array($sel2);
echo $res2[0];
echo "<br>";
}
}
} else {
echo "Keine Daten vorhanden";
exit();
}
}
//Funktion: Tabelle mit Resultat
function CreateTable($result) {
//tabelle anfang
echo "<br>";
echo "<table width=\"535\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#336699\">";
echo "<tr align=\"left\" valign=\"middle\" bordercolor=\"#336699\" bgcolor=\"#FFFFFF\">";
echo "<th width=\"95\" class=\"style8\" scope=\"col\">Datum</th>";
echo "<th width=\"115\" class=\"style8\" scope=\"col\">Ort</th>";
echo "<th width=\"250\" class=\"style8\" scope=\"col\">Organisation</th>";
echo "<th width=\"75\" class=\"style8\" scope=\"col\">Link</th>";
echo "</tr>";
//result
while($resResult = mysql_fetch_array($result)) {
//query
$sel = mysql_query("SELECT event_id,ort,datum FROM event WHERE event_id = '" . $resResult[0] . "'") or die(mysql_error());
if(mysql_num_rows($sel)) {
$res = mysql_fetch_array($sel);
echo "<tr align=\"left\" valign=\"middle\" bordercolor=\"#336699\" bgcolor=\"#FFFFFF\">";
echo "<th width=\"95\" class=\"style8\" scope=\"col\">";
datum_sort($res['datum']);
echo "</th>";
echo "<th width=\"115\" class=\"style8\" scope=\"col\">" . $res['ort'] . "</th>";
echo "<th width=\"250\" class=\"style8\" scope=\"col\">";
EchoOrga($res['event_id']);
echo "</th>";
echo "<th width=\"75\" class=\"style8\" scope=\"col\">";
$popdata = $res['event_id'];
echo "<script type=\"text/javascript\">
function DetailUp(idVar) {
F = window.open(\"liste_details.php?id=\" + idVar + \"\",\"Details\",\"width=800,height=600\", \"resizable=yes\", \"scrollbar=yes\")}
</script>";
echo "<a href=\"javascript:DetailUp(" . $popdata . ")\"><font size=\"3\">Details</font></a>";
echo "</th>";
echo "</tr>";
} else {
echo "";
exit();
}
}
echo "</table>";
}
function suchen_html() {
//HTML Formular
echo "<br>";
echo "<form name=\"form1\" method=\"post\" action=\""; $_SERVER['PHP_SELF']; echo "\">";
echo"<table width=\"530\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
echo"<tr valign=\"top\">";
echo"<th scope=\"col\" width=\"265\" align=\"left\">Vortrag</th>";
echo "<th scope=\"col\" width=\"265\" align=\"right\">Vertreter der TVD</th>";
echo"</tr>";
echo"<tr valign=\"top\">";
echo "<th scope=\"col\" width=\"265\" align=\"left\">"; search_vortrag(); echo"</th>";
echo "<th scope=\"col\" width=\"265\" align=\"right\">"; search_vertreter(); echo"</th>";
echo "</tr>";
echo "<tr align=\"left\" valign=\"top\">";
echo"<th colspan=\"2\" scope=\"row\" width=\"530\"><center>Organisation</center></th>";
echo"</tr>";
echo"<tr align=\"left\" valign=\"top\">";
echo"<th colspan=\"2\" scope=\"row\" width=\"530\"><center>"; search_orga(); echo"</center></th>";
echo"</tr>";
echo"</table>";
echo "<br>";
echo "<center>";
echo "<input type=\"submit\" name=\"Submit\" value=\"Suchen\">";
echo "</center>";
echo "</form>";
//Suchen();
}
function start() {
if($_POST['Submit']) {
Suchen();
}
}
//Funktion: Kontrolle
function Suchen() {
//var
$vertreter = $_POST['vertreter'];
$vortrag = $_POST['vortrag'];
$organisation = $_POST['organisation'];
//switch definiern
/*----------Alle Felder sind gesetzt----------*/
if($vertreter != 99999999 && $vortrag != 99999999 && $organisation != 99999999) {
//vertreter
$selVer = mysql_query(query1("ver_id","vertreter_fk",$vertreter)) or die(mysql_error());
if(mysql_num_rows($selVer)) {
//vertreter
while($resVer = mysql_fetch_array($selVer)) {
//vortrag
$selVor = mysql_query(query2("vor_id","vortrag_fk",$vortrag,$resVer[0])) or die(mysql_error());
if(mysql_num_rows($selVor)) {
//vortrag
while($resVor = mysql_fetch_array($selVor)) {
//Organisation
$selOrga = mysql_query(query2("orga_id","organisation_fk",$organisation,$resVor[0])) or die(mysql_error());
if(mysql_num_rows($selOrga)) {
//Ausgabe
CreateTable($selOrga);
exit();
} else {
echo "Keine Daten vorhanden";
exit();
}
}
} else {
echo "Keine Daten vorhanden";
exit();
}
}
} else {
echo "Keine Daten vorhanden";
exit();
}
/*----------Vertreter und Vortrag sind gesetzt----------*/
} elseif($vertreter != 99999999 && $vortrag != 99999999 && $organisation == 99999999) {
//vertreter
$selVer = mysql_query(query1("ver_id","vertreter_fk",$vertreter)) or die(mysql_error());
if(mysql_num_rows($selVer)) {
//vertreter
while($resVer = mysql_fetch_array($selVer)) {
//vortrag
$selVor = mysql_query(query2("vor_id","vortrag_fk",$vortrag,$resVer[0])) or die(mysql_error());
if(mysql_num_rows($selVor)) {
//Ausgabe
CreateTable($selVor);
exit();
} else {
echo "Keine Daten vorhanden";
exit();
}
}
} else {
echo "Keine Daten vorhanden";
exit();
}
/*----------Vertreter und Organisation sind gesetzt----------*/
} elseif($vertreter != 99999999 && $vortrag == 99999999 && $organisation != 99999999) {
//vertreter
$selVer = mysql_query(query1("ver_id","vertreter_fk",$vertreter)) or die(mysql_error());
if(mysql_num_rows($selVer)) {
//vertreter
while($resVer = mysql_fetch_array($selVer)) {
//Organisation
$selOrga = mysql_query(query2("orga_id","organisation_fk",$organisation,$resVer[0])) or die(mysql_error());
if(mysql_num_rows($selOrga)) {
//Ausgabe
CreateTable($selOrga);
exit();
} else {
echo "Keine Daten vorhanden";
exit();
}
}
} else {
echo "Keine Daten vorhanden";
exit();
}
/*----------Vortrag und Organisation sind gesetzt----------*/
} elseif($vertreter == 99999999 && $vortrag != 99999999 && $organisation != 99999999) {
//vortrag
$selVor = mysql_query(query1("vor_id","vortrag_fk",$vortrag)) or die(mysql_error());
if(mysql_num_rows($selVor)) {
//vortrag
while($resVor = mysql_fetch_array($selVor)) {
//Organisation
$selOrga = mysql_query(query2("orga_id","organisation_fk",$organisation,$resVor[0])) or die(mysql_error());
if(mysql_num_rows($selOrga)) {
//Ausgabe
CreateTable($selOrga);
exit();
} else {
echo "Keine Daten vorhanden";
exit();
}
}
} else {
echo "Keine Daten vorhanden";
exit();
}
/*----------Vertreter ist gesetzt----------*/
} elseif($vertreter != 99999999 && $vortrag == 99999999 && $organisation == 99999999) {
//vertreter
$selVer = mysql_query(query1("ver_id","vertreter_fk",$vertreter)) or die(mysql_error());
if(mysql_num_rows($selVer)) {
//Ausgabe*
/*
while ($test = mysql_fetch_array($selVer)) {
echo $test['0'];
echo " , ";
echo "<br>";
echo "<br>";
CreateTable($test);
}*/
return CreateTable($selVer);
//break;
//exit();
} else {
echo "Keine Daten vorhanden";
exit();
}
/*----------Vortrag ist gesetzt----------*/
} elseif($vertreter == 99999999 && $vortrag != 99999999 && $organisation == 99999999) {
//vortrag
$selVor = mysql_query(query1("vor_id","vortrag_fk",$vortrag)) or die(mysql_error());
if(mysql_num_rows($selVor)) {
//Ausgabe
CreateTable($selVor);
exit();
} else {
echo "Keine Daten vorhanden";
exit();
}
/*----------Organisation ist gesetzt----------*/
} elseif($vertreter == 99999999 && $vortrag == 99999999 && $organisation != 99999999) {
//organisation
$selOrga = mysql_query(query1("orga_id","organisation_fk",$organisation)) or die(mysql_error());
if(mysql_num_rows($selOrga)) {
//Ausgabe
CreateTable($selOrga);
exit();
} else {
echo "Keine Daten vorhanden";
die();
}
/*----------Keine Auswahl ist gesetzt----------*/
} elseif($vertreter == 99999999 && $vortrag == 99999999 && $organisation == 99999999) {
return "Setzten Sie mittels Auswahlfelder die Kriterien";
}
}
mein Problem ist das wenn ich die exit() nicht mache zeigt es mir meine Ergebnisstabelle gleich 3 mal oder mehrmals an.. (was es doch bei elseif abfragen nicht tun sollte?)
Daher muss ich also irgend ein Stopp einfügen, das Problem ist das der Html code dann nicht weitergerechnet wird und nach der Suchfunktion ist dann einfach Schluss...
Hat wer eine Idee? ^^
Gruss Skala
edit: jetzt versteh ich gar nichts mehr...
im folgenden wird sowohl if als auch else ausgeführt, und zwar false bevor true...
PHP:
//Funktion: Tabelle mit Resultat
function CreateTable($result) {
//tabelle anfang
echo "<br>";
echo "<table width=\"535\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#336699\">";
echo "<tr align=\"left\" valign=\"middle\" bordercolor=\"#336699\" bgcolor=\"#FFFFFF\">";
echo "<th width=\"95\" class=\"style8\" scope=\"col\">Datum</th>";
echo "<th width=\"115\" class=\"style8\" scope=\"col\">Ort</th>";
echo "<th width=\"250\" class=\"style8\" scope=\"col\">Organisation</th>";
echo "<th width=\"75\" class=\"style8\" scope=\"col\">Link</th>";
echo "</tr>";
//result
while($resResult = mysql_fetch_array($result)) {
//query
$sel = mysql_query("SELECT event_id,ort,datum FROM event WHERE event_id = '" . $resResult[0] . "'") or die(mysql_error());
if(mysql_num_rows($sel)) {
$res = mysql_fetch_array($sel);
echo "<tr align=\"left\" valign=\"middle\" bordercolor=\"#336699\" bgcolor=\"#FFFFFF\">";
echo "<th width=\"95\" class=\"style8\" scope=\"col\">";
datum_sort($res['datum']);
echo "</th>";
echo "<th width=\"115\" class=\"style8\" scope=\"col\">" . $res['ort'] . "</th>";
echo "<th width=\"250\" class=\"style8\" scope=\"col\">";
EchoOrga($res['event_id']);
echo "</th>";
echo "<th width=\"75\" class=\"style8\" scope=\"col\">";
$popdata = $res['event_id'];
echo "<script type=\"text/javascript\">
function DetailUp(idVar) {
F = window.open(\"liste_details.php?id=\" + idVar + \"\",\"Details\",\"width=800,height=600\", \"resizable=yes\", \"scrollbar=yes\")}
</script>";
echo "<a href=\"javascript:DetailUp(" . $popdata . ")\"><font size=\"3\">Details</font></a>";
echo "</th>";
echo "</tr>";
} else {
echo "tesssttt";
}
}
echo "</table>";
}
Zuletzt bearbeitet: