XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   include laden und anzeigen (http://xhtmlforum.de/showthread.php?t=59153)

casge 12.11.2009 04:22

include laden und anzeigen
 
hallo zusammen,

nach tagelangem nicht gelingen wende ich mich mal hier ans forum da es mir nahegelegt wurde. ich hoffe ich kann das so erklären was mein problem ist ;)

also ich habe eine website und möchte nun in meinem navi einen punkt aufrufen

user.php (link)

dieses ist der inhalt der user.php

<? include('h.php'); ?>
<?
$gid = $_GET["id"];
us_anzeigen();
?>

also ich mache es über einen GET befehl aus der haupt php datei.

in der index.php habe ich auch den richtigen include befehl stehen ( <? include('funktionen.php'); ?> ) und die daten werden mir auch angezeigt.... jedoch "unter" der website, sprich es wird einfach angehangen. wie kann ich nun bestimmen wo die ausgabe stattfindet ?

zur erklärung die index.php verweist bei mir auf die h.php und f.php welche die gesamt website darstellt (leider).

ich hoffe ihr könnt mir helfen wo mein fehler/problem liegt.

mfg

Thielo 12.11.2009 10:57

Also erstmal ist dein Problem das du im falschen Forum bist ;)
Serveradministration und serverseitige Scripte - XHTMLforum

wäre das richtige ;)

vielleicht zeigst du uns den kompletten Code, ansonsten kann ich nur spekulieren das der code an der falschen stelle des Dokuments eingegeben ist.

Gruß und noch viel spaß im Forum
Richard | Thielo

casge 12.11.2009 14:19

oj ok danke, vielleicht kann ja ein MOD das hier verschieben das ich nicht einen zweiten erstellen muss und das nachher zu meinem nachteil ausgelegt wird. also zum code, ich hoffe das ich das hier richtig aufzeige

das wäre die index.php

Code:

<? include('h.php'); ?>
<?
include ('/inhalt.php?id=8');
ausgabe (' <p align="center">Herzlich Willkommen </p> ')

?>
<? include('f.php'); ?>



dann die h.php (also die eigentliche website anzeige)

Code:

<? include('funktionen.php'); ?>
und dann kommt der ganz normale quelltext der hp mit den grafiken links usw denke das aufzuführen wäre relativ egeal !?

wenn ich nun einen link drücke welcher auf die user.php verweisst als beispiel enthält dieser link folgenden code

Code:

<? include('h.php'); ?>
<?
$gid = $_GET["id"];
us_anzeigen();
?>
<? include('f.php'); ?>


also er nimmt sich den punkt aus der funktionen.php, das macht er auch alles brav nur setzt den gesamten "mist" unter der webseite ein.... nun möchte ich aber die ausgabe an einer bestimmten stelle haben.... wo liegt mein fehler bzw der gedankliche fehler !?

mfg und danke im vorraus

Praktikant 12.11.2009 15:21

Hast du mal etwas wo du uns das zeigen kannst, ich kann dein Problem leider geistig nicht nachvollziehen, ein Test-Case wäre spitze.
Sonst. Gibt doch mal bitte den Inhalt der Dateien h.php, sowie f.php an. Sind das Kopf und Fußbereich der Seite?

Was amcht die Funktion us_anzeigen() und warum bindest du die Seite inhalt.php nicht ein?

Ich weiß, ein Haufen Fragen, aber ohne Beschreibungen der ganzen Dateien ist es schwer dir zu helfen.

Thielo 12.11.2009 15:25

Das selbe hab ich mir jetzt grade auch gedacht: "HÄÄÄ?" ;) ich kann dir nicht ganz folgen bei dem Problem.
PHP-Code:

$gid $_GET["id"];
us_anzeigen(); 

wahrscheinlich dient die funktion dazu einen auszugeben. dafür müsste ja noche ig die id übergeben werden :P

Gruß

Praktikant 12.11.2009 15:40

Zitat:

Zitat von Thielo (Beitrag 450488)
Das selbe hab ich mir jetzt grade auch gedacht: "HÄÄÄ?" ;) ich kann dir nicht ganz folgen bei dem Problem.
PHP-Code:

$gid $_GET["id"];
us_anzeigen(); 

wahrscheinlich dient die funktion dazu einen auszugeben. dafür müsste ja noche ig die id übergeben werden :P

Gruß

Ja, genau das dachte ich mir auch. Die Funktion wird aber auf der Seite vorher nicht aufgerufen, sondern es wird eine neue Seite eingebunden, welche die ID als Übergabeparameter per GET hat. Das war die Stelle an der ich mich gestört habe :)

casge 12.11.2009 15:54

also die inhalt.php sieht so aus bei mir

Code:

<? include('index.php'); ?>
<?
$id = $_GET['id'];
inhalt_anzeigen($id);
?>

leider kann ich es euch nicht online zeige :(

also momentan ist es so das h.php der header und f.php der footer darstellt wie ihr schon vermutet habt.

ich möchte einfach nur eine seite haben (also eine index.php das ich nicht noch mehr durcheinander komme) das jetzige hat mir jemand gemacht aber da verstehe ich den aufbau nicht. daher wollte ich das vereinfachen so das ich mein design iimmer selber anpassen/ändern kann.

nochmals der ablauf (hab wohl kompliziert erklärt)

die funktionen.php ist die hauptdatei wo tabellen erstellt werden und alles andere. mit dem get befehl versuche ich nun eine dieser ausgaben darzustellen auf einer index.php oder eher gesagt ebend auf der hp. nun verstehe ich nicht wie ich bestimmen kann das wenn man auf einen link drückt der gewünschte bereich aus der funktionen.php ausgelesen wird und in einem bestimmten feld ausgegeben wird. momentan wird es entweder mittig auf der seite (überlagernd aller grafiken etc) oder unten an der hp angehangen.

so wie es jetzt ist geht das ganze auch wie gewollt nur halt mit dieser kombi h.php und f.php und einem design was ich nicht anpassen kann.... :twisted:

ich verzweifel ^^

im grunde möchte ich die möglichkeit haben ein x-beliebiges template zu nehmen als beispiel und die links so zuzuweisen das die ausgabe in einem gewünschten feld erscheint....

Praktikant 12.11.2009 16:03

Ich denke, die Seite unkomplizierter neu zu erstellen wäre für dich das leichteste, ich denke aber, dass du von php und HTML dafür nicht genug weißt, oder?

Ich denke mal, dass du die Datei inhalt.php dringent zum Aufruf brauchst. diese nimmt die id (per GET) entgegen und gibt dann über dir funktion inhalt_anzeigen(), welche die id als Übergabeparameter hat, den Inhalt aus.
Die Funktion inhalt_anzeigen() ist wahrscheinlich in der Datei funktionen.php definiert, wo man dann sicherlich auch finden kann, welche Datei wann aufgerufen wird.

Poste mal die Funktion inhalt_anzeigen() bitte hier :)

PS. Dass du das Code-Tag nutzt ist schonmal gut. Kannst du für php-Code auch das php-Code-Tag nutzen, damit man das Syntax Highlightning hat? Danke :)

casge 12.11.2009 16:12

hi danke sebastian schonmal das dir mein problem näher annimst. mein problem liegt mehr in html als in php :/

Code:

function inhalt_anzeigen($ID)
// Diese Funktion zeigt den Inhalt an der unter der ID gespeichert ist.
{
$sql1 = 'SELECT * FROM inhalt WHERE id= "'.$ID.'";';
$res1 = mysql_query($sql1) OR die(mysql_error());
while($row = mysql_fetch_assoc($res1))
{
$titel = $row['titel'];
$inhalt = $row['inhalt'];
$datum = $row['datum'];

echo "<b>".$titel."</b>";
echo "<p>";
echo $inhalt;
echo "<p>";
echo $datum;
}
}

das die inhalt, aber diese gibt lediglich inhalte wieder welche ich in der datenbank habe. zum vergleich mal die user.php was diese machen/darstellen soll

Code:

function us_anzeigen()
// Gibt die Anzahl der Mitglieder aus und die Mitglieder-Liste
{  $platz = 1;
    echo " <img src=\"img/05.png\" border=\"0\"> Wir haben <b>"; anzahlderuser(); echo "</b> Mitglieder.</ul><p>";
  ausgabe('
  Hier findest du das Aktuelle-Ranking<p><center><table border="0" width=500px>
<tr>
  <th align=left>Platzierung</th>
    <th align=left>Nickname</th>
    <th align=left>Punkte</th>
        <th align=left>S / U / N</th>
        <th align=left>Status</th>
  </tr>');
$sql1 = 'SELECT * FROM user order by punkte  DESC ';
$res1 = mysql_query($sql1) OR die(mysql_error());
while($row = mysql_fetch_assoc($res1))
{
$usid = $row['id'];
$usnickname = $row['nickname'];
$uspunkte = $row['punkte'];
$win = $row['win'];
$loss = $row['loss'];
$draw = $row['draw'];
$status = $row ['status'];

if($status==1)
{
$stardy = "Bereit";
}

if($status==2)
{
$stardy = "Aktiv";
}

if($status==0)
{
$stardy = "Abwesend";
}

       
               
  ausgabe('</td><td>');
  ausgabe('<tr><td>');
  echo "$platz.";
  ausgabe('</td><td>');
  echo "<a href=\"user-detail.php?bid=$usid\">$usnickname</a>";
    ausgabe('</td><td>');
      echo "$uspunkte";
          ausgabe('</td><td>');
      echo "$win / $draw / $loss";
            ausgabe('</td><td>');
        echo "$stardy";
  ausgabe('</tr>');
  $platz = $platz+1;
}
ausgabe('</table></center>');
}


edit: ja einen neuafbau ziehe ich auch vor daher mein anliegen, somt kann ich es in zukunft jederzeit selber anpassen oder ändern

Praktikant 12.11.2009 16:29

Ich kann in den beiden Dateien keinen Fehler entdecken... Meine Vermutung ist daher, dass irgendwas am Quellcode fehlt, aber leider kann ich das nicht sehen oder erkennen, da ich die HTML-Ausgabe nicht sehe.
Kannst du mal die Ausgabe des HTML-Codes auch noch hier Posten, die beiden Funktionen rufen ja komplett andere Daten aus anderen Tabellen nach anderen Vorgaben ab.

Wenn du die Seite neu baust, dann erstell die ein Template-System, welches die Dateien bzw. IDs kennt, welche verwendet werden dürfen. Bei allen anderen gibts dann entsprechende Fehlerseite.
Meine Systeme finden meistens über ein Switch-Konstrukt, manchmal auf über If-Else heraus welche Seiten eingebunden werden sollen. Diese werden dann eingebunden und holen entsprechend den Inhalt aus der Datenbank (wenn mehrere Templates). Habe ich nur ein Template benutze ich für das abrufen einfach die index.php, welche dann entweder per Seitenname oder SeitenID den Inhalt aus der Datenbank nimmt. (kaum Kapselung) Ist Kapselung nötig, dann wirds etwas komplizierter. Damit hast du aber sicher keine Probleme.

Des Quelltext für den Haupt-aufbau der Seite kannst du einfach in die index.html schreiben, wenn es dich nicht stört. Benutze aber lieber div's und CSS. Die Formatierungen der Seiten (<h1>, <p>, <a> usw.) kommen dann immer direkt in die entsprechende Seite in den Text.


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:09 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2022, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2022