Autor |
Nachricht |
gerch2003
Threadersteller
Dabei seit: 07.07.2008
Ort: -
Alter: 63
Geschlecht:
|
Verfasst Mo 01.12.2008 10:59
Titel PHP Datenbankabfrage funktioniert nicht, aber kein Fehler |
|
|
HeyHo, ich bau grad unsere Seite www.hauswelt.de etwas um. und wie ihr dort seht steht links in der Navi Bauweise: und dann müsste eigenltich eine Auflistung von 4 Punkten kommen und wenn ich draufklicke mir die dazugehörigen Häuser anzeigen, denen ich vorher im CMS einen Wert von 0-3 zugewiesen hab. Die tabelle in der Datenbank heist build_typ. Also genauso wie bei Haustypen, nur dass es dort ein wert von 0-6 und dann die 9 noch da zu kommt und die tabelle in der datenbank house_typ heißt.
Mein Code sieht so aus:
Code: | echo("<tr>
<td style=\"padding-top:7px;padding-bottom:8px;\"><img src=\"images/navig/line.gif\" width=\"150\" height=\"4\" border=\"0\"></td>
</tr>
<tr>
<td style=\"padding-left:26px;padding-bottom:2px;\">Bauweisen:</td>
</tr>");
//---------- Verbindung zur Haus-Tabelle herstellen ----------
$mysql_select = "SELECT DISTINCT build_typ FROM hauswelt_houses WHERE publish='on' ORDER BY build_typ;";
$ressource_id_1 = mysql_query( $mysql_select );
// echo( "ID 1: ".$ressource_id_1."<br>".$mysql_select."<br>" );
//---------- Einträge anzeigen ----------
if ($ressource_id_1 && mysql_num_rows($ressource_id_1) > -1) {
for ($i=0; $i < mysql_num_rows($ressource_id_1); $i++) {
$output = mysql_fetch_array($ressource_id_1);
$temp[] = $output['build_typ'];
//echo($temp[$i]."<br>");
}
//---------- MySQL-Speicher leeren ----------
mysql_free_result($ressource_id_1);
}
//---------- Bauweisen anzeigen ----------
if (isset($temp) && is_array($temp)) {
for ($i=0; $i < count($build_typ); $i++) {
if (($i < 5 || $i > 7) && in_array($i, $temp)) {
echo("<tr>
<td style=\"\"><img src=\"images/icons/arrow.gif\" width=\"25\" height=\"11\" border=\"0\" align=\"absmiddle\"><a href=\"?main=build&typ=".($i+1)."\" target=\"_self\" class=\"navig\">".$build_typ[$i]."</a></td>
</tr>");
//---------- Passende Häuser zur ausgewählten Bauart ----------
if ($typ && $typ == ($i+1)) {
//---------- Verbindung zur Haus-Tabelle herstellen ----------
$mysql_select = "SELECT entry_nr,name FROM hauswelt_houses WHERE (publish='on' AND build_typ='".($typ-1)."') ORDER BY name;";
$ressource_id_1 = mysql_query( $mysql_select );
// echo( "ID 1: ".$ressource_id_1."<br>".$mysql_select."<br>" );
//---------- Einträge anzeigen ----------
if ($ressource_id_1 && mysql_num_rows($ressource_id_1) < 5) {
for ($t=0; $t < mysql_num_rows($ressource_id_1); $t++) {
$output = mysql_fetch_array($ressource_id_1);
//---------- Platzhalter in der Hausbezeichnung ersetzen ----------
$text = $output['name'];
include("include/text.php");
$output['name'] = $text;
echo("<tr>
<td style=\"padding-left:20px;\"><img src=\"images/icons/arrow.gif\" width=\"25\" height=\"11\" border=\"0\" align=\"absmiddle\"><a href=\"?main=build&typ=".$typ."&item=".$output['entry_nr']."\" target=\"_self\" class=\"navig\">Haus ".$output['name']."</a></td>
</tr>");
}
//---------- MySQL-Speicher leeren ----------
mysql_free_result($ressource_id_1);
}
}
}
}
} |
ich hoffe mal ihr habt alles verstanden
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Mo 01.12.2008 11:09
Titel
|
|
|
ich wette count($build_typ) is 0
glaube, richtiger wäre $temp
Code: |
if (isset($temp) && is_array($temp)) {
for ($i=0; $i < count($temp); $i++) {
if (($i < 5 || $i > 7) && in_array($i, $temp)) {
echo("<tr>
<td style=\"\"><img src=\"images/icons/arrow.gif\" width=\"25\" height=\"11\" border=\"0\" align=\"absmiddle\"><a href=\"?main=build&typ=".($i+1)."\" target=\"_self\" class=\"navig\">".$temp[$i]."</a></td>
|
|
|
|
|
|
Anzeige
|
|
|
gerch2003
Threadersteller
Dabei seit: 07.07.2008
Ort: -
Alter: 63
Geschlecht:
|
Verfasst Mo 01.12.2008 11:41
Titel
|
|
|
ich habs ez mal auf so geändert:
Code: | echo("<tr>
<td style=\"padding-top:7px;padding-bottom:8px;\"><img src=\"images/navig/line.gif\" width=\"150\" height=\"4\" border=\"0\"></td>
</tr>
<tr>
<td style=\"padding-left:26px;padding-bottom:2px;\">Bauweisen:</td>
</tr>");
//---------- Verbindung zur Haus-Tabelle herstellen ----------
$mysql_select = "SELECT DISTINCT build_typ FROM hauswelt_houses WHERE publish='on' ORDER BY build_typ;";
$ressource_id_1 = mysql_query( $mysql_select );
// echo( "ID 1: ".$ressource_id_1."<br>".$mysql_select."<br>" );
//---------- Einträge anzeigen ----------
if ($ressource_id_1 && mysql_num_rows($ressource_id_1) > -1) {
for ($i=0; $i < mysql_num_rows($ressource_id_1); $i++) {
$output = mysql_fetch_array($ressource_id_1);
$temp[] = $output['build_typ'];
//echo($temp[$i]."<br>");
}
//---------- MySQL-Speicher leeren ----------
mysql_free_result($ressource_id_1);
}
//---------- Bauweisen anzeigen ----------
if (isset($temp) && is_array($temp)) {
for ($i=0; $i < count($temp); $i++) {
if (($i < 4) && in_array($i, $temp)) {
echo("<tr>
<td style=\"\"><img src=\"images/icons/arrow.gif\" width=\"25\" height=\"11\" border=\"0\" align=\"absmiddle\"><a href=\"?main=build&typ=".($i+1)."\" target=\"_self\" class=\"navig\">".$build_typ[$i]."</a></td>
</tr>");
//---------- Passende Häuser zur ausgewählten Bauart ----------
if ($typ && $typ == ($i+1)) {
//---------- Verbindung zur Haus-Tabelle herstellen ----------
$mysql_select = "SELECT entry_nr,name FROM hauswelt_houses WHERE (publish='on' AND build_typ='".($typ-1)."') ORDER BY name;";
$ressource_id_1 = mysql_query( $mysql_select );
// echo( "ID 1: ".$ressource_id_1."<br>".$mysql_select."<br>" );
//---------- Einträge anzeigen ----------
if ($ressource_id_1 && mysql_num_rows($ressource_id_1) < 5) {
for ($t=0; $t < mysql_num_rows($ressource_id_1); $t++) {
$output = mysql_fetch_array($ressource_id_1);
//---------- Platzhalter in der Hausbezeichnung ersetzen ----------
$text = $output['name'];
include("include/text.php");
$output['name'] = $text;
echo("<tr>
<td style=\"padding-left:20px;\"><img src=\"images/icons/arrow.gif\" width=\"25\" height=\"11\" border=\"0\" align=\"absmiddle\"><a href=\"?main=build&typ=".$typ."&item=".$output['entry_nr']."\" target=\"_self\" class=\"navig\">Haus ".$output['name']."</a></td>
</tr>");
}
//---------- MySQL-Speicher leeren ----------
mysql_free_result($ressource_id_1);
}
}
}
}
} |
und es zeigt mir, wie du siehst ( www.hauswelt.de ) schon einmal die pfeile an...aber immernoch nicht wirkliche unterpunkte
ich denke, dass es hiermit: Code: |
if (($i < 5 || $i >7) && in_array($i, $temp)) |
zu tun hat, da ich ja eigentlich die werte von 0-3 angezeigt brauche.
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Mo 01.12.2008 11:47
Titel
|
|
|
DA STEHT JA IMMER NOCH $build-typ
Code: |
width=\"25\" height=\"11\" border=\"0\" align=\"absmiddle\"><a href=\"?main=build&typ=".($i+1)."\" target=\"_self\" class=\"navig\">".$build_typ[$i]."</a></td> |
mach da auch $temp[$i] raus, und du bist glücklich...
|
|
|
|
|
gerch2003
Threadersteller
Dabei seit: 07.07.2008
Ort: -
Alter: 63
Geschlecht:
|
Verfasst Mo 01.12.2008 11:57
Titel
|
|
|
Juhuuuuuu ich bin Glücklich!!!....
ah shit ne doch nich^^...
ez zeigts mir nur die werte an, aber nich die Namen
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Mo 01.12.2008 12:02
Titel
|
|
|
dann steht in der db unter build_typ wohl nur die zahl. du musst dann erweitern. guck, in welcher spalte die bezeichnung steht, erweiter deinen mysql_query
Code: |
"SELECT DISTINCT build_typ, bezeichnung FROM hauswelt_houses WHERE publish='on' ORDER BY build_typ;"
|
dann deine zusammensetzung:
Code: |
$temp[] = $output['build_typ'];
$temp_bez[] = $output['bezeichnung'];
|
dann die ausgabe:
Code: |
<td style=\"\"><img src=\"images/icons/arrow.gif\" width=\"25\" height=\"11\" border=\"0\" align=\"absmiddle\"><a href=\"?main=build&typ=".($i+1)."\" target=\"_self\" class=\"navig\">".$temp_bez[$i]."</a></td>
|
EDIT: finde es darüber hinaus witzig, wie sich deine "haustypen"-navigation verändert, wenn man "bauweisen" anklickt ich denke, da musst du noch mal über deine variable "typ" nachdenken....
Zuletzt bearbeitet von pixelpapst303 am Mo 01.12.2008 12:06, insgesamt 2-mal bearbeitet
|
|
|
|
|
gerch2003
Threadersteller
Dabei seit: 07.07.2008
Ort: -
Alter: 63
Geschlecht:
|
Verfasst Mo 01.12.2008 12:08
Titel
|
|
|
ok...da werd ich dann wohl einiges in meiner datenbank nochmal überdenken müssen ...lol...
aber gut, schomal danke für die hilfe
|
|
|
|
|
gerch2003
Threadersteller
Dabei seit: 07.07.2008
Ort: -
Alter: 63
Geschlecht:
|
Verfasst Mo 01.12.2008 12:52
Titel
|
|
|
ach ich hab die ganze geschichte, was ich vielleicht noch dazu sagen soltle, von haustypen kopiert in der hoffnung, es funktioniert, wenn ich einfach die verknüpfungen zur tabell änder ...hier das original: Code: |
echo("<tr>
<td style=\"padding-top:7px;padding-bottom:8px;\"><img src=\"images/navig/line.gif\" width=\"150\" height=\"4\" border=\"0\"></td>
</tr>
<tr>
<td style=\"padding-left:26px;padding-bottom:2px;\">Haustypen:</td>
</tr>");
//---------- Verbindung zur Haus-Tabelle herstellen ----------
$mysql_select = "SELECT DISTINCT house_typ FROM hauswelt_houses WHERE publish='on' ORDER BY house_typ;";
$ressource_id_1 = mysql_query( $mysql_select );
// echo( "ID 1: ".$ressource_id_1."<br>".$mysql_select."<br>" );
//---------- Einträge anzeigen ----------
if ($ressource_id_1 && mysql_num_rows($ressource_id_1) > 0) {
for ($i=0; $i < mysql_num_rows($ressource_id_1); $i++) {
$output = mysql_fetch_array($ressource_id_1);
$temp[] = $output['house_typ'];
//echo($temp[$i]."<br>");
}
//---------- MySQL-Speicher leeren ----------
mysql_free_result($ressource_id_1);
}
//---------- Haustypen anzeigen ----------
if (isset($temp) && is_array($temp)) {
for ($i=0; $i < count($house_typ); $i++) {
if (($i < 5 || $i > 7) && in_array($i, $temp)) {
echo("<tr>
<td style=\"\"><img src=\"images/icons/arrow.gif\" width=\"25\" height=\"11\" border=\"0\" align=\"absmiddle\"><a href=\"?main=houses&typ=".($i+1)."\" target=\"_self\" class=\"navig\">".$house_typ[$i]."</a></td>
</tr>");
//---------- Passende Häuser zum ausgewählten Haustyp ----------
if ($typ && $typ == ($i+1)) {
//---------- Verbindung zur Haus-Tabelle herstellen ----------
$mysql_select = "SELECT entry_nr,name FROM hauswelt_houses WHERE (publish='on' AND house_typ='".($typ-1)."') ORDER BY name;";
$ressource_id_1 = mysql_query( $mysql_select );
// echo( "ID 1: ".$ressource_id_1."<br>".$mysql_select."<br>" );
//---------- Einträge anzeigen ----------
if ($ressource_id_1 && mysql_num_rows($ressource_id_1) > 0) {
for ($t=0; $t < mysql_num_rows($ressource_id_1); $t++) {
$output = mysql_fetch_array($ressource_id_1);
//---------- Platzhalter in der Hausbezeichnung ersetzen ----------
$text = $output['name'];
include("include/text.php");
$output['name'] = $text;
echo("<tr>
<td style=\"padding-left:20px;\"><img src=\"images/icons/arrow.gif\" width=\"25\" height=\"11\" border=\"0\" align=\"absmiddle\"><a href=\"?main=houses&typ=".$typ."&item=".$output['entry_nr']."\" target=\"_self\" class=\"navig\">Haus ".$output['name']."</a></td>
</tr>");
}
//---------- MySQL-Speicher leeren ----------
mysql_free_result($ressource_id_1);
}
}
}
}
} |
ich wollte dir das nur nochmal zeigen, weil es ja eigentlich auch so geht, ohne dass ich direkt den $temp auslese, sondern auch über die tabelle...verstehst du, was ich mein?...
gut, da wäre dann allerdings auch geklärt, warum das mit dem $typ so ist, wies is
|
|
|
|
|
|
|
|
Ähnliche Themen |
php - Datenbankabfrage...die Zweite
Datenbankabfrage ergibt nur ein Ergebnis
Datenbankabfrage - Werte vergleichen und zählen
Wie funktioniert Lightroom?
Shopsystem - Wie funktioniert es
Wie funktioniert SEO (Grundsätze)
|
|