Simon: maximale anzahl bei schleife

Hi,
hab eh vorher gesucht nur leider nichts gefunden.

Ich hab jetzt mein Script fertig mit dem ich eine DB nach namen durchsuch.
Wie kann ich jetzt angeben dass z.b. maximal 20 Namen ausgegeben werden und die anderen auf einer anderen Seite?

Und mich interessiert auch wieso die Ausgabe nicht im Quelltext steht?

MfG
Simon

  1. Ich hab jetzt mein Script fertig mit dem ich eine DB nach namen durchsuch.
    Wie kann ich jetzt angeben dass z.b. maximal 20 Namen ausgegeben werden und die anderen auf einer anderen Seite?

    Da gibt es wohl verschiedene Möglichkeiten.
    Eine ist, nur eine bestimmte Anzahl an Namen überhaupt zu suchen. Je nach Sprache gibt es dort verschiedene Befehle. In MySQL wäre es wohl der Befehl LIMIT. Hättest du gesagt um welche Art von Datenbank es sich handelt, hätte man hier vielleicht besser helfen können.

    Und mich interessiert auch wieso die Ausgabe nicht im Quelltext steht?

    Das liegt garantiert an dem was du in PHP programmiert hast.

    Es gibt nicht den einen Fehler der macht, dass Ausgaben nicht im Quelltext stehen. Ohne mehr Informationen kann man hier wohl auch nicht helfen.

    Ganz allgemein: Gibst du die Namen aus der Datenbank überhaupt aus? Nur namen aus Datenbank holen reicht nicht. Sie müssen auch ausgegeben werden (z.B. mit print oder echo)

    Also mehr Informationen her, oder du musst es allein lösen.

    1. Da gibt es wohl verschiedene Möglichkeiten.
      Eine ist, nur eine bestimmte Anzahl an Namen überhaupt zu suchen. Je nach Sprache gibt es dort verschiedene Befehle. In MySQL wäre es wohl der Befehl LIMIT. Hättest du gesagt um welche Art von Datenbank es sich handelt, hätte man hier vielleicht besser helfen können.

      MYSQL

      Das liegt garantiert an dem was du in PHP programmiert hast.

      Es gibt nicht den einen Fehler der macht, dass Ausgaben nicht im Quelltext stehen. Ohne mehr Informationen kann man hier wohl auch nicht helfen.

      Ganz allgemein: Gibst du die Namen aus der Datenbank überhaupt aus? Nur namen aus Datenbank holen reicht nicht. Sie müssen auch ausgegeben werden (z.B. mit print oder echo)

      Ja sie werden mit echo ausgeben. Was mich ja wundert ist dass sie am Bildschirm angezeigt werden aber nicht im Quelltext stehen.

      Also hier mal das Script:

      <?php  
      if (@$_POST['searched']) {  
          $suche = $_POST['such'];  
      $hostUrl = '';  
      $userName = '';  
      $password = '';  
      $connectID = mysql_connect($hostUrl, $userName, $password)  
        or die ("Tut mir leid, kann keine Verbindung zur Datenbank aufbauen");  
      mysql_select_db("", $connectID)  
        or die ("Auswahl der Datenbank nich Möglich");  
      $query = "SELECT * FROM tbl WHERE Nachname LIKE '%$suche%' OR Vorname LIKE '%$suche%'";  
      $out = mysql_query($query,$connectID);  
        
      while ($row_out = mysql_fetch_array($out))  
      {  
      	$ausgabe_Vorname = $row_out['Vorname'];  
      	$ausgabe_Nachname = $row_out['Nachname'];  
          $ausgabe_Id = $row_out['id'];  
      	echo "<a href=\"test.php?tcid=$ausgabe_Id\">$ausgabe_Nachname $ausgabe_Vorname</a>";  
      	echo "<br />";  
      }  
      mysql_close($connectID);  
      }  
      ?>
      

      MfG
      Simon

      1. <?php

        if (@$_POST['searched']) {
            $suche = $_POST['such'];
        $hostUrl = '';
        $userName = '';
        $password = '';
        $connectID = mysql_connect($hostUrl, $userName, $password)
          or die ("Tut mir leid, kann keine Verbindung zur Datenbank aufbauen");
        mysql_select_db("", $connectID)
          or die ("Auswahl der Datenbank nich Möglich");
        $query = "SELECT * FROM tbl WHERE Nachname LIKE '%$suche%' OR Vorname LIKE '%$suche%'";
        $out = mysql_query($query,$connectID);

        $counter = 0;

        while ($row_out = mysql_fetch_array($out))
        {

        if($counter == 20) break;

        $ausgabe_Vorname = $row_out['Vorname'];
        $ausgabe_Nachname = $row_out['Nachname'];
            $ausgabe_Id = $row_out['id'];
        echo "<a href="test.php?tcid=$ausgabe_Id">$ausgabe_Nachname $ausgabe_Vorname</a>";
        echo "<br />";

        $counter++;

        }
        mysql_close($connectID);
        }
        ?>

        z.b.
        
        1. Ok, danke.
          Könntest du mir vielleicht noch sagen wie ich es machen kann dass ich die  anderen auf einer anderen seite anzeigen kann?

          Und weist du vieleicht warum die Ausgabe nicht im Quelltext steht und nur im FF aber nicht im ie angezeigt wird ?

      2. MYSQL

        Bitteschön: MySQL: SELECT

        Ja sie werden mit echo ausgeben. Was mich ja wundert ist dass sie am Bildschirm angezeigt werden aber nicht im Quelltext stehen.

        Na, das ist ja erst mal widersprüchlich. Ich vermute es liegt daran, dass du dir nicht den richtigen Quelltext anschaust.

        1. Na, das ist ja erst mal widersprüchlich. Ich vermute es liegt daran, dass du dir nicht den richtigen Quelltext anschaust.

          Was für einen anderen Quelltext? Ich hab ja nur diese eine Seite.

          Und das komische ist dass das Ergebnis im FF aber nicht im ie angezeigt wird.

          1. Was für einen anderen Quelltext? Ich hab ja nur diese eine Seite.
            Und das komische ist dass das Ergebnis im FF aber nicht im ie angezeigt wird.

            Dann vermute ich, liegt die Ursache in dem HTML-Quelltext der das PHP-Script umgibt. Vielleicht mischt Javascript mit. Kannst du ja ausprobieren, indem du alles bis auf das PHP-Sript löschst. Dann sollte es in beiden angezeigt werden. Und dann kann man sich ja immer weiter zum Fehler hinhangeln.

          2. Hallo

            Und das komische ist dass das Ergebnis im FF aber nicht im ie angezeigt wird.

            meine Vermutung: [quote:#1507]

            Die Seite wird korrekt vom Server geladen, die Quelltextanzeige aber aus einer früheren Version der Seite, die im Browsercache liegt, generiert.

            Was die Limitierung der Ausgabe betrifft, ist LIMIT alles, was du brauchst. Du kannst nämlich nicht nur eine maximale Anzahl von Ergebnissen festlegen, sondern auch einen Bereich.

            SELECT spalte1, spalte2 FROM tabelle WHERE spalte1>0 LIMIT 0, 30

            ... selektiert 30 Datensätze von Position 0 bis 30.

            SELECT spalte1, spalte2 FROM tabelle WHERE spalte1>0 LIMIT 30, 30

            ... selektiert 30 Datensätze von Position 30 bis 60.

            Die erste Zahl für LIMIT gibt also die Startposition an, die zweite Zahl die Anzahl der (maximal) erwarteten Ergebnisse. Du müüstest nun Links zum navigieren in der Ergebnisausgabe anbieten, denen ein Parameter für die Startposition beigegeben ist. Der beim Neuaufruf *geprüfte* Parameter (hier: Ist es eine Ganzzahl?) wird nun in den Datenbankquery eingebaut, bevor dieser der Datenbank übergeben wird.

            Tschö, Auge

            --
            Die deutschen Interessen werden am Liechtenstein verteidigt.
            Veranstaltungsdatenbank Vdb 0.2
            1. Hallo

              »» Und das komische ist dass das Ergebnis im FF aber nicht im ie angezeigt wird.

              meine Vermutung: [quote:#1507]

              Nochmal mit einem normalen Link: Zitat #1507. Die oben verwendete und in der Zitatesammlung auch so angewiesene Syntax tut's nicht.

              Tschö, Auge

              --
              Die deutschen Interessen werden am Liechtenstein verteidigt.
              Veranstaltungsdatenbank Vdb 0.2