Seite 2 von 2
Verfasst: 20.04.2006 22:04
von AmShaegar
ist esdenn nicht möglcih das ganze in eine datenbank zu packen? eine neue datenbankverbindun öfnnen ist schwiedrig, da du die vom phpBB dann schließen müsstest und danach wieder aufrufen, was sehr umständlich ist...
wenn du das ganze jetzt mit einem neuen präfix in die gleiche datenbank steckst ist das alles kein problem. (präfix wegen des überblickes.)
z.B.:
new_tabelle1
Verfasst: 21.04.2006 06:31
von sts
Hm,
ich werde es mal versuchen, vielen Dank
Verfasst: 21.04.2006 07:06
von sts
Hallo,
ich habe gerade mal versucht das Script ohne phpbb zum laufen zu bringen (Loginscript funktioniert nun). Nur leider habe ich noch ein Problem mit dem Übertragen der Daten.
Aber wie immer finde ich blinder Fisch den Fehler nicht.
Hier ist die Probeversion installiert:
http://sts.redio.de/
das Admininterface (um Einträge zu erzeugen) ist mit Passwort verlinkt...
Quellentext search.php
Code: Alles auswählen
<?php print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Search</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<table width="60%" border="1" align="center" cellpadding="3" cellspacing="0">
<tr>
<td width="46%"><select name="selection0" onChange="location.href='search.php?cat='+this[this.selectedIndex].value">
<?php if(isset($cat)) { $test = $cat; } else { $test = "Bitte auswählen"; } ?>
<option value="<?php print $test; ?>" selected="selected"><?php print $test; ?></option>
<?php include("functions.php"); showcat('art', 'prod'); ?>
</select>
</td>
<td width="54%">Geräteart auswählen</td>
</tr>
<tr>
<td><select name="selection1" onChange="location.href='search.php?<?php print "cat=$cat&key="; ?>'+this[this.selectedIndex].value">
<?php if(isset($key)) { $test1 = $key; } else { $test1 = "Bitte auswählen"; } ?>
<option value="<?php print $test1; ?>" selected="selected"><?php print $test1; ?></option>
<?php
include("config.php");
$link = mysql_connect($hostname, $benutzer, $passwort);
if(!$link) {
die("<strong>Kann den Server nicht erreichen.</strong>");
}else{
mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht öffnen: </strong>".mysql_error() );
}
$res = mysql_db_query($db, "select distinct hersteller from prod where art = '$cat' ");
while($row = mysql_fetch_array($res)) {
print "<option value=\"".$row["hersteller"]."\">".$row["hersteller"]."</option>";
}
mysql_close($link);
?>
</select>
</td>
<td>Hersteller auswählen</td>
</tr>
<tr>
<td><select name="selection2" onChange="location.href='search.php?<?php print "cat=$cat&key=$key&mod="; ?>'+this[this.selectedIndex].value">
<?php if(isset($mod)) { $test1 = $mod; } else { $test1 = "Bitte auswählen"; } ?>
<option value="" selected="selected"><?php print $test1; ?></option>
<?php
include("config.php");
$link = mysql_connect($hostname, $benutzer, $passwort);
if(!$link) {
die("<strong>Kann den Server nicht erreichen.</strong>");
}else{
mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht öffnen: </strong>".mysql_error() );
}
$res = mysql_db_query($db, "select modell from prod where hersteller = '$key'");
while($row = mysql_fetch_array($res)) {
print "<option value=\"".$row["modell"]."\">".$row["modell"]."</option>";
}
mysql_close($link);
?>
</select>
</td>
<td>Modell auswählen</td>
</tr>
</table>
<br />
<?php
if(isset($_GET["mod"])) {
print "
<table width=\"80%\" border=\"1\" align=\"center\" cellpadding=\"3\" cellspacing=\"0\">";
$link = mysql_connect($hostname, $benutzer, $passwort);
if(!$link) {
die("<strong>Kann den Server nicht erreichen.</strong>");
}else{
mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht öffnen: </strong>".mysql_error() );
}
$res = mysql_db_query($db, "select bauglmod, id from prod where modell = '$mod' ");
while($row = mysql_fetch_array($res)) {
$id = $row["id"];
$bglm = $row["bauglmod"];
}
print "
<tr>
<td colspan=\"2\"><b>Baugleiche/ähnliche Modelle:</b><br /><br />
";
$array = explode("\n",$bglm);
for($x = 0; $x < count($array); $x++) {
$srchmod = strchr($array[$x], " ");
if($srchmod) {
sscanf($array[$x], "%s", $srchkey);
print "<a href=\"search.php?cat=".$cat."&key=".$srchkey."&mod=".trim($srchmod)."\">".trim($array[$x])."</a><br />";
} else {
print $array[$x]."<br />";
}
}
print "
</td>
</tr>
";
$res = mysql_db_query($db, "select error, solution from rep where matchcode = '$id' ");
print "
<tr>
<td width=\"50%\"><b>Mögliche Fehler:</b></td>
<td><b>Ursachen/Lösungswege:</b></td>
</tr>
";
while($row = mysql_fetch_array($res)) {
$bug = nl2br($row["error"]);
$sol = nl2br($row["solution"]);
print "
<tr>
<td>$bug</td>
<td>$sol</td>
</tr>
";
}
print "
</table>
";
}
?>
<p><a href="login.php">Admin Login</a> <br>(User: hans Passwort: dampf)</p>
</body>
</html>
Danke schon einmal im Vorraus
Verfasst: 21.04.2006 14:28
von Spezial
Mir ist gerade noch von vorhin ein Fehler in der login.php aufgefallen. Dort wo die Weiterleitung zu admin.php ist, steht session_id. Dies muss durch session_id() ersezt werden.
Aber was ist jetzt dein aktuelles Problem? Verstehe ich nicht ganz.
greetz
Verfasst: 21.04.2006 14:51
von sts
Was ich meine ist die übergabe von Geräteart zu Hersteller. Ich kann zwar eine Geräteart auswählen es werden aber nicht die Hersteller geladen?!?
Verfasst: 22.04.2006 19:31
von AmShaegar
also erstmal: warum baust du 3x eine verbindung zur datenbank auf??? mach das doch ganz am anfang der datei einmal... außerdem würde ich dateien die included werden auch an den anfang stellen... falls du den inhalt dieser vorher nämlich nochmal brauchst, musst du sie nicht 2x includen.
dann: was bewirkt folgendes? du hast leider den inhalt der function.php nicht zur verfügung gestellt.
zusätzlich lassen deine variabel-bezeichnungen zu wünschen übrig.. ist ist leider sehr schwer sich zurecht zu finden.
$test, $test1,[...]
das ist das, was mir bis jetzt so auffällt... ich guck noch mal weiter, aber stat dessen
Code: Alles auswählen
<?php
include("config.php");
$link = mysql_connect($hostname, $benutzer, $passwort);
if(!$link) {
die("<strong>Kann den Server nicht erreichen.</strong>");
}else{
mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht öffnen: </strong>".mysql_error() );
}
$res = mysql_db_query($db, "select distinct hersteller from prod where art = '$cat' ");
while($row = mysql_fetch_array($res)) {
print "<option value=\"".$row["hersteller"]."\">".$row["hersteller"]."</option>";
}
mysql_close($link);
?>
z.B. hätte folgendes vollkommen gereicht, sofern du die verbindung zur DB am anfang aufgebaut hättest...
Code: Alles auswählen
<?php
$res = mysql_db_query($db, "select distinct hersteller from prod where art = '$cat' ");
while($row = mysql_fetch_array($res)) {
print "<option value=\"".$row["hersteller"]."\">".$row["hersteller"]."</option>";
}
?>
außerdem meine ich mcih erinnern zu können, dass das
Code: Alles auswählen
print "<option value=\"".$row["hersteller"]."\">".$row["hersteller"]."</option>";
so aussehen muss:
Code: Alles auswählen
print "<option value=\"".$row->hersteller."\">".$row->hersteller."</option>";
edit
ach und mir fiel gerade auf, dass du vergessen hast $cat(siehe Zeile 12) zu definieren:
Verfasst: 23.04.2006 12:05
von sts
Hallo AmShaegar,
vielen Dank für die Hilfe, ich bin leider noch blutiger Anfänger was das kompl. Selbermachen angeht.
Ich bin auch schon Stückchenweise weitergekommen, aber es fehlt halt am Hintergrundwissen und an der Erfahrung. Denn bekanntlich ist erfahrung durch nichts zu ersetzten als durch noch mehr erfahrung.
Hier schon einmal die:
funktions.php
Code: Alles auswählen
<?php
// Wandle Adressen in klickbare Urls um
function urlclick($text) {
$pattern = '#(^|[^\"=]{1})(http://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
return preg_replace($pattern,"\\1<a href=\"\\2\\3\" target=\"_blank\"><u>\\2\\3</u></a>\\4",$text);
}
// Füge Einträge in select Menü ein
function showcat($field, $table) {
include("config.php");
$link = mysql_connect($hostname, $benutzer, $passwort);
if (!$link) {
die("<strong>Kann den Server nicht erreichen.</strong>");
}else{
mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht öffnen: </strong>".mysql_error() );
}
$res = mysql_db_query($db, "select distinct $field from $table");
while($row = mysql_fetch_array($res)) {
print "<option value=\"$row[$field]\">$row[$field]</option>";
}
mysql_close($link);
}
// Füge Einträge in select Menü ein
function showwhere($field, $table, $condition) {
include("config.php");
$link = mysql_connect($hostname, $benutzer, $passwort);
if (!$link) {
die("<strong>Kann den Server nicht erreichen.</strong>");
}else{
mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht öffnen: </strong>".mysql_error() );
}
$res = mysql_db_query($db, "select distinct $field from $table where $condition");
while($row = mysql_fetch_array($res)) {
print "$row[$field]";
}
mysql_close($link);
}
?>
Verfasst: 23.04.2006 12:43
von sts
edit
ach und mir fiel gerade auf, dass du vergessen hast $cat(siehe Zeile 12) zu definieren:
Code:
$cat = $_POST["cat"];
Hm,
meinst du jetzt den Filter?
Verfasst: 23.04.2006 18:24
von AmShaegar
ich meine, dass du die variable $cat ausgeben willst und zwar in das select menü.. außerdem brauchst du diese ja, um die dazugehörigen einträge im näachsten menü abzufragen.. das problem ist, dass die varible leer ist, da du sie nicht definiert hast. das erste mal wo sie auftauch bekommt sie keinen wet zugewiesen sondern wird auf ihren inhalt geprüft, der folglich nicht vorhanden sein kann.