Problem mit MYSQL



  • hallo,
    versuch mich grad mit mysql hab eine datenbank mit dem name firma und eine tabelle personen angelegt.

    habe folgenden code geschrieben:

    <html>
    <body>
    <?php
       $db = mysql_connect();
    
       $res = mysql_db_query("firma",
              "select * from personen");
       $num = mysql_num_rows($res);
       echo "$num Datensätze gefunden<br>";
    
       for ($i=0; $i<$num; $i++)
       {
          $nn = mysql_result($res, $i, "name");
          $vn = mysql_result($res, $i, "vorname");
                echo "$nn, $vn <br>";
       }
    
     mysql_close($db);
    ?>
    </body>
    </html>
    

    aber ich bekomme immer eine fehlermeldung:

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/sql.php on line 7

    wieso funktioniert das nicht kann mir jemand helfen:

    danke peer





  • Heißt die Tabelle "person" oder "personen"?

    Benutzte immer sowas um sicherzustellen das es keine Fehler gab:

    if ( ($result = mysql_query($sql)) === false )
            {
                echo "<p>foo.php Line 78: <pre>$sql</pre></p>";
                die(mysql_error());
            }
    

    oder etwas ähnliches.



  • Die Tabelle heißt personen.



  • hab mal folgendes probiert welches ich in einem buch gelesen habe:

    <?php
    $id=mysql_connect();
    $result=mysql_list_dbs();
    while($row=mysql_fetch_row($result))
    
    {
    echo "<br /><i> $row[0]</i>\n";
    
    }
    
    ?>
    

    das programm zeigt dann eine liste aller mysql datenbanken:

    es werden aber nur 2 angezeigt:
    information_schema
    test

    bei meiner sql datenbank sehen ich aber mit show databases viel mehr,

    also auch meine datenbank firma.

    gruß peer



  • Dann ist dein Server auf den falschen Mysql-Server eingestellt?

    Schau bei deinem Server in /etc/my.cnf, da unter
    [client]
    port = 3306 # Ist der Standardport

    und bei /etc/php.ini bei mysql.default_port ob da der selbe Port steht wie in der my.cnf

    oder lass dir die Php-Einstellungen mittels phpinfo() ausgeben, da müsste der verwendete mysql-Port auch stehen.



  • Vorallem prüfe mal ob Du Dich mit dem richtigen Host verbindest (der connect selbst scheint ja zu gehen ?)



  • Wenn Du 'mysql_connect' tatsächlich ohne Parameter aufrufst, dann kann es auch sein, dass Dir die erforderlichen Rechte fehler, um auf die anderen Datenbanken/Tabellen zuzugreifen. Sprich, diese sind für die Default-Benutzerkennung nicht vorhanden, also werden diese auch nicht gelistet.



  • Hallo habe es jetzt hinbekommen.

    Vielen Dank

    hab aber noch folgendes problem.

    bsp:

    $host="localhost";
    $user="root";
    
    $db=mysql_connect($host,$user);
    
    $wert="select name,vorname from personen";
    
    $res=mysql_db_query("firma",$wert);
    
    $num=mysql_num_rows($res);
    echo "$num Datensätze";
    
    for($i=0;$i<$num;$i++)
    
    {
    $vn=mysql_result($res,$i,"vorname");
    $nn=mysql_result($res,$i,"name");
    
    echo "$vn $nn <br> ";
    }
    
    mysql_close($db);
    

    so bekomme ich alle Vornamen und Nachname ausgegeben.

    will ich aber suchen nach einem bestimmten namen bsp:

    wert="selectname,vornamefrompersonen";wert ="select name,vorname from personen"; .wert="where name=$find";

    aber dort bekomme ich wieder denn fehler

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in.................

    müsste doch normal gehen oder ?

    oder auch wenn ich nach einem Anfangsbuchstaben suche:

    wert="selectname,vornamefrompersonen";wert = "select name, vorname from personen"; wert .= " where name like 'M%' order by name";

    bekomme ich auch denn fehler.

    gruß peer



  • hat jetzt geklappt.


Anmelden zum Antworten