tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
225
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    YStadler YStadler ist offline Mitglied Bronze
    Registriert seit
    Jul 2008
    Beiträge
    25
    Hallo,

    mal wieder ein kleines Problem, wo ich grade vor lauter Code nicht mehr durchsteige.
    Baue mir ein kleines CMS für mich selbst und bin noch ganz am Anfang.
    Ich erstelle mir grade den <head>, wo ich die Metas und den Titel automatisch auslesen lassen möchte.
    Klappt auch alles ganz gut, nur wenn ich das ganze ausgebe, ist die Reihenfolge ganz falsch.
    Mal der Code und dann was ausgegeben wird:

    PHP-Code:
    function pagetitel() {
        
    $result mysql_query("SELECT * FROM settings WHERE name='pagetitle'");
        
    $pagetitle mysql_fetch_array($result); $pagetitle $pagetitle['value'];
        
        echo 
    $pagetitle;
    }
    function 
    meta() {
        
    $result mysql_query("SELECT * FROM meta WHERE meta='description'");
        
    $meta mysql_fetch_array($result); $description $meta['value'];
        
    $result mysql_query("SELECT * FROM meta WHERE meta='keywords'");
        
    $meta mysql_fetch_array($result); $keywords $meta['value'];
        
    $result mysql_query("SELECT * FROM meta WHERE meta='author'");
        
    $meta mysql_fetch_array($result); $author $meta['value'];
        
    $result mysql_query("SELECT * FROM meta WHERE meta='email'");
        
    $meta mysql_fetch_array($result); $email $meta['value'];
        
        echo
    '
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <meta http-equiv="content-language" content="de" />
            <meta name="description" content="'
    .$description.'" />
            <meta name="keywords" content="'
    .$keywords.'" />
            <meta name="author" content="'
    .$author.'" />
            <meta name="copyright" content="Stadler-Design, www.stadler-design.de" />
            <meta name="page-type" content="Private Homepage" />
            <meta http-equiv="reply-to" content="'
    .$email.'" />
            <meta name="revisit-after" content="2 days" />
        '
    ;
    }
    function 
    kopf() {
        echo
    '
            <!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>
            '
    .meta().'
            <title>'
    .pagetitel().'</title>
            <link rel="stylesheet" href="style/sheet.css" type="text/css" />
            </head>
            <body>
        '
    ;

    HTML-Code:
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<meta http-equiv="content-language" content="de" />
    		<meta name="description" content="Dies ist die Testversion von dem CMS Stade aus dem Hause Stadler. Die derzeitige Version ist 1.0" />
    		<meta name="keywords" content="Stadler, Design, Yannic, Webdesign, Programmierung, CMS, Stade, 1.0" />
    		<meta name="author" content="Yannic Stadler" />
    		<meta name="copyright" content="Stadler-Design, www.stadler-design.de" />
    		<meta name="page-type" content="Private Homepage" />
    		<meta http-equiv="reply-to" content="info@yannic-stadler.de" />
    
    		<meta name="revisit-after" content="2 days" />
    	Das ist eine Testseite
    		<!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></title>
    		<link rel="stylesheet" href="style/sheet.css" type="text/css" />
    		</head>
    		<body>
    Woran kann das liegen?
    LG und danke schonmals
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Die meta()-Funktion gibt die Daten auch direkt aus und nicht als Rückgabewert wieder.
     
    Markus Wulftange

  3. #3
    YStadler YStadler ist offline Mitglied Bronze
    Registriert seit
    Jul 2008
    Beiträge
    25
    Hallo,

    wie meinst du das?
     

  4. #4
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Du musst die Werte mit return zurückgeben statt sie direkt mit echo auszugeben.
     
    Markus Wulftange

  5. #5
    YStadler YStadler ist offline Mitglied Bronze
    Registriert seit
    Jul 2008
    Beiträge
    25
    Hallo,
    ah dankeschön das klappt hervorragend
    LG
     

  6. #6
    Avatar von zyro
    zyro zyro ist offline Mitglied Silber
    Registriert seit
    Jul 2005
    Ort
    Remscheid
    Beiträge
    90
    Entweder du probierst es mit return, oder aber du gibst die Funktion mit einem eigenen echo aus also:

    PHP-Code:
    function kopf() {
        echo
    '
            <!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>'
    ;
            echo
    ''.meta().'';

            echo
    '<title>';
    echo
    ''.pagetitel().';'
    echo'</title>
            <link rel="stylesheet" href="style/sheet.css" type="text/css" />
            </head>
            <body>
        '
    ;

    Ich seh gerade, du hast die return Variante benutzt die folgende Frage bleibt:

    Ich habe aber mal eine Frage, hat es einen speziellen Sinn, dass du für jeden Wert einen neuen query startes? Wozu benutzt Du denn mysql_fetch_array (im übrigen solltest du mysql_fetch_assoc nehmen, da es Resourcenschonender ist).
    Geändert von zyro (08.07.08 um 13:10 Uhr)
     

  7. #7
    YStadler YStadler ist offline Mitglied Bronze
    Registriert seit
    Jul 2008
    Beiträge
    25
    Hmm mir fällt grade noch etwas dabei auf.
    Wenn ich das ganze als Schleife (for/while) mache,
    bricht das doch ab, wenn ich da jetzt PHP.net richtig verstanden habe.

    Wie soll ich es denn sonst machen?
    Muss doch einen neuen Query starten oder?
    Wird ja jedesmal was anderes ausgelesen.

    LG
     

  8. #8
    Avatar von zyro
    zyro zyro ist offline Mitglied Silber
    Registriert seit
    Jul 2005
    Ort
    Remscheid
    Beiträge
    90
    Ich habe da auch nochmal drüber nachgedacht und ich glaube, dass das Problem bei deiner DB-Struktur ist, wie ist deine Tabelle denn aufgebaut?
     

  9. #9
    YStadler YStadler ist offline Mitglied Bronze
    Registriert seit
    Jul 2008
    Beiträge
    25
    also meine Tabelle ist in 2 spalten nur aufgebaut (meta & value)
    und die verschiedenen metatags lese ich dann aus:

    meta ------------- value
    description -------- Das ist eine Seite
    keywords ---------- Seite, Homepage, ....
    author --------------- Ich

    Wusste nicht wie ich das anders aufbauen sollte.

    LG
     

  10. #10
    Avatar von zyro
    zyro zyro ist offline Mitglied Silber
    Registriert seit
    Jul 2005
    Ort
    Remscheid
    Beiträge
    90
    Das ist natürlich kein Vorteilhafter aufbau...

    Wenn Du die Tabelle so aufbaust:

    id +++ description +++ keywords +++ author
    1 Das ist eine Seite dein words das bin ich


    kannst Du mir nur einem query auf alles zugreifen. also:

    PHP-Code:
    $res mysql_query("SELECT * FROM Tabelle");
    $rowmysql_fetch_assoc($res);

    // und dann ganz einfach:

    $row['description']

    $row['keywords']

    $row['autho'
     

  11. #11
    YStadler YStadler ist offline Mitglied Bronze
    Registriert seit
    Jul 2008
    Beiträge
    25
    stimmt so rum ginge es auch!
    vll sogar besser.

    aber es würde mich immer noch interessieren, wie das ganze mit return in einer schleife ginge, da return ja nach erstmaliigem starten abbricht.

    lg
     

  12. #12
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    Hi, so in etwa:
    PHP-Code:
    function foo$bar )
    {
        
    $tmp '';
        while( 
    $bedingung )
        {
            
    $tmp .= 'irgendwas';
        }
        return 
    $tmp;

     
    mfg
    --------------------------------------------------------------------------------
    Kein Support via PN, Email, ICQ, Brieftaube oder Flaschenpost!

    Besucht den tutorials.de-Chat | Anleitung
    RTFM - PHP-Handbuch - MySql Handbuch
    --------------------------------------------------------------------------------
    Surftipp...Der Postillon
    --------------------------------------------------------------------------------
    Signatur v2.2

Ähnliche Themen

  1. [VB 2008] Falsche Ausgabe bei XML-Auslese
    Von OnkelTimon im Forum .NET Datenverwaltung
    Antworten: 0
    Letzter Beitrag: 09.02.10, 11:05
  2. Falsche Ausgabe
    Von HackTack10 im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 21.10.05, 14:57
  3. falsche ausgabe aus XML datei
    Von hohly im Forum PHP
    Antworten: 1
    Letzter Beitrag: 21.10.05, 04:20
  4. Falsche Ausgabe mit PEAR::DB
    Von StefanR im Forum PHP
    Antworten: 1
    Letzter Beitrag: 11.11.04, 05:05
  5. Firefox macht falsche ausgabe
    Von draig im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 28.07.04, 14:44