Fehler und ich weiß nicht wo. Bin totaler Anfänge

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

  • Fehler und ich weiß nicht wo. Bin totaler Anfänge

    Hallo,

    folgendes Problem:

    #############################################
    Hier zuerst mal die Eingabemaske:
    #############################################

    PHP-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <
    html>
    <
    head>
    <
    title>Unbenanntes Dokument</title>
    <
    meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </
    head>

    <
    body>
    <
    p>&nbsp;</p>
    <
    form name="suche" method="get" action="../suche_mitglied.php">
      <
    p align="center"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Datenbank
        durchsuchen
    </strong></font></p>
      <
    table width="34%" border="0" align="center" cellpadding="0" cellspacing="0">
        <
    tr>
          <
    td colspan="2"><font size="2" face="Arial, Helvetica, sans-serif">Suchbegriff
            eingeben
    </font></td>
        </
    tr>
        <
    tr>
          <
    td width="48%">&nbsp;</td>
          <
    td width="52%">&nbsp;</td>
        </
    tr>
        <
    tr>
          <
    td colspan="2"><div align="center">
              <
    input name="suche" type="text" id="suche" size="40">
            </
    div></td>
        </
    tr>
        <
    tr>
          <
    td colspan="2"><font size="2" face="Arial, Helvetica, sans-serif">
            <
    input type="checkbox" name="checkbox" value="checkbox">
            
    in Mitgliedereigenschaften suchen</font></td>
        </
    tr>
        <
    tr>
          <
    td><div align="right">
              <
    input type="submit" name="Submit" value="Suchen">
            </
    div></td>
          <
    td><input type="reset" name="Submit2" value="Eingaben l&ouml;schen"></td>
        </
    tr>
      </
    table>
      <
    div align="center"></div>
    </
    form>
    <
    p>&nbsp;</p>
    </
    body>
    </
    html

    #############################################
    und das dazugehörige PHP Skript für die Abfrage.
    #############################################

    PHP-Code:
    <?
       // Verbindung zur Datenbank herstellen

      $db = mysql_connect("localhost", "root", "");
      mysql_select_db("mitglied_db",$db);
      
      // Beim Erstaufruf die Eingabemaske anzeigen:
      if (empty($action))
      {
        include "suche.htm";
      }
      // User hat den Button angeklickt:
      
        else
       {
        $qu = trim($keyword);
        $query = "".$qu;
        $query = "".$query;
        $searchQuery = $query;
        $qquery = ereg_replace("%","\\%",$query);
        $qquery = ereg_replace("_","\\_",$qquery);

        // Keine Eingabe durch User
        
          if ( strlen($query)==0 )
        {
          print $tlt_font;
          include "empty_search.htm";
          exit;
        }

        $user_query = "SELECT * FROM mitglieder WHERE name='$qu'";
        $kunden_result = mysql_query($mitglied_query);
        if ($mitglied_result)
        {
          $row = mysql_fetch_array($mitglied_result);
          if ($row > 0)
          {
            $id  = mysql_result($mitlied_result,0,"id");
            }
          else
          {
            print $flr_font."<center>Mitglied $qu nicht in Datenbank gefunden.</center><BR>";
            include "suche.htm";
          }
        }

        else
        {
          print mysql_error();
        }
      }
    ?>
    Wo liegt der Fehler? Ich werde ständig nach klicken des Submit Buttons auf "Seite nicht gefunden" zurückgelinkt. Bitte nach möglichkeit den Fehler einfach beschreiben da ich noch am Anfang stehe und mich erst seit einen Monat mit mysql und php beschäftige. Danke Euch allen im vorraus.

    EDIT:
    php.tags powered by Abraxax
    Zuletzt geändert von Abraxax; 02.06.2003, 14:05.

  • #2
    du rufst ne seite auf, die es nicht gibt. änder mal das hier:

    <form name="suche" method="get" action="../suche_mitglied.php">
    in
    <form name="suche" method="post" action="suche_mitglied.php">
    Kissolino.com

    Kommentar


    • #3
      Möglichkeit 1:

      Nach dem Absenden des Forms wird das Sktript "../suche_mitglied.php" aufgerufen.

      Exisitiert dieses File ?

      Kommentar


      • #4
        Hallo,

        Danke für die schnellen Antworten. Also dieses File suche_mitglied.php existiert. Der Fehler lag in der Pfadangabe. Dummer Fehler der mir eigentlich nicht passieren sollte :-). Jetzt bekomme ich zumindest keine Fehlermeldung mehr was aber auch nicht so gut ist da ich überhaupt keine Rückmeldung bzw. mysql_error bekomme. Ich sende die Suchanfrage ab und das wars. Die Eingabemaske bleibt stehen. hmmmm. klingt wenn ich das beschreibe zwar ein klein wenig blöd (zumindest für die Profis unter Euch) jedoch hilft mir meine vorhandene Literatur da auch nicht weiter.

        Wo liegt der Fehler nun?

        Danke
        Zuletzt geändert von Laslayer; 02.06.2003, 16:04.

        Kommentar


        • #5
          es macht schon sinn, "action" zu übergeben. wo nix ist, ist empty($action) auch immer wahr.

          <input type="submit" name="action" value="Suchen">
          sollte dein problem lösen

          btw: im formular hast due ein feld namens 'suche', in der php-datei
          prüfst du $keyword.

          PHP-Code:
          $qu trim($keyword);
              
          $query "".$qu;
              
          $query "".$query;
              
          $searchQuery $query;
              
          $qquery ereg_replace("%","\%",$query);
              
          $qquery ereg_replace("_","\_",$qquery);

          // duch das ersetzen:
          $query addslashes($suche); 
          zudem wäre es besser auf die variablen per $_POST[], $_GET[], ... zuzugreifen. such mal im forum nach "register globals"
          Zuletzt geändert von Wurzel; 02.06.2003, 16:12.
          Kissolino.com

          Kommentar


          • #6
            super, ich erhalte eine Fehlermeldung. "Query was empty". Diese erscheint aber nur wenn ich den Radiobutton "in Mitgliedereigenschaften suchen" aktiviert habe. sonst bleibt alles wie vorher beschrieben.

            Aber mich drängt ja niemand ;-)

            Kommentar


            • #7
              schau dir dein php-script mal ganz genau an.

              ich pick nur mal eine stelle raus:
              PHP-Code:
              ...
                  
              $user_query "SELECT * FROM mitglieder WHERE name='$qu'";
                  
              $kunden_result mysql_query($mitglied_query);
                  if (
              $mitglied_result)
              ... 
              - du formulierst eine db-abfrage => $user_query
              - du fragst die db => $kunden_result = mysql_query($mitglied_query);
              - $mitglied_query ??? hallo, wo kommt die denn plötzlich her
              - du fragst, ob es ein ergebnis gibt => if ($mitglied_result)
              - dasselbe phänomen: eine undefinierte variable, die somit inhaltlos ist

              undsoweiter undsofort. mach dich am besten erst einmal grundlegend mit
              php vertraut. wie werden variablen übergeben, kauf dir ein gutes buch.
              verstehe, was du liest und dann leg los.

              ein gutes tutorial gibts auch unter http://www.schattenbaum.net/php
              Kissolino.com

              Kommentar


              • #8
                Hallo,

                du hast ja recht. Ich habe jedoch kein gutes Buch gefunden was meine Probleme einfach beantworten kann. Ich habe mir zum Beispiel das Buch "Jetzt lerne ich MySql und PHP" aus dem Markt und Technik Verlag zugelegt aber ich finde es einfach zu umständlich beschrieben oder ich denke zu kompliziert. Das die Abfragen nicht stimmen liegt nur daran das ich den Code schon mehrmals umgeschrieben habe und immer wieder neue Datenbanken angelegt habe. Das nächste Problem ist das meine Skripte auf dem Lokalen Server teilweise nicht laufen jedoch wenn ich Sie auf den Webspace kopiere gehen Sie auf einmal und umgekehrt. Das macht das dahintersteigen für mich als Anfänger nicht gerade leicht wenn man auf einmal mit Problemen konfrontiert ist die nirgendwo oder nur mit ewiger Suche zu lösen sind und mit der eigentlichen Aufgabe nichts zu tun haben.

                Danke jedoch für Deine Hilfe und ich werde nichts desto trotz weitermachen.

                Kommentar


                • #9
                  ich würde nicht den button action nennen.

                  da viele einfach enter drücken anstatt den button, und dann wäre action natürlich auch empty.

                  Kommentar


                  • #10
                    Original geschrieben von Laslayer
                    .... Danke jedoch für Deine Hilfe und ich werde nichts desto trotz weitermachen.
                    Davon wollte ich dich auch nicht abhalten

                    Ok, kleiner schnellkurs anhand deines scriptes:

                    formulare & formfelder
                    - formulare mit method=post & action=DasAufzurufendeScript.php versehen
                    - hast du ja
                    - formfelder (input, textarea, select, buttons, etc.) bekommen einen eindeutigen namen
                    - der name des feldes wird nach dem absenden des formulares zum namen der variablen, z.B.
                    Code:
                    <input type="text" name="meinfeld" value="test">
                    wird nach absenden zu
                    $meinfeld mit dem inhalt "test"
                    besser:
                    $_POST['meinfeld'] mit dem inhalt "test"

                    Bedingungen
                    - vergleichen kannst du nur, was du vorher auch definiert hast
                    - nur wenn im formular ein feld namens "action" existiert, kannst du auch
                    ein ergebnis aus
                    Code:
                    if(!empty($action))
                    erwarten. ansonsten
                    wird die bedingung nie erfüllt, weil die var immer leer ist.

                    SQL-Abfragen
                    - siehe verwenden von variablen

                    grundsätzlich
                    - wenn etwas nicht funktioniert, füg nicht wahllos irgendetwas in ein script
                    ein, in der hoffnung, das wird schon
                    - halte den code so einfach wie möglich, aufblähen kannst du ihn immer noch
                    - überlege, was du willst und code dann

                    ein einfaches beispiel
                    PHP-Code:
                    // SUCHMASKE
                    <form name="suche" method="get" action="suche_mitglied.php">
                      <
                    p>Suchbegriff eingeben</p>
                      <
                    p><input name="suche" type="text" id="suche" size="40"></p>
                      <
                    p><input type="submit" name="action" value="Suchen"></p>
                    </
                    form>


                    // SUCHE_MITGLIED.PHP

                      
                    if ($suche == "")  // wenn form gesendet, aber keine eingabe im feld suche
                      
                    {
                        print 
                    "Kein Suchwort eingegeben";
                      }
                        else
                       {
                        
                    // Verbindung zur Datenbank herstellen
                        
                    $db mysql_connect("localhost""root""") or die(mysql_error());
                        
                    mysql_select_db("mitglied_db",$db) or die(mysql_error());
                     
                        
                    $suche trim($suche);
                        
                    $suche addslashes($suche);

                        
                    $user_query "SELECT * FROM mitglieder WHERE name='$suche'";
                        
                    $result mysql_query($user_query) or die(mysql_error());
                        if (
                    mysql_num_rows($result) >0// hats ein ergebnis
                        
                    {
                            
                    $id  mysql_result($result,0,"id");
                             print 
                    "Mitglied ".$suche." mit ID: ".$id." gefunden.";
                         }
                          else
                          {
                            print 
                    "Mitglied ".$suche." nicht gefunden.";
                          }
                        }
                    ?> 
                    so, nu schau mal in ruhe darüber, schlag die verwendeten funktionen nach und bau es aus.

                    EDIT:
                    mist, zischenzeitlich die falsche taste gedrückt, gmmml
                    Zuletzt geändert von Wurzel; 03.06.2003, 10:27.
                    Kissolino.com

                    Kommentar


                    • #11
                      Danke für diese ausführliche Hilfe. Anhand so eines Tutorial verstehe ich auch die Thematik. Ich kann nur nichts damit anfangen wenn in einen Buch wie den meinen steht ich soll dann eine Verbindung zur Datenbank herstellen und die erklären das anhand der Dos-Box beziehen sich aber auf ein HTML bzw. PHP Dokument. Gerade dies ist für Anfänger sehr verwirrend zumal viele und ich zähle mich darunter lieber praktisch an die Sache herangeführt werden. Kannst Du mir denn ein gutes Buch empfehlen?

                      Danke

                      Kommentar


                      • #12
                        guckst du hier
                        http://www.php-resource.de/forum/sho...light=b%FCcher
                        Kissolino.com

                        Kommentar

                        Lädt...
                        X