Ankündigung

Einklappen
Keine Ankündigung bisher.

php hilfe

Einklappen

Neue Werbung 2019

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

  • php hilfe

    Hallo leute Ich hab folgendes problem und zwar bekomme ich immer diese fehlermeldung :Warning: mysql_result() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\login\core\functions\users.php on line 9

    ich versuche grade ueber ein tutorial auf youtube einen login berreich nach zu bauen allerdings egal was ich mache und wo nach ich suche ich finde das problem nicht ... ich habe ein php validator genutzt und er meinte das mysql_result und mysql_query veraltet seien.. jetzt zu meiner frage was ist falsch und kann mir bitte jemand helfen ?


    <?php
    // #1



    function user_exists ($username) {
    $username = sanitize ($username);
    $query = mysql_query ("SELECT COUNT (user_id) FROM user WHERE username = '$username'");
    return (mysql_result($query, 0) == 1) ? true : false;




    }

    function user_active($username) {
    $username = sanitize($username);


    return (mysql_result( mysql_query("SELECT COUNT(user_id) FROM user WHERE username ='$username' AND `active` = 1 "), 0) == 1) ? true : false;

    }
    ?>

  • #2
    Die gesamte PHP mysql-Extension (nicht MySQL-Datenbanken an sich!) ist überholt. An dessen Stelle rücken wahlweise die mysqli- und die PDO-Extension. Aber dennoch funktioniert die mysql-Extension mit deiner PHP-Version noch, das ist also nicht der Grund für das Problem.

    Nun, die Fehlermeldund sagt, dass der 1. an mysql_result() übergebene Parameter ein Boolean (also true oder false) ist, obwohl er das nicht sein sollte. Dann lass dir doch mal als ersten Schritt mit var_dump($query) ausgeben, welchen Wert dieser Parameter hat. Vermutlich wird das false sein, was bedeutet, dass beim Ausführen von mysql_query() ein Fehler aufgetreten ist. mysql_error() gibt diesen Fehler zurück, also lass ihn die damit anzeigen.

    Kommentar


    • #3
      danke fuer die schnelle antwort

      wie sehen diese extensions aus ? dann frag ich mich wo der fehler sein sollte ... dann wuerd ich sicher am besten alles noch mal neu machen ...

      Kommentar


      • #4
        (Siehe das was ich noch in meine Antwort oben hineineditiert habe. )

        Kommentar


        • #5
          // Edit: Meh, wieder nicht F5 gedrückt vor dem Posten.

          Willkommen im Forum.

          Setz mal unter diese Zeile…

          PHP-Code:
          $query mysql_query ("SELECT COUNT (user_id) FROM user WHERE username = '$username'"); 
          …diese Zeile…

          PHP-Code:
          if (false === $query) { die(mysql_error()); } 
          …und poste die Ausgabe.

          Du baust eine Verbindung zur Datenbank auf?

          Allgemein:

          - http://php-de.github.io/jumpto/faq/#deprecated-mysql (alte mysql-Extension (zweiter Eintrag von unten))
          - http://php-de.github.io/jumpto/sql/ (SQL-Fehlerbehandlung)

          Und: Code bitte mit den entsprechenden BBCode-Tags auszeichnen: [code][/code], [php][/php], …

          Kommentar


          • #6
            FUNCTION COUNT does not exist das ist der fehler der dann kommt

            ja ich baue eine verbindung zur db auf

            Code bitte mit den entsprechenden BBCode-Tags auszeichnen: , , … entschuldige null plan was du meinst .. bin absoluter anfänger...

            Kommentar


            • #7
              Er meint das hier:
              [php]
              ...dein Code...
              [/php]

              Statt
              Code:
              SELECT COUNT (user_id) FROM
              muss es heißen:
              Code:
              SELECT COUNT(user_id) FROM
              Also ohne das Leerzeichen hinter COUNT.

              Kommentar


              • #8
                Ach so ok werde ich dann machen aber was bringt mir das ???

                jetzt kommt das

                Connection to MySQL server localhost successful! Database user successfully selected!No database selected



                //ENTER YOUR DATABASE CONNECTION INFO BELOW:
                $hostname="localhost";
                $database="user";
                $username="root";
                $password="daniel";

                //DO NOT EDIT BELOW THIS LINE
                $link = mysql_connect($hostname, $username, $password);
                if (!$link) {
                die('Connection failed: ' . mysql_error());
                }
                else{
                echo "Connection to MySQL server " .$hostname . " successful!
                " . PHP_EOL;
                }

                $db_selected = mysql_select_db($database, $link);
                if (!$db_selected) {
                die ('Can\'t select database: ' . mysql_error());
                }
                else {
                echo 'Database ' . $database . ' successfully selected!';
                }

                mysql_close($link);

                ?> das ist meine connect.php

                Kommentar


                • #9
                  Zitat von dfrench Beitrag anzeigen
                  Ach so ok werde ich dann machen aber was bringt mir das ???
                  Es geht um die Darstellung deines Codes hier im Forum. Wenn du den in die passenden BBCode-Tags setzt, sieht der nicht so aus wie in deinem letzten Beitrag, sondern so:

                  PHP-Code:
                  //ENTER YOUR DATABASE CONNECTION INFO BELOW:
                  $hostname="localhost";
                  $database="user";
                  $username="root";
                  $password="daniel";

                  //DO NOT EDIT BELOW THIS LINE
                  $link mysql_connect($hostname$username$password);
                  if (!
                  $link) {
                  die(
                  'Connection failed: ' mysql_error());
                  }
                  else{
                       echo 
                  "Connection to MySQL server " .$hostname " successful!
                  PHP_EOL;
                  }

                  $db_selected mysql_select_db($database$link);
                  if (!
                  $db_selected) {
                      die (
                  'Can\'t select database: ' mysql_error());
                  }
                  else {
                      echo 
                  'Database ' $database ' successfully selected!';
                  }

                  mysql_close($link);

                  ?> 
                  Dieser Code produziert übrigens nicht diese Ausgabe:

                  jetzt kommt das

                  Connection to MySQL server localhost successful! Database user successfully selected!No database selected
                  Du hast nicht alles gepostet.

                  Übergib aber mal $link mit an deine Funktion und nutze den Wert dort als weiteren Parameter in den mysql_*-Aufrufen (siehe Doku zu den jeweiligen Funktionen).

                  Kommentar


                  • #10
                    ah ok hab verstanden danke

                    Connection to MySQL server localhost successful! Database user successfully selected! das entsteht weil ich zu überprüfung ein echo reingeschrieben hab das er auch auf den mysql server verbindet und die richtige db auswählt.

                    PHP-Code:

                    //ENTER YOUR DATABASE CONNECTION INFO BELOW:
                    $hostname="localhost";
                    $database="user";
                    $username="root";
                    $password="daniel";

                    //DO NOT EDIT BELOW THIS LINE
                    $link mysql_connect($hostname$username$password);
                    if (!
                    $link) {
                    die(
                    'Connection failed: ' mysql_error());
                    }
                    else{
                         echo 
                    "Connection to MySQL server " .$hostname "   <----------------
                    PHP_EOL;
                    }

                    $db_selected mysql_select_db($database$link);
                    if (!
                    $db_selected) {
                        die (
                    'Can\'t select database: ' mysql_error());
                    }
                    else {
                        echo 
                    'Database ' $database ' successfully selected!';    <-----------------------------------
                    }

                    mysql_close($link);

                    ?> 

                    das no database selected kommt erst seit ich mein leerzeichen weggemacht hab

                    ("SELECT COUNT (hier war mein fehler)(user_id).....

                    Kommentar


                    • #11
                      Connection to MySQL server localhost successful! Database user successfully selected! das entsteht weil ich zu überprüfung ein echo reingeschrieben hab das er auch auf den mysql server verbindet und die richtige db auswählt.
                      Ja, aber der Code, den du gerade zeigst, produziert nicht die Ausgabe „No database selected“. Sorry, aber du liest hier nicht aufmerksam genug mit.

                      Ich schätze aber, ich kann dir sagen, wo dein aktuelles Problem liegt.

                      PHP-Code:
                      mysql_close($link); 
                      Du schließt die Verbindung sofort nach dem Öffnen wieder.

                      Ich habe das ja erst für beispielhaften Code gehalten, aber das steht da vermutlich wirklich so.

                      Kommentar

                      Lädt...
                      X