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
testbei 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 Standardportund 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="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 .= " where name like 'M%' order by name";
bekomme ich auch denn fehler.
gruß peer
-
hat jetzt geklappt.