tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
497
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von dsNDesign
    dsNDesign dsNDesign ist offline Mitglied Gold
    Registriert seit
    Dec 2008
    Beiträge
    160
    Hi,
    ich habe eine Datenbank, in der sich mehrere Einträge befinden. Diese habe ich alle abgerufen. Nun zu meiner Frage. Die Einträge befinden sich alle untereinander. Nun möchte ich, dass man aus der "Liste" mit den Einträge einzelne auswählen kann. Das soll ungefähr so wie bei Wordpress funktionieren. Da sind ja alle News untereinander. Wenn man jetzt eine anklickt, wird nur die angeklickte angezeigt. Wie setze ich das um, dass ich so einzelne Datenbank einträge mit einem Mausklick auswählen und anzeigen lassen kann?

    Ich hoffe man versteht was ich meine

    Grüße

    EDIT:
    Ich habe es jetzt so, dass ich per Link die ID abrufen kann. Der Titel ist also immer ein Link mit der dazugehörigen id.
    Der Link sieht dann immer wiefolgt aus: /index.php?id=25
    Jedoch werden dann immernoch alle Einträge angezeigt und nicht nur der, mit der jeweiligen id. Wie mache ich es, dass dann nur der Eintrag mit z.B. der id 25 angezeigt wird?

    EDIT2:
    Ich hab hier mal den ganzen momentanen Code:
    PHP-Code:
    <?php include_once("db_news.php");

    $sql "SELECT * FROM `news`;";
    $eintrage mysql_num_rows(mysql_query($sql));
    $maxproseite 3;
     
     
    $i 0;
    $ab =1;
    if (isset(
    $_GET['page'])) $ab $_GET['page'];

    $anzahl_seiten = ($eintrage $maxproseite);

    if (!isset(
    $_GET['page'])) {
        
    $sql "SELECT * FROM `news` ORDER BY `id` DESC LIMIT 0,".$maxproseite.";";  
    } else {
        
    $abeintrag $_GET['page'] * $maxproseite $maxproseite;
        
    $sql "SELECT * FROM `news` ORDER BY `id` DESC LIMIT ".$abeintrag.",".$maxproseite.";";
    }
    $result mysql_query($sql);
    while(
    $row mysql_fetch_assoc($result)){
        echo 
    '
      <div style="margin-left:10px">
      <a href="index.php?id='
    .$row['id'].'"><b>'.$row['titel'].'</b></a><br />
      <a class="datum">'
    .$row['datum'].'</a><br />
      '
    .$row['text'].'<br /><br /></div>
      <div align="center"><img src="image/grenze.png" alt="gre"/></div><br />'
    ;
        }
    $i=$ab ;
    if(
    $i 1)
    {
       echo 
    "<a href=\"index.php?section=gb&amp;page=".($i-1)."\">&lt;&lt;Zur&uuml;ck</a> ";

    if(
    $i <= $anzahl_seiten)
    {
       echo 
    "&nbsp;&nbsp;<a href=\"index.php?section=gb&amp;page=".($i+1)."\">N&auml;chste&gt;&gt;</a>";
    }


    ?>
    oben der row['titel'] wird ja mi der id verlinkt. Wenn man auf diesen klickt, soll nur dieser Eintrag angezeigt werden.
    Geändert von dsNDesign (27.02.09 um 21:05 Uhr)
     

  2. #2
    Avatar von dsNDesign
    dsNDesign dsNDesign ist offline Mitglied Gold
    Registriert seit
    Dec 2008
    Beiträge
    160
    also. inwzischen habe ich es hinbekommen, dass wenn ich auf den titel klicke, dass es durch die id den eintrag anzeigt. jedoch ist es im code bisher nur so, dass es den eintrag unten unter den anderen anzeigt, da ich es ja auch einfach so geschrieben habe.

    so sieht es aus:
    PHP-Code:
    <?php include_once("db_news.php");

    $sql "SELECT * FROM `news`;";
    $eintrage mysql_num_rows(mysql_query($sql));
    $maxproseite 3;
     
    $i 0;
    $ab =1;
    if (isset(
    $_GET['page'])) $ab $_GET['page'];

    $anzahl_seiten = ($eintrage $maxproseite);

    if (!isset(
    $_GET['page'])) {
        
    $sql "SELECT * FROM `news` ORDER BY `id` DESC LIMIT 0,".$maxproseite.";";  
    } else {
        
    $abeintrag $_GET['page'] * $maxproseite $maxproseite;
        
    $sql "SELECT * FROM `news` ORDER BY `id` DESC LIMIT ".$abeintrag.",".$maxproseite.";";
    }
    $result mysql_query($sql);
    while(
    $row mysql_fetch_assoc($result)){
        echo 
    '
      <div style="margin-left:10px">
      <a href="index.php?id='
    .$row['id'].'"><b>'.$row['titel'].'</b></a><br />
      <a class="datum">'
    .$row['datum'].'</a><br />
      '
    .$row['text'].'<br /><br /></div>
      <div align="center"><img src="image/grenze.png" alt="gre"/></div><br />'
    ;
        }
    $i=$ab ;
    if(
    $i 1)
    {
       echo 
    "<a href=\"index.php?section=gb&amp;page=".($i-1)."\">&lt;&lt;Zur&uuml;ck</a> ";

    if(
    $i <= $anzahl_seiten)
    {
       echo 
    "&nbsp;&nbsp;<a href=\"index.php?section=gb&amp;page=".($i+1)."\">N&auml;chste&gt;&gt;</a>";
    }

    // einzelner Eintrag
    $id $_GET['id'];

     
    $sql2 mysql_query("SELECT * FROM news WHERE id = '$id'");
     if(
    $row mysql_fetch_assoc($sql2)) {
        echo 
    '
      <div style="margin-left:10px">
      <a href="index.php?id='
    .$row['id'].'"><b>'.$row['titel'].'</b></a><br />
      <a class="datum">'
    .$row['datum'].'</a><br />
      '
    .$row['text'].'<br /><br /></div>
      <div align="center"><img src="image/grenze.png" alt="gre"/></div><br />'
    ;
    }
    ?>
    Nun möchte ich mit einer if-Anweisung abfragen, ob die URL nur index.php beträgt oder z.B. index.php?id=24. Ich möchte es nämlich so machen, dass bei index.php ganz normal die einträge untereinander angezeigt werden, und wenn noch ein ?id=24 dabei ist, soll nur der Eintrag mit der dazugehörigen id angezeigt werden.

    Wie kann ich mit den hinteren Teil der URL überprüfen lassen (also das ?id=24)?

    Grüße
    Geändert von dsNDesign (28.02.09 um 14:02 Uhr)
     

  3. #3
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    Zitat Zitat von dsNDesign Beitrag anzeigen
    Wie kann ich mit den hinteren Teil der URL überprüfen lassen (also das ?id=24)?
    Im Ernst? Wie Du an die id kommst, hast Du doch schon herausgefunden. Wie Du prüfst, ob ein bestimmter Parameter in der URL übergeben wurde, hast Du auch herausgefunden, wie man an der Blätterfunktionalität sieht. Wo ist jetzt das Problem?

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  4. #4
    Avatar von dsNDesign
    dsNDesign dsNDesign ist offline Mitglied Gold
    Registriert seit
    Dec 2008
    Beiträge
    160
    Ich weiß auch nicht so genau, wo das Problem lag. Irgendwie stand ich auf dem Schlauch.

    Inzwischen geht es. Hier mein Final Code:
    PHP-Code:
    <?php include_once("db_news.php");

    $sql "SELECT * FROM `news`;";
    $eintrage mysql_num_rows(mysql_query($sql));
    $maxproseite 3;
     
    $i 0;
    $ab =1;
    if (isset(
    $_GET['page'])) $ab $_GET['page'];

    $anzahl_seiten = ($eintrage $maxproseite);

    if (!isset(
    $_GET['page'])) {
        
    $sql "SELECT * FROM `news` ORDER BY `id` DESC LIMIT 0,".$maxproseite.";";  
    } else {
        
    $abeintrag $_GET['page'] * $maxproseite $maxproseite;
        
    $sql "SELECT * FROM `news` ORDER BY `id` DESC LIMIT ".$abeintrag.",".$maxproseite.";";
    }
    $result mysql_query($sql);
    while(
    $row mysql_fetch_assoc($result)){
        if(!isset(
    $_GET['id'])) {
        echo 
    '
      <div style="margin-left:10px">
      <a href="index.php?id='
    .$row['id'].'"><b>'.$row['titel'].'</b></a><br />
      <a class="datum">'
    .$row['datum'].'</a><br />
      '
    .$row['text'].'<br /><br /></div>
      <div align="center"><img src="image/grenze.png" alt="gre"/></div><br />'
    ;
        }}
    $i=$ab ;
    if(
    $i and !isset($_GET['id']))
    {
       echo 
    "<a href=\"index.php?section=gb&amp;page=".($i-1)."\">&lt;&lt;Zur&uuml;ck</a> ";

    if(
    $i <= $anzahl_seiten and !isset($_GET['id']))
    {
       echo 
    "&nbsp;&nbsp;<a href=\"index.php?section=gb&amp;page=".($i+1)."\">N&auml;chste&gt;&gt;</a>";
    }

    // einzelner Eintrag
    $id $_GET['id'];

     
    $sql2 mysql_query("SELECT * FROM news WHERE id = '$id'");
     if(
    $row mysql_fetch_assoc($sql2) and isset($_GET['id'])) {
        echo 
    '
      <div style="margin-left:10px">
      <a href="index.php?id='
    .$row['id'].'"><b>'.$row['titel'].'</b></a><br />
      <a class="datum">'
    .$row['datum'].'</a><br />
      '
    .$row['text'].'<br /><br /></div>
      <div align="center"><img src="image/grenze.png" alt="gre"/></div><br />'
    ;
    }
    ?>
     

  5. #5
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    noch ein Hinweis zur Sicherheit: Du solltest niemals Daten aus Usereingaben ungeprüft verwenden (z.B. in Datenbankabfragen). Google mal nach dem Stichwort SQL-Injection.

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  6. #6
    Avatar von queicherius
    queicherius queicherius ist offline ♥ PHP ♥
    Registriert seit
    Oct 2008
    Ort
    Stuttgart
    Beiträge
    439
    du solltest auch noch alles prüfen was der nutzer verändern kann!!

    PHP-Code:
    $id $_GET["id"];
    $id mysql_real_escape_string($id); 
    glaube dem nutzer nie
     
    Jeder freut sich über eine positive Bewertung oder ein Danke :)

    Wie poste ich falsch
    Nachdem ich Google, die FAQ und die interne Suche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen in den falschen Unterforen, mit kreativen Titel und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. Helfende Posts anderer Mitglieder ignoriere ich einfach und nörgle, dass mir niemand helfen kann.
    Mein Motto

  7. #7
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    da die id aber vermutlich ein integer-Wert ist, sollte man sie auch dementsprechend behandeln. mysql_real_escape_string() maskiert Zeichen mit Sonderbedeutung in Strings. Ich würde hier eher abfragen, ob $_GET['id'] überhaupt ein integer ist.

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  8. #8
    Avatar von queicherius
    queicherius queicherius ist offline ♥ PHP ♥
    Registriert seit
    Oct 2008
    Ort
    Stuttgart
    Beiträge
    439
    ich meinte nur mal grundsätzlich
     
    Jeder freut sich über eine positive Bewertung oder ein Danke :)

    Wie poste ich falsch
    Nachdem ich Google, die FAQ und die interne Suche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen in den falschen Unterforen, mit kreativen Titel und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. Helfende Posts anderer Mitglieder ignoriere ich einfach und nörgle, dass mir niemand helfen kann.
    Mein Motto

  9. #9
    Avatar von dsNDesign
    dsNDesign dsNDesign ist offline Mitglied Gold
    Registriert seit
    Dec 2008
    Beiträge
    160
    Danke für die Tipps. Werd es mir später nochmal genau anschauen.
     

Ähnliche Themen

  1. [mySQL 5] Zu den Monaten Einträge zählen und Monate ohne Einträge auch ausgeben.
    Von FlaverSaver im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 27.09.10, 18:11
  2. Array in MySQL speichern und abrufen
    Von Lachkopf im Forum PHP
    Antworten: 2
    Letzter Beitrag: 11.05.08, 21:48
  3. Antworten: 17
    Letzter Beitrag: 27.08.05, 14:36
  4. Einzelne Einträge sperren
    Von Eiszwerg im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 04.06.03, 19:11
  5. MySQL Fehlermeldung mit PHP abrufen?
    Von Moartel im Forum PHP
    Antworten: 1
    Letzter Beitrag: 23.08.01, 15:08