Problem: Fatal error: Function name must be a string i

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

  • Problem: Fatal error: Function name must be a string i

    Ich bekommen bei einer MYSQL Anweisung immer obiges Problem. Wenn ich den generierten SQL Code in phpmyadmin packe, wird dieser sauber ausgeführt. Kann mir jemand sagen wo das Problem ist?

    Hier der komplette Code:
    PHP-Code:
    <?php
    # function wpShowPosts($zwp_product_name, $zwp_manu_name, $zwp_cat_name) {

        
    $zwp_product_name 'Shimano, Kette, Dura Ace, 10-fach, CN-7801';
        
    $zwp_manu_name    =  'Shimano';
        
    $zwp_cat_name     'Fahrradkette';

        
    $zwp_regex "/[,.-]/";
        
    $zwp_search_string '';
        
    $zwp_product_name preg_replace ($zwp_regex,'',$zwp_product_name);''# Shimano HG-50 Kette

        
    $zwp_string $zwp_product_name.' '.$zwp_manu_name.' '.$zwp_cat_name;

        
    $zwp_words explode(" "$zwp_string);    
        
    $zwp_words array_values(array_unique($zwp_words));
        
    $first '';
        
    $zwp_search_string '';
        foreach(
    $zwp_words as $f ){
            if (
    $first <> '') {  $zwp_search_string $zwp_search_string " OR "; } else { $first 'X'; }        
            
    $zwp_search_string $zwp_search_string " wp_terms.name LIKE \"%".trim($f)."%\"";
        }

        
    $mysqlc  mysql_connect("XXX""XXX""XXX");
            
        
    $myquery 'SELECT DISTINCT wp_term_relationships.object_id AS id
                                FROM ( wp_term_taxonomy INNER JOIN wp_term_relationships
                                  ON wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id )
                                INNER JOIN wp_terms  
                                  ON wp_terms.term_id = wp_term_taxonomy.term_id
                                WHERE  ( '
    .$zwp_search_string.' );';
        echo 
    $myquery;
        
        
    $resultc mysql_query($myquery);    
            
        echo 
    $mysqlerror();

        
    $zwp_id '';
        while( 
    $row mysql_fetch_array($resultc) ) {   
            
    $zwp_id $zwp_id "," $row['id'];
        }
            
        
    $myquery2 'SELECT DISTINCT post_title, post_name, post_content
                                FROM
                                    wp_posts 
                                WHERE   
                                        id          IN ('
    $zwp_id .') 
                                    AND post_status = \"publish\"
                                    AND post_type   = \"post\"                                
                                ORDER BY
                                    RAND()                       
                                LIMIT
                                    0, 3;'
    ;
       
    #echo $myquery2;
       
    $resultc2 mysql_query($myquery2);
           while( 
    $row2 mysql_fetch_assoc($resultc2) ) {
           
    $zwp_return $zwp_return '<h3><strong><a href="http://www.XXX.de/XXX/' $row2['post_name'] . '">'$row2['post_title'] . '</a></h3>';           
        }
    # return $zwp_return;
    # }

    #$output = wpShowPosts('Shimano, Kette, Dura Ace, 10-fach, CN-7801', 'Shimano', 'Fahrradkette');
    #echo $output;
    ?>
    Die Ausgabe kann man sich hier ansehen:
    http://bit.ly/PDy8gy

  • #2
    Zitat von tgreis Beitrag anzeigen
    Ich bekommen bei einer MYSQL Anweisung immer obiges Problem.
    In Zukunft bitte Original-Fehlermeldung inkl. Angabe der Zeile posten, und auch im Code kennzeichnen, welche Zeile das ist!
    PHP-Code:
    echo $mysqlerror(); 
    Und was steht drin in dieser Variablen $mysqlerror …?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Klick bitte auf den Link (so wie im ersten Posting angegeben). Da sieht man wie es im orginal aussieht:
      http://bit.ly/PDy8gy

      Zeile 35: echo $mysqlerror();

      Kommentar


      • #4
        wahsaga gab dir schon die Lösung mit der Aussage :
        Code:
        Und was steht drin in dieser [I]Variablen[/I] $mysqlerror …?
        Eine Variable hat ein führendes Dollarzeichen.
        Eine Funktion NICHT sondern Klammern hinter dem Funktionsnamen.
        Du hast beides in Zeile 35 bei
        PHP-Code:
        echo $mysqlerror(); 
        Deswegen bekommst du hier eine Fehlermeldung.

        Kommentar


        • #5
          Super. Nehm ich das raus kommt die Fehlermeldung:
          PHP-Code:
          Warning:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /kunden/305360_83022/webseiten/shop/wp-posting.php on line 38 
          Die angemeckerte Zeile ist:
          PHP-Code:
              while( $row mysql_fetch_array($resultc) ) { 
          Aber der MYSQL Code funktionert in PHPmyadmin ohne Probleme
          PHP-Code:
          SELECT DISTINCT wp_term_relationships.object_id AS id                             FROM wp_term_taxonomy INNER JOIN wp_term_relationships                               ON wp_term_taxonomy.term_taxonomy_id =  wp_term_relationships.term_taxonomy_id )                             INNER JOIN wp_terms                                 ON wp_terms.term_id wp_term_taxonomy.term_id                             WHERE  (  wp_terms.name LIKE "%Shimano%" OR  wp_terms.name LIKE  "%Kette%" OR  wp_terms.name LIKE "%Dura%" OR  wp_terms.name LIKE "%Ace%"  OR  wp_terms.name LIKE "%10fach%" OR  wp_terms.name LIKE "%CN7801%" OR   wp_terms.name LIKE "%Fahrradkette%" 
          Aus diesem Grund hatte ich ja die Zeile
          PHP-Code:
          echo $mysqlerror(); 
          eingebaut.

          Weiss hier jemand was ich falsch mache? Danke für die Mühen.

          Kommentar


          • #6
            Erstmal noch ein Hinweiß bzgl. des mysql_error und der Anwendung.

            Und die Fehlermeldung wird vermutlich auftauchen da du keine Verbindung zur Datenbank aufbaust in deinem Skript

            Kommentar


            • #7
              Zitat von tgreis Beitrag anzeigen
              Weiss hier jemand was ich falsch mache? Danke für die Mühen.
              Dass du versuchst, aus einer Variable eine Funktion zu machen... oder umgekehrt - je nach Sichtweise.
              Zuletzt geändert von Quetschi; 24.07.2012, 15:31.
              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


              • #8
                Was soll das überhaupt werden? Wozu bastelst du dir einen IN()-String zusammen? Warum nicht einfach ein Sub-Query? Oder noch besser ein Join?

                Du solltest übrigens nicht die veraltet mysql-Extension verwenden, sondern mysqli oder PDO. Die mysql-Extension wird vermutlich bald rausfliegen, und dann kannst du das erst neu programmieren.

                Kommentar

                Lädt...
                X