Steinböck Andreas: Datenbank mit if Anweisung nach Anfabgsbuchstaben auslesen.

Hallo Leute,
Ich habe ein Computerlexikon welches nach dem Alphabet geordnet ist.
Also A,B,C usw. Ich möchte nun, wenn ich zum Beispiel auf den Buchstaben A klicke, das eine php Datei augerufen wird, welche mir nur die Datensätze mit dem Anfangsbuchstaben A ausliest. Wenn ich auf B klicke, soll die selbe php datei aufgerufen werden, jetzt sollen aber nur die Datensätze mit dem Anfangsbuchstaben B ausgelesen werden. Ich glaube, das ganze könnte man vielleicht mit einer if-Anweisung lösen. Nachfolgend der Quellcode mit dem alle Datensätze mit dem Anfangsbuchstaben A ausgelesen werden. Ich möchte nun aber in dieser datei auch das restliche Alphabet auslesen.

<html>
<style>
a:link {color:#000000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
a:active {color:#000000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
a:visited {color:#000000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
a:hover {color:#ff0000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
td {font-family : verdana,helvetica; color : black; font-size : 10px;}
</style>
<body bgcolor="#336699">
<div align="center">

<?
//Verbindung herstellen
$db = mysql_connect("localhost","", "");
mysql_select_db("computerlexikon",$db);

//Daten auslesen
//Hier die if-Anweisung
$result = mysql_query("SELECT * FROM begriffe WHERE kurzform LIKE 'A%' ORDER BY kurzform ASC",$db);

?>

<br><br>
<table border="0" width="90%" cellspacing="1" cellpadding="3" align="center" bgcolor="#000000">
<tr>
<td bgcolor="#cacaca" align="center" colspan="3"><h3>COMPUTERLEXIKON</h3></td>
</tr>
<tr>
<td bgcolor="#e2e2e2" colspan="3"> </td>
</tr>
<tr>
<td bgcolor="#cacaca" valign="top"><b>Kurzform:</b></td>
<td bgcolor="#cacaca" valign="top"><b>Vollform:</b></td>
<td bgcolor="#cacaca" valign="top"><b>Beschreibung:</b></td>
</tr>
<? while ($daten = mysql_fetch_array($result)) { ?>
<tr>
<td bgcolor="#e2e2e2" valign="top"><? echo $daten[kurzform]; ?></td>
<td bgcolor="#e2e2e2" valign="top"><? echo $daten[vollform]; ?></td>
<td bgcolor="#e2e2e2" valign="top"><? echo $daten[beschreibung]; ?></td>
</tr>
<? } ?>
</table>
</form>
</div>
<br>
<div align=center>
<TABLE width=200 align=center border=0 cellspacing=1 cellpadding=3 bgcolor=#000000>
 <TR>
 <TD align=center class=blacknorm bgcolor=#e2e2e2>
 <a href=/computerlexikon/lexikon.php>Zurück zur &Uuml;bersicht</a><br>

</TD>
 </TR>
 </TABLE>
 </div>
</body>
</html>

  1. Hallo Leute,
    Ich habe ein Computerlexikon welches nach dem Alphabet geordnet ist.
    Also A,B,C usw. Ich möchte nun, wenn ich zum Beispiel auf den Buchstaben A klicke, das eine php Datei augerufen wird, welche mir nur die Datensätze mit dem Anfangsbuchstaben A ausliest. Wenn ich auf B klicke, soll die selbe php datei aufgerufen werden, jetzt sollen aber nur die Datensätze mit dem Anfangsbuchstaben B ausgelesen werden. Ich glaube, das ganze könnte man vielleicht mit einer if-Anweisung lösen. Nachfolgend der Quellcode mit dem alle Datensätze mit dem Anfangsbuchstaben A ausgelesen werden. Ich möchte nun aber in dieser datei auch das restliche Alphabet auslesen.

    Hallo Andreas,

    Du übergibst den gewählten Buchstaben als Parameter an die PHP-Datei.
    Dort kannst Du dann nach allen Einträgen mit dem Buchstaben suchen.

    select * from lexikon where eintrag like '<?php echo $gewählter_buchstabe ; ?>%';

    Gruss Kerstin

    1. Moin!

      Du übergibst den gewählten Buchstaben als Parameter an die PHP-Datei.
      Dort kannst Du dann nach allen Einträgen mit dem Buchstaben suchen.

      Richtiger Ansatz, falsche Ausführung!

      select * from lexikon where eintrag like '<?php echo $gewählter_buchstabe ; ?>%';

      Was soll der Browser mit dem SQL-Statement? Denn nichts anderes impliziert diese Lösung.

      Besser:

      $sqlselect = "SELECT * FROM lexikon WHERE eintrag like '$gewählter_buchstabe';";

      So bastelt man das SQL-Statement zusammen. _Vorher_ aber sollte unbedingt geprüft werden, ob $gewählter_buchstabe" denn auch wirklich nur ein Zeichen (und ein Buchstabe) ist.

      - Sven Rautenberg

      1. Moin!

        Moin Moin !

        [...]

        Besser:

        $sqlselect = "SELECT * FROM lexikon WHERE eintrag like '$gewählter_buchstabe';";

        Meiner Meinung nach sollte hinter den Buchstaben noch ein Prozent-Zeichen. ;-)

        So bastelt man das SQL-Statement zusammen. _Vorher_ aber sollte unbedingt geprüft werden, ob $gewählter_buchstabe" denn auch wirklich nur ein Zeichen (und ein Buchstabe) ist.

        DAS kann man gar nicht oft genug sagen!

        • Sven Rautenberg

        Alexander

        1. Hallo Leute,
          Herzlichen Dank für Eure Tips. Das Script funktioniert dank Eurer Hilfe. Die Abfrage besteht aus zwei Dateien.

          lexikon.php (hier der Quellcode)

          <html>
          <head>
          <title>Untitled Document</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          </head>

          <body bgcolor="#336699" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
          <br>
          <br>
          <table width="95%" border="0" cellspacing="1" cellpadding="3" align="center" bgcolor="#000000">
            <tr>
              <td bgcolor="#cacaca" align="center"><font face="Arial, Helvetica, sans-serif" size="3"><b>COMPUTERLEXIKON</b></font></td>
            </tr>
            <tr>
              <td bgcolor="#e2e2e2"> </td>
            </tr>
            <tr>
              <td bgcolor="#e2e2e2" align="center"><font face="Arial, Helvetica, sans-serif" size="2">FDD,
                HDD, PS2, USB - Eine Abkürzung aus der IT Welt die Sie nicht kennen?
                Dann sind hier genau richtig. In dieser Datenbank sind derzeit mehr als
                1700 Begriffe aus der IT Branche zusammengefasst. Die Begriffe sind alphabetisch
                geordnet. </font> </td>
            </tr>
            <tr>
              <td bgcolor="#e2e2e2" align="center"><font face="Arial, Helvetica, sans-serif" size="3">
              <a href="abfrage.php?buchstabe=A">A</a>, 
              <a href="abfrage.php?buchstabe=B">B</a>, 
              <a href="abfrage.php?buchstabe=C">C</a>, 
              <a href="abfrage.php?buchstabe=D">D</a>, 
              <a href="abfrage.php?buchstabe=E">E</a>, 
              <a href="abfrage.php?buchstabe=F">F</a>, 
              <a href="abfrage.php?buchstabe=G">G</a>, 
              <a href="abfrage.php?buchstabe=H">H</a>, 
              <a href="abfrage.php?buchstabe=I">I</a>, 
              <a href="abfrage.php?buchstabe=J">J</a>, 
              <a href="abfrage.php?buchstabe=K">K</a>, 
              <a href="abfrage.php?buchstabe=L">L</a>, 
              <a href="abfrage.php?buchstabe=M">M</a>, 
              <a href="abfrage.php?buchstabe=N">N</a>, 
              <a href="abfrage.php?buchstabe=O">O</a>, 
              <a href="abfrage.php?buchstabe=P">P</a>, 
              <a href="abfrage.php?buchstabe=Q">Q</a>, 
              <a href="abfrage.php?buchstabe=R">R</a>, 
              <a href="abfrage.php?buchstabe=S">S</a>, 
              <a href="abfrage.php?buchstabe=T">T</a>, 
              <a href="abfrage.php?buchstabe=U">U</a>, 
              <a href="abfrage.php?buchstabe=V">V</a>, 
              <a href="abfrage.php?buchstabe=W">W</a>, 
              <a href="abfrage.php?buchstabe=X">X</a>, 
              <a href="abfrage.php?buchstabe=Y">Y</a>, 
              <a href="abfrage.php?buchstabe=Z">Z</a>
              </font></td>
            </tr>
            <tr>
              <td bgcolor="#e2e2e2" align="center"><font face="Arial, Helvetica, sans-serif" size="2">Falls
                Sie einen Begriff gefunden haben, der hier von Bedeutung ist, so können
                Sie ihn <a href="eintragen.php">hier eintragen</a></font></td>
            </tr>
          </table>
          </body>
          </html>

          abfrage.php (hier der Quellcode)

          <html>
          <style>
          a:link {color:#000000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
          a:active {color:#000000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
          a:visited {color:#000000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
          a:hover {color:#ff0000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
          td {font-family : verdana,helvetica; color : black; font-size : 10px;}
          </style>
          <body bgcolor="#336699">
          <div align="center">

          <?
          //Verbindung herstellen
          $db = mysql_connect("localhost","", "");
          mysql_select_db("computerlexikon",$db);
          //Daten auslesen
          $result = mysql_query("SELECT * FROM begriffe WHERE kurzform LIKE '$buchstabe%' ORDER BY kurzform ASC",$db);

          ?>

          <br><br>
          <table border="0" width="90%" cellspacing="1" cellpadding="3" align="center" bgcolor="#000000">
          <tr>
          <td bgcolor="#cacaca" align="center" colspan="3"><h3>COMPUTERLEXIKON</h3></td>
          </tr>
          <tr>
          <td bgcolor="#e2e2e2" colspan="3"> </td>
          </tr>
          <tr>
          <td bgcolor="#cacaca" valign="top"><b>Kurzform:</b></td>
          <td bgcolor="#cacaca" valign="top"><b>Vollform:</b></td>
          <td bgcolor="#cacaca" valign="top"><b>Beschreibung:</b></td>
          </tr>
          <? while ($daten = mysql_fetch_array($result)) { ?>
          <tr>
          <td bgcolor="#e2e2e2" valign="top"><? echo $daten[kurzform]; ?></td>
          <td bgcolor="#e2e2e2" valign="top"><? echo $daten[vollform]; ?></td>
          <td bgcolor="#e2e2e2" valign="top"><? echo $daten[beschreibung]; ?></td>
          </tr>
          <? } ?>
          </table>
          </form>
          </div>
          <br>
          <div align=center>
          <TABLE width=200 align=center border=0 cellspacing=1 cellpadding=3 bgcolor=#000000>
           <TR>
           <TD align=center class=blacknorm bgcolor=#e2e2e2>
           <a href=/computerlexikon/lexikon.php>Zurück zur &Uuml;bersicht</a><br>

          </TD>
           </TR>
           </TABLE>
           </div>
          </body>
          </html>

          Danke nochmals

          lg
          Andi