Daten kommen nicht an

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Daten kommen nicht an

    Hallo,

    ich habe ein kleines Problem.

    Über einen PHP-Datein mache ich eine Suche in einer SQL-Datenbank.
    Das geht auch wunderbar, hier ist der Code.

    aendernsuchen1.php
    PHP-Code:
    <html>
    <
    head>
    <
    title>Datenbank</title>
    </
    head>
    <
    h1 align="center">Eintrag suchen</h1>
    <
    form action="aendernsuchen2.php" method="post" align="center">
    Suchkriterium waehlen :
    <
    br>
    <
    input type="radio" name="radiob" value="LatName">Lateinischer Name
    <br>
    <
    input type="radio" name="radiob" value="DName">Deutscher Name

    <br>
    Suchbegriff eingeben :
    <
    br>
    <
    input name="suche" size="60" maxlength="60">
    <
    br>
    <
    br>
    <
    input type="submit" value="OK">
    </
    form>
    <
    html
    In einem zweiten Dokument wird das Ergebnis dann dargestellt, das klappt auch wunderbar.

    aendersuchen2.php
    PHP-Code:
    <html>
    <head>
    <title>Datenbank</title>
    </head>
    <h1 align="center">Fischdatenbank</h1>
    <?php

    include 'dbconnect.php';

    // Die SQL Query
    $sql "SELECT * FROM `zierfisch` WHERE 1 AND `$radiob` LIKE '%$suche%' LIMIT 0 , 10000 ";

    $result mysql_query($sql);

    if (
    mysql_numrows($result)>0)
    {
    ?><h3 align="center"> Folgende Einträge wurden gefunden </h3>
    <br><?
    while ($row=mysql_fetch_object ($result))
    {
    $id=$row -> id;
    $LatName=$row ->LatName;
    $DName=$row ->DName;
    ?>

    <table border="1" rules="rows" align="center">
    <form action="link.php" method="POST">

    <tr>
        <td width=250><? echo $LatName; ?></td>
        <td width=250><? echo $DName; ?></td>
        <td width=250><input type="submit" name="Submit" value="Details">
    </tr>
    </form>
    </table>
    </html>
    <?
    }
    }
    Auf der Seite werden aber nur zwei Felder der Einträge dargestellt, zur Übersicht ist das besser. Nun soll hinter jedem Eintrag ein Button sein, der bei Interesse Details in einem extra Dokument darstellt.

    Hier ist das "extra Dokument":

    link.php
    PHP-Code:
    <html>

    <?php

    include 'dbconnect.php';

    $sql "SELECT * FROM zierfisch where id='".$_POST['$id']."'";
    $result mysql_query($sql);


    while(
    $row mysql_fetch_object($result))
        {
        echo 
    $row->LatName;
        }
      
    ?>

    </html>
    Habe als Test nur ein Feld zum Darstellen genommen, später werde ich alle darstellen, nur leider wird noch nicht mal das eine angezeigt, das Blatt bleibt leer.

    Ich habe das Gefühl das nix übernommen wird, aber weiss net wie ich das ändern soll.

    Wäre für Hilfe dankbar.

    Gruß
    Dennis

  • #2
    $_POST['$id'] ... was soll das denn?

    tipp:
    1. mal die sql query mit echo ausgeben
    2. mysql_error() einsetzen
    Kissolino.com

    Kommentar


    • #3
      Hallo,

      mit $_POST['$id'] habe ich versucht die ID aus der vorherigen Datei zu übernehmen, damit link.php weiss welchen Eintrag er darstellen soll.

      Habe echo $result eingefügt, jetzt kommt aber eine Fehlermeldung:

      Parse error: parse error, unexpected T_WHILE, expecting ',' or ';' in C:\xampp\xampp\htdocs\knowledge\link.php on line 11


      PHP-Code:
      <html>

      <?php

      include 'dbconnect.php';

      $sql "SELECT * FROM zierfisch where id='".$_POST['$id']."'";
      $result mysql_query($sql);
      echo 
      $result 

      while($row mysql_fetch_object($result))
          {
          echo 
      $row->LatName;
          }
        
      ?>

      </html>
      Wie schaff ich es denn aus aendernsuchen2.php genau den Datensatz (also die ID) zu übernehmen die angeklickt habe, damit ich sie in link.php darstellen kann?



      Gruß
      Dennis

      Kommentar


      • #4
        1. echo $sql und nicht $result
        2. wenn ein ; am zeilenende fehlt, was passiert dann? richtig "parse error"
        3. ich sehe in deinem form kein feld, dass eine id beinhaltet geschweige denn ein feld das '$id' heisst
        Kissolino.com

        Kommentar


        • #5
          Hallo,

          habe ein bissel rumprobiert, aber es klappt einfach net, ich weiß net wieso

          PHP-Code:
          <html>

          <?php

          include 'dbconnect.php';

          $sql "SELECT * FROM zierfisch where id='".$_POST['$id']."'";
          $result mysql_query($sql);
          echo 
          $sql;

          while(
          $row mysql_fetch_object($result));
              {
              echo 
          $row->LatName;
              }
            
          ?>

          </html>
          Es kommt kein Parse-Error mehr, aber folgendes wird ausgegeben:

          SELECT * FROM zierfisch where id=''

          Das ist alles was angezeigt wird, ich verzweifel

          1. wie schaff ich es die ID zu übergeben? Ich weiss einfach nicht, wie ich es hinbekomme, könnte Tips gebrauchen.

          2. Warum wird gerade dieser Code-Schnipsel ausgegeben?

          Gruß
          Dennis

          Kommentar


          • #6
            Hallo,

            habe was vergessen, die ID wird an aendersuchen2.php übergeben, habe das durch echo probiert.
            Also klappt die Übergabe von aendersuchen2.php an link.php net.


            andernsuchen2.php
            PHP-Code:
            <html>
            <head>
            <title>Knowledgebase SMC3</title>
            </head>
            <h1 align="center">Fischdatenbank</h1>
            <?php

            include 'dbconnect.php';

            // Die SQL Query
            $sql "SELECT * FROM `zierfisch` WHERE 1 AND `$radiob` LIKE '%$suche%' LIMIT 0 , 10000 ";

            $result mysql_query($sql);

            if (
            mysql_numrows($result)>0)
            {
            ?><h3 align="center"> Folgende Einträge wurden gefunden </h3>
            <br><?
            while ($row=mysql_fetch_object ($result))
            {
            $id=$row ->ID;
            $LatName=$row ->LatName;
            $DName=$row ->DName;

            ?>

            <table border="1" rules="rows" align="center">
            <form action="link.php" method="POST">

            <tr>
                <td width=250><? echo $id; ?></td>
                <td width=250><? echo $LatName; ?></td>
                <td width=250><? echo $DName; ?></td>
                <td width=250><input type="submit" name="Submit" value="Details">
            </tr>
            </form>
            </table>
            </html>
            <?
            }
            }
            link.php
            PHP-Code:
            <html>

            <?php

            include 'dbconnect.php';

            $sql "SELECT * FROM zierfisch where ID='".$_POST['$id']."'";
            $result mysql_query($sql);
            echo 
            $sql;

            while(
            $row mysql_fetch_object($result));
                {
                echo 
            $row->LatName;
                }
              
            ?>

            </html>
            Gruß
            Dennis
            Zuletzt geändert von Mannis; 19.05.2004, 11:46.

            Kommentar


            • #7
              PHP-Code:
               //ID='".$_POST['$id']."'";

              //zeig mal die Zeile wo die "$id" gefüllt wird.
              //Muster: 
              <input name="$idsize="40" maxlength="60">

              //ansonsten denke mal über das Dollarzeichen nach 
              mfg
              marc75

              <Platz für anderes>

              Kommentar


              • #8
                Hallo,

                ich dachte eigentlich, das wenn die varibale $id im vorherigen Dokument benutzt wird (ID aus Datenbank), das ich sie dann nicht mehr füllen müsste.

                Ich wollte ja genau den Inhalt von ID benutzen, der auch schon in aendersuchen2.php genutzt wird.

                Also muss ich ja nur dafür sorgen, das genau der Inhalt übertragen wird.

                Es geht darum das durch eine Abfrage in aendersuchen1.php die Ergebnisse in aendersuchen2.php angezeigt werden. Wenn ich dann Details anklicke, soll die ID von dem angeklickten Datensatz übernommen und in link.php dargestellt. Aber es klappt einfach net

                Gruß
                Dennis

                Kommentar


                • #9
                  PHP-Code:
                  //dein code
                  while ($row=mysql_fetch_object ($result))
                  {
                  $id=$row ->ID;
                  $LatName=$row ->LatName;
                  $DName=$row ->DName;

                  ?>

                  <table border="1" rules="rows" align="center">
                  <form action="link.php" method="POST">

                  <tr>
                  //woher soll form wissen das du den Inhalt der tabelle mit versenden willst?
                      <td width=250><? echo $id; ?></td>
                      <td width=250><? echo $LatName; ?></td>
                      <td width=250><? echo $DName; ?></td>
                      <td width=250><input type="submit" name="Submit" value="Details">
                  </tr>

                  //wo form auch kein echo sieht, woher soll es wissen welche zahl deine id ist die du mitsenden willst.
                    <td width=250>deine Zahl</td>
                      <td width=250>ein name</td>
                      <td width=250>noch ein Name</td>
                      <td width=250><input type="submit" name="Submit" value="Details">
                  </tr>

                  // Abhilfe, ließ mal ein wenig be selfhtml nach, wie man Formulare aufbaut.
                  // Wenn du das dann hinbekommst sag bescheid, und dir wird dann einer Erklären was an $_POST['$id'] noch falsch ist.
                  mfg
                  marc75

                  <Platz für anderes>

                  Kommentar


                  • #10
                    Hallo,

                    hm, habe also vergessen die Felder eindeutig zu identifizieren.

                    Normalerweise kommt das attribut name ja nur in Verbindung mit dem tag input.

                    Aber hier möchte ich ja kein input haben, kann ich name trotzdem verwenden?

                    Beispiel:

                    PHP-Code:
                    <td width=250><name="id"><? echo $id; ?></td>
                    Funktioniert das so? Habe es versucht, es kommt keine Fehlermeldung, aber bei HTML kommt ja eh keine.

                    Das Problem ist, das ich zwar grundelegende Kenntnisse in HTMl und PHP habe, aber meistens noch bei komplexeren Dingen versage. Formulare mit Eingabefenstern sind keine Probleme, aber mit dem kombonieren von verschiedenen Dingen habe ich noch Probs.

                    Gruß
                    Dennis
                    Zuletzt geändert von Mannis; 19.05.2004, 12:36.

                    Kommentar


                    • #11
                      Das Problem ist, das ich zwar grundelegende Kenntnisse in HTMl und PHP habe,
                      das glaube ich nicht wirklich. (wie man formulare erstellt sollte man wissen)

                      schau mal hier:
                      http://selfhtml.teamone.de/html/formulare/index.htm
                      mfg
                      marc75

                      <Platz für anderes>

                      Kommentar


                      • #12
                        Hallo,

                        habe es jetzt folgendermassen geändert

                        PHP-Code:
                        <td width=250><input type="hidden" name="id" value="<? echo $id; ?>"</td>
                        Die ID wird jetzt korrekt übergeben.

                        Ich habe wirklich einfach nur den Fehler gemacht, das ich das Feld nicht benannt habe.

                        Vielen Dank für die Hilfe.

                        @marc
                        mir war schon bewußt wie ich Formulare erstelle, ich wollte einfach das Inputfeld umgehen, habe es daher weggelassen (sehr schlau, grml).

                        Ich habe nicht daran gedacht, das ich es auch auf "hidden" setzen kann, und dadurch erübrigte sich das Problem auch.

                        Gruß
                        Dennis

                        Kommentar


                        • #13
                          Original geschrieben von Mannis

                          @marc
                          mir war schon bewußt wie ich Formulare erstelle, ich wollte einfach das Inputfeld umgehen, habe es daher weggelassen (sehr schlau, grml).

                          Ich habe nicht daran gedacht, das ich es auch auf "hidden" setzen kann, und dadurch erübrigte sich das Problem auch.

                          Gruß
                          Dennis
                          das kommt davon, weil du das Zusammenspiel zwischen ServerScript und Clientformular, spricht PHP/HTML, immer noch nicht beherrscht

                          Kommentar


                          • #14
                            Hallo,

                            damit habe ich in der Tat noch arge Probleme.

                            Daher übe ich auchso oft wie möglich an Praxis-Modellen damit ich dazulerne, so wie diesmal, wieder was gelernt

                            Gruß
                            Dennis

                            Kommentar

                            Lädt...
                            X