hilfe bei einfachen chatbot

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

  • hilfe bei einfachen chatbot

    hallo leute ich bin gerade dabei einen kleinen sehr einfachen chatbot zu erstellen. die datenbank steht soweit nur komm ich jetzt gerade nicht weiter und hab warscheinlich nur einen denkfehler.

    es ist so gedacht das der user seine frage eingibt und diese frage in der datenbank verglichen wird, ist die frage dann in der datenbank vorhanden bekommt er eine dem entsprechende antwort. ist die frage nicht in der datenbank vorhanden soll der bot sagen "es tut mir leid aber ich habe deine frage nicht verstanden". hat der user jedoch das feld frei gelassen (was der fall ist wenn er die seite gerade erst aufgerufen hat, soll der bot sagen "hi ich bin bla, wie kann ich dir helfen"

    mein script schaut bis her so aus, funzt nur leider nicht so wie ich das gern hätte:

    PHP-Code:
    <form name="form1" method="post" action="chatbot.php">
      <input type="text" name="frage">
      <br>
      <input type="submit" name="Submit" value="Fragen">
    </form>
    <?php

    mysql_connect
    ("localhost""xxxx""xxxxx");
    mysql_select_db("xxxxx");
    $sql "SELECT * From frage";
    $result mysql_query($sql);
    while  (
    $row mysql_fetch_assoc($result)) {

    if (
    $_POST['frage'] == $row['fragedb']){
            echo 
    $row[antwort];}
    if (
    $_POST['frage'] != $row['fragedb']){
            echo 
    "Es tut mir leid aber ich habe dich nicht verstanden.";}
    elseif (!
    $_POST['frage']){
        echo 
    "Hallo ich bin Abe, wie kann ich dir hefen?";}

    }
    mysql_close();
    ?>
    wo liegt da mein fehler?

  • #2
    Mal abgesehen von der ziemlich unlogischen Programmierung:

    Was ist, wenn User1 "Bin ich männlich?" und User2 "Bin ich männlich???" fragt?
    Die Antwort für User1 wird dann für User2 nicht gefunden, obwohl die Frage dieselbe ist.

    Mal abgesehen davon, wieso alle Datensätze abfragen und dann durchlaufen?

    PHP-Code:
    SELECT FROM frage WHERE frage '<frage vom user>'
    Dann anhand der Anzahl Datensätze evaluieren, ob was gefunden wurde.


    -edit-
    PHP-Code:
    elseif (!$_POST['frage']){ 
    Das überprüft nicht ob die Variable vorhanden ist, sonder ob sie "false" ist. -> isset(...)
    Zuletzt geändert von ModestLife; 07.10.2007, 15:52.
    Mein PHP Blog

    Kommentar


    • #3
      hallo und erst mal danke für deine antwort, nur leider versteh ich sie nicht kannst du mir das bitte anhand meines bsp. zeigen?

      Kommentar


      • #4
        schau bitte volltext index von mysql.
        Slava
        bituniverse.com

        Kommentar


        • #5
          Dreh mal dein error_reporting(E_ALL) voll auf. Wie werden String Keys in Arrays angesprochen?
          Auch ich würde dir empfehlen nicht die ganze DB auszulesen sondern in der MySql Query mittels einer WHERE Bedingung die Anzahl Datensätze zu limitieren.

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            <<Auch ich würde dir empfehlen nicht die ganze DB auszulesen>>

            Ich würde das nicht empfehlen, sonder befehlen.
            Slava
            bituniverse.com

            Kommentar


            • #7
              Ich würde das nicht empfehlen, sonder befehlen.
              OffTopic:

              Jawohl Genosse Vorsitzender


              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar

              Lädt...
              X