Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 23

Thema: Abfrage-Formular

  1. #1
    Kathi93478
    Gast

    Standard Abfrage-Formular

    Hallo,

    ich habe gerade eine Vorlesung gehabt, die sich mit PHP beschäftigt und bin fast ganz ahnungslos. Ich versuche eine Formular-Abfrage zu erstellen, die mir mithilfe einer Suchfunktion dann die Daten rausgibt, die ich haben will. Das funktioniert aber leider nicht, und weil ich einfach zu wenig Ahnung habe, weiß ich leider nicht wieso. Ich weiß so grob, was in meinem Code passiert, allerdings nicht so genau, dass ich den Fehler finden würde. Es wäre super, wenn mir jemand helfen könnte, den Code zu verstehen und so natürlich den Fehler zu finden.

    Hier der Code:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Teilnehmerliste</title>
    </head>

    <body>
    <h1>Suche Teilnehmer</h1></br>
    <h4>Abfrage Daten:</h4>

    <form method="get" action="dbzugriff0.php">
    <input type="text" name="ein1" />
    <input type="submit" value="senden" name="sub1" />
    </form>

    <?php
    echo "DB-Zugriff beginnt";
    $mysqli = new mysqli ("hierhost", "hierbenutzer", "hierkennwort", "TestDB");
    if (mysqli_error() ) {
    echo "<p>Keine Verbindung ", mysqli_error (), "</p>\n";
    exit ();
    }

    echo "Abfrage ".$sql;
    echo $GET ['ein1'];
    $such = $GET['ein1'];
    $sql = "Select * from teilnehmer limit 0,50 where teilnehmer like '%$such%'";
    echo "<br>SQL: ".$sql;
    if ($result = $mysqli->query($sql) ) {
    echo "<p>Daten kommen</p><table> ";
    while ($row = $result->fetch_array() ) {
    echo "<tr>";
    echo "<td>","</td>";
    echo "</tr>";
    }
    echo "</table>";
    $result->close();
    } else {
    echo "Problem SQL-Abfrage";
    }
    $mysqli->close ();
    ?>

    </body>
    </html>


    Danke!
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Bandit
    Gast

    Standard AW: Abfrage-Formular

    Ändere mal $GET in $_GET

  3. #3
    Samurai Avatar von Bleistift
    Registriert seit
    20.03.2012
    Alter
    21
    Beiträge
    235
    Danke
    0
    Bekam 4 mal "Danke" in 4 Postings

    Standard AW: Abfrage-Formular

    Zitat Zitat von Kathi93478 Beitrag anzeigen
    <input type="text" name="ein1" />
    <?php
    echo "DB-Zugriff beginnt";

    Hier baust du eine Verbindung zur Datenbank auf.
    Eine Datenbank besitzt einen Hoster, Benutzernamen und ein Kennwort, sowie Tabellen.

    $mysqli = new mysqli ("hierhost", "hierbenutzer", "hierkennwort", "TestDB");

    Hier wird abgefragt, ob die Verbidung zur Datenbank fehlgeschlagen ist
    if (mysqli_error() ) {
    echo "<p>Keine Verbindung ", mysqli_error (), "</p>\n";
    exit ();
    }

    Leider kann ich keine Deklarierung der Variablen sql entdecken!?
    echo "Abfrage ".$sql;
    Ausgabe des GET Parameter ein1 aus deinem Formular
    ​Hier liegt wahrscheinlich dein Fehler. Es muss $_GET['name'] sein
    echo $GET ['ein1'];
    $such = $GET['ein1'];

    Hier wird nun deine Variable sql definiert. Was dort zu sehen ist ist der Query.
    Mit Hilfe dieses Querys steuerst du deine Abfragen.
    In diesem Fall werden alle Spalten aus der Tabelle teilnehmer deiner Datenbank ausgelsen,
    jedoch nur dort, wo (where) deine Spalte teilnehmer ähnlich wie dem GET Parameter ein1 aus deinem Formular ist und maximal werden 50 teilnehmer ausgegeben
    bzw nur deine ersten 50 Ergebnisse werden ausgegeben, veränderst du die 0 zu einer 1 beispielsweise werden alle Ergebnisse ausgeben, außer das erste und alle nach dem 50. Ergebnis
    Statt dem * sollten hier alle Spalten einzelnd ausgegeben werden. (select id,name,..)
    $sql = "Select * from teilnehmer limit 0,50 where teilnehmer like '%$such%'";
    echo "<br>SQL: ".$sql;

    Da ich mich noch nicht viel mit MySQLi verschäftigt habe kann ich hier grade nur raten,
    dass hier der auszuführende Query mit deiner sql-Abfrage auf deine Variable result geschrieben wird (deine Ergebnisse)
    Ich denke, wenn die Ergebnisse erfolgreich auf deine Variable result geschrieben wurden, ergibt dies true
    if ($result = $mysqli->query($sql) ) {
    echo "<p>Daten kommen</p><table> ";

    Diese while Schleife geht jedes deiner Egebnisse durch
    while ($row = $result->fetch_array() ) {
    Hier ist wahrscheinlich deine Aufgabe entsprechende Ausgaben zu tätigen.
    Also gibst du hier über dein Array row deine Daten aus, in etwa so: $row['columnname']
    echo "<tr>";
    echo "<td>","</td>";
    echo "</tr>";
    }
    echo "</table>";
    $result->close();
    } else {
    echo "Problem SQL-Abfrage";
    }
    schließt die Verbindung
    $mysqli->close ();
    ?>

    Für mehrere Informationen und detaillierteres wende dich an die Dokumentation über MySQLi von php.net
    Diese findest du hier

    Viel Erfolg
    Ps: Vielleicht erstmal ein paar SQL Statements angucken, und allgemeines über php lernen bevor man gleich mit Datenbanken hantiert
    Geändert von Bleistift (01.06.2013 um 21:13 Uhr)


  4. #4
    Kathi93478
    Gast

    Standard AW: Abfrage-Formular

    Hey!
    Danke für die Erklärungen! Das einzige, was ich nicht so ganz verstehe ist der Teil hier:

    Hier ist wahrscheinlich deine Aufgabe entsprechende Ausgaben zu tätigen.
    Also gibst du hier über dein Array row deine Daten aus, in etwa so: $row['columnname']
    echo "<tr>";
    echo "<td>","</td>";

    In Beispielen habe ich gesehen, dass da z.B. [2] drinstand, um eben diese Postion abzurufen. Ich habe aber keine bestimmte Positon. Das verwirrt mich etwas.
    Ich habe mich ja auch etwas belesen, das Problem ist nur, dass ich eine Woche für diese Aufgabe habe, das ist seehr wenig Zeit, da es ja leider nicht die einzige Aufgabe ist, die ich zeitig abgeben muss

    Es funktioniert übrigens verbessert auch noch nicht Ich weiß leider nicht, wie ich einen Bildanhang oder sowas machen kann, sonst könnte ich das mal zeigen

  5. #5
    Bandit
    Gast

    Standard AW: Abfrage-Formular

    Richtig debuggen

    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

  6. #6
    Samurai Avatar von Bleistift
    Registriert seit
    20.03.2012
    Alter
    21
    Beiträge
    235
    Danke
    0
    Bekam 4 mal "Danke" in 4 Postings

    Standard AW: Abfrage-Formular

    Wie gesagt etwas Datenbank-KnowHow wäre nicht schlecht.
    Du hast sicherlich eine Datenbank wenn du das jetzt versuchst, oder?
    Dann klick doch mal auf deine Tabelle und dann auf SQL. Anschließend auf den Button SELECT (ohne *)
    Dann hast du da einen wunderbaren SQL String, der dir alle deine Spalten selektiert.
    Diese sind geordnet in deiner Tabelle.
    Erst kommt deine id, dann dein Name. Also wäre deine ID == $row[0] oder $row['id']
    Der Integer gilt hierbei dann für den Spaltenindex und der String ist dann einfach nur die Möglichkeit deine Spalte per Namen zu "suchen".

    Zum Fehler: Entfern mal die eine Zeile echo "Abfrage ".$sql; unter der IF-Abfrage.



  7. #7
    Bandit
    Gast

    Standard AW: Abfrage-Formular

    Ungetestet:
    PHP-Code:
    <!DOCTYPE html>
    <html>
    <head>
    <title>Teilnehmerliste</title>
    </head>
    <body>
    <h1>Suche Teilnehmer</h1></br>
    <h4>Abfrage Daten:</h4>
    <form method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
    <input type="text" name="begriff" />
    <input type="submit" value="senden" name="sub1" />
    </form>

    <?php
    if (isset($_POST['begriff']))
    {
       
    $mysqli = new mysqli ("hierhost""hierbenutzer""hierkennwort""TestDB");
       
       if (
    $mysqli->connect_errno
       {
           
    printf("Connect failed: %s\n"$mysqli->connect_error);
           exit();
       }

       
    $query "Select
                    `dies`,
                    `das`,
                    `jenes`
                  from
                    `teilnehmer`
                  where
                    `teilnehmer` like '%" 
    $mysqli->real_escape_string($_POST['begriff']) . "%'
                  limit 0,50"
    ;
                  
       
    $result $mysqli->query($query)
          or die (
    "MySQL-Fehler: " $mysqli->error());
       
       if (
    $result->num_rows)
       {
          echo 
    "<table>\n";
          while (
    $row $result->fetch_array(MYSQLI_ASSOC))
          {
            echo 
    "<tr> 
                    <td>" 
    $row['dies']  . "</td>
                    <td>" 
    $row['das']   . "</td>
                    <td>" 
    $row['jenes'] . "</td>
                 </tr>"
    ;
          }
          
          echo 
    "</table>";
      }
      else
        echo 
    "Keine Daten gefunden";
        
      
    $mysqli->close ();
    }
    ?>
    </body>
    </html>

  8. #8
    Kathi93478
    Gast

    Standard AW: Abfrage-Formular

    @Bleistift:
    ja, die DB wird mir zur Verfügung gestellt
    Das ist jetzt sicher eine blöde Frage, aber wie klicke ich denn auf meine Tabelle? Es handelt sich bei der DB um eine Liste von Leuten mit Telefonnummern, sind also unglaublich viele Daten, deswegen kann ich nicht alle ausgeben lassen. Man soll sozusagen in der Suche einen Nachnamen oder einen Teil vom Namen eingeben können und dann alle mit dem Namen angezeigt bekommen.
    Die Zeile habe ich entfernt, und der nicht ganz verständliche Teil sieht gerade so aus:
    while ($row = $result->fetch_array() ) {
    echo "<tr>";
    echo "<td>",$row[0]"</td>";
    echo "</tr>";
    }

    zeigt mir aber jetzt nur eine leere Seite an, also ist das immernoch falsch ^^
    Lasse ich das $row[0] weg, zeigt es mir unter dem Suchfeld "SQL: Select kennummer, name, strasse, plz, telefon from teilnehmer limit 0,50 where teilnehmer like '%%'Problem SQL-Abfrage " an, wenn ich suchen will dann erscheint eine Error-Meldung.

    @ Bandit:
    Danke für den Versuch, aber damit kann ich leider nicht so viel anfangen :/

  9. #9
    Bandit
    Gast

    Standard AW: Abfrage-Formular

    Zitat Zitat von Kathi93478 Beitrag anzeigen
    @ Bandit:
    Danke für den Versuch, aber damit kann ich leider nicht so viel anfangen :/
    Warum nicht? Damit hast du einen Ansatz, wie man es richtig macht! Bei dir sind einige Fehler drin.

  10. #10
    Kathi93478
    Gast

    Standard AW: Abfrage-Formular

    @Bandit:
    Entschuldige! Habe den letzten Post übersehen, danke, das sieht so besser aus!

Ähnliche Themen

  1. PHP Formular - bei Fehleingabe Formular-Seite an bestimmter Stelle (Anker) laden
    Von Josifine im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 01.02.2012, 13:47
  2. Problem mit Formular und zurück Button im Formular
    Von sven77 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 13
    Letzter Beitrag: 30.08.2010, 21:20
  3. Antworten: 0
    Letzter Beitrag: 30.11.2008, 07:38
  4. formular abfrage dauert endlos lang.....
    Von SonicChriz im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 32
    Letzter Beitrag: 01.12.2005, 23:55
  5. HILFE brauche dringend Hilfe bei meiner Formular Abfrage
    Von Traction1977 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 28.04.2004, 11:43

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •