PHP und MySQL Suche Problem

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

  • PHP und MySQL Suche Problem

    Hi,

    Habe hier ein Problem mit folgendem Code:

    PHP-Code:
    <?php              
                
    require_once 'config.php';
                
    $db mysql_connect($dbserver,$databaseuser,$databasepw);
                
    mysql_select_db($database,$db);
                
                
    $q null;
                if(isset(
    $_POST['q'])){
                    
    $q htmlspecialchars($_POST['q']);
                
                
    $suche mysql_query('SELECT * FROM filme WHERE   MATCH(film)AGAINST(?IN BOOLEAN MODE)',$db);
                echo 
    mysql_error();                        
                if((
    $cc=mysql_num_rows($suche))>0){
                    print 
    mysql_error();                
                    echo 
    'Anzahl der Treffer',$cc'<hr/><br/>';                                
                    for(
    $i=0;$i<$cc;$i++){
                        echo 
    mysql_result($q,$i,"film")."<br />";
                    }
                }            
                }
                
    ?>
    bekomme dann folgende Fehlermeldung: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?IN BOOLEAN MODE)' at line 1" , mysql_num_rows() expects parameter 1 to be resource, boolean give..." Also an der Syntax sollte nix falsch sein, und warum die Variable $suche ständig false is versteh ich auch nich wirklich bin da leider zu unerfahren für. Kann mir einer von euch eventuell weiterhelfen?

    mfg

    AzoZ

  • #2
    Code:
    WHERE MATCH(film) AGAINST
    So?

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Also an den Leerzeichen liegt es nicht falls sie das meinen , ich habe auch bereits
      PHP-Code:
      mysql_query("SELECT * FROM filme WHERE film LIKE '%'.$q.'%'"
      versucht nix zu machen bekomme da immer die selbe Fehlermeldung

      mfg

      AzoZ

      Kommentar


      • #4
        Jetzt liegt's in der Tat nicht mehr an den Leerzeichen.
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          Was passiert bei
          PHP-Code:
          mysql_query('SELECT * FROM filme WHERE film LIKE \'%'.$q.'%\''); 
          Peter

          PS: mach doch mal Folgendes. Pack deinen formatierten Query in eine Variable und gibt das per echo aus (die Formatierung hilft leichter den Fehler zu finden).
          PHP-Code:
          $query 'SELECT 
                     * 
                    FROM 
                      filme 
                    WHERE 
                      film 
                    LIKE \'%'
          .$q.'%\'';
          echo 
          $query
          Was kommt da bei einem konkreten Beispiel heraus?
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            hi

            Also ich habe die Select anweisung ja in $suche drin diese habe ich mit echo ausgegeben und es erscheint z.b. "Resource id #6".
            habe es jetzt auch mit
            PHP-Code:
            $suche mysql_query('SELECT film FROM filme WHERE `film` LIKE \'%'.$q.'%\'' ,$db); 
            gelöst bekommen. Die Anzahl der Treffer gibt er aufjedenfall schonmal aus.
            Er mecker aber immer noch rum und gibt jetzt die Fehlermeldung aus" mysql_result() expects parameter 1 to be resource.." , sehe somit den Filmtitel nicht. Habt ihr da noch ne Idee?

            Hier nochmal der untere Teil des Codes

            PHP-Code:
            if(($cc=mysql_num_rows($suche))>0){                                
                            echo 
            'Anzahl der Treffer',$cc'<hr/><br/>';                                                
                            for(
            $i=0;$i<$cc;$i++){
                                echo 
            mysql_result($q,$i,"film")."<br />";
                            }
                        } 
            mfg

            AzoZ

            Kommentar


            • #7
              So Habe mein Problem jetzt anders gelöst

              Habe jetzt statt mysql_result , mysql_fetch_assoc genommen und siehe da er gibt alles aus was ich mir wünsche

              Ich danke für die Hilfe Herr Kropff

              mfg

              AzoZ

              Kommentar


              • #8
                htmlspecialchars() ist hier Quatsch. Das dient für die HTML-Ausgabe und nicht für Datenbankabfragen.

                Es fehlt das SQL-Escaping mit mysql_real_escape_string().

                Die mysql_* Funktionen sind veraltet und werden bald aus PHP entfernt. Wenn du also willst, dass dein Programm in Zukunft auch noch läuft, solltest du auf die neuere mysqli- oder PDO-Extension umsteigen.

                Kommentar

                Lädt...
                X