Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

09.01.2003, 10:30

[FRAGE] PHP-MySQL Configuration

Hi,

ich habe mir den Apache / PHP / MySQL / ...
über das Mandrake Kontrollzentrum installiert.
(Es wurde alles angewählt, wo MySQL und PHP drin stand, also auch alle PHP-Module)

Nun habe ich einige HTML-Dateien mit Eingabefeldern geschrieben, die an ein PHP-Programm weiter gegeben werden.
- Dies funktioniert einwandfrei!

Nun will ich aus einer mit "phpMyAdmin" angelegten Datenbank informationen auslesen.
- Das connecten zum MySQL-Server via PHP funktioniert. (Keine Fehlermeldung)
- Das auslesen der Daten funktioniert aber leider nicht! (Hier bekomme ich eine Fehlermeldung!)
- Hier der Code zur Datei 2.php:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<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");
      $pn = mysql_result($res, $i, "personalnummer");
      $ge = mysql_result($res, $i, "gehalt");
      $gt = mysql_result($res, $i, "geburtstag");
      echo "$nn, $vn, $pn, $ge, $gt <br>";
   }

   mysql_close($db);
?>
</body>
</html>


- Ab der 7. Zeile wird folgender Fehler ausgegeben:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/html/php/db/1.php on line 7

Nun zu meiner Frage:
Was mache ich falsch? - Woran kann das liegen?
Habe ich noch irgend ein PHP-Modul vergessen zu installieren oder zu kompilieren?

Ich bin Ratlos (Wie das halt bei einem Newbie ist) und tüftel hier schon 2 Tage dran herum und bekomme es einfach nicht hin!

Ich hoffe Ihr könnt mir hierbei helfen!

Gruß
MacroMax

P.S.
Ich poste den selben Beitrag noch einmal im
Forum: » Distributionen » Mandrake-Forum.de » Server
@ $igma - Ich wußte nicht genau, in welches Forum ich das nun posten sollte. - Kannst dann ja eines von beiden löschen - sorry!
=====================================
+++ Wenn ich erstmal Groß bin, werde ich auch noch ein Profi +++
=====================================

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MacroMax« (11.01.2003, 10:39)


  • »Doomshammer« ist männlich

Beiträge: 668

Wohnort: Ostfriesland

Beruf: Netzwerk- & Systemadministrator

  • Nachricht senden

2

09.01.2003, 11:16

Der Fehler bedeutet, das das Ergebnis Deines Queries 0 ergeben hat - aus welchem Grund auch immer. Ich vermute mal Du hast entweder den Tabellennamen oder den Datenbanknamen falsch angegeben (Ueberpruef das mal).

Um eine genauere Fehlermeldung zu bekommen versuch mal folgendes:

Quellcode

1
2
3
4
5
$res = mysql_db_query("firma", "select * from personen");
if (!$res) {
   echo mysql_error();
  exit;
}


oder

Quellcode

1
$res = mysql_db_query("firma", "select * from personen") or die("Fehler im Query: ".mysql_error());


PS: Das Script an sich ist ok, ich hab es einfach mal bei mit getestet und es funktioniert.
perl -e 'print pack("B248","01010010010101000100011001001101001000000010110100100000010010000110000101101100011101000010000001000100011010010110001101101000001000000110010001110010011000010110111000100001");'

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Doomshammer« (09.01.2003, 11:26)


3

09.01.2003, 11:41

YEAAAHHHHH

Danke - Danke - Danke! -- Das ist ja MEGA!

Ich habe eine ander DB (db-test;user) genommen, aber identisch in PHP programmiert (dachte ich jedenfalls). =D

Aber jetzt klappts!

Herzlichen Dank nochmal!
Ich wußte, dass Du mir auf diesen Beitrag antworten würdest - lol
=====================================
+++ Wenn ich erstmal Groß bin, werde ich auch noch ein Profi +++
=====================================

  • »Doomshammer« ist männlich

Beiträge: 668

Wohnort: Ostfriesland

Beruf: Netzwerk- & Systemadministrator

  • Nachricht senden

4

09.01.2003, 20:24

Zitat

Original von MacroMax
Ich wußte, dass Du mir auf diesen Beitrag antworten würdest - lol


Ohjee, da bin ich gerade 4 Tage registriert und hab schon so 'nen schlechten Ruf? *g* ;)
perl -e 'print pack("B248","01010010010101000100011001001101001000000010110100100000010010000110000101101100011101000010000001000100011010010110001101101000001000000110010001110010011000010110111000100001");'

5

11.01.2003, 10:38

?-Eingabe in eine Datenbank-?

Sorry, daß ich nochmal stören muß! - Aber es wird auch diese Frage sicher nicht meine letzte zu diesem Thema sein.

Meine Datenbank-Abfrage (2.php) funktioniert jetzt ja Tadellos!
Leider kann ich bei mir den Fehler im Dateneingabeskript nicht finden.

Als Vorlage dient mir > diese Anleitung! <

Um das auf meine Datenbank anzupassen, habe ich lediglich die Variablen etwas geändert.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<html>
<head>
<?php
   if ($gesendet)
   {
      $db = mysql_connect();

      $sqlab = "insert user";
      $sqlab .= "(Vorname, Nachname,";
      $sqlab .= "Strasse, PLZ, Ort) values ";
      $sqlab .= "('$vn', '$nn', $st, $pl, '$or')";

      mysql_db_query("db-test", $sqlab);

      $num = mysql_affected_rows();
      if ($num>0)
         echo "Es wurde 1 Datensatz hinzugefügt<p>";
      else
      {
         echo "Es ist ein Fehler aufgetreten, ";
         echo "es wurde kein Datensatz hinzugefügt<p>";
         echo mysql_error();
      }
      mysql_close($db);
   }
?>
</head>

<body>
Geben Sie einen vollständigen Datensatz ein und senden Sie das 
Formular ab:
<form action = "1.php" method = "post">
    <input name="vn"> Vorname<p>
    <input name="nn"> NAchname<p>
    <input name="st"> Strasse<p>
    <input name="pl"> PLZ<p>
    <input name="or"> Ort<p>
    <input type="submit" name="gesendet">
    <input type="reset">
</form>

Alle Datensätze <a href="2.php">anzeigen</a>
</body>
</html>


Aber leider bekomme ich folgende Fehlermeldung von meinem Datenbankserver zurück:
You have an error in your SQL syntax near 'user(Vorname, Nachname,Strasse, PLZ, Ort) values('', '', '', , '')' at line 1

Ich schätze mal, dass ich diesmal wieder einen winzigen fehler in dem Code habe.
Ich wüsste nur gerne welche!

Ich bedanke mich schonmal jetzt für die Lösung!
=====================================
+++ Wenn ich erstmal Groß bin, werde ich auch noch ein Profi +++
=====================================

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MacroMax« (11.01.2003, 10:40)


format c:

unregistriert

6

11.01.2003, 14:18

das muß heißen $sqlab = "insert into user";
und immer auf die Hochkommas ( ' ) achten
aber warum machst du dir das so schwer,es geht auch einfacher:

// ############## Einstellungen für mySQL Anbindung: #################
$database= ""; //Datenbankname
$sqlhost= "localhost"; //mySQL Hostname
$sqluser= ""; //mySQL Username
$sqlpass= ""; //mySQL Passwort

$serverid = mysql_connect ( $sqlhost, $sqluser, $sqlpass) or
die ("Verbindung zur Datenbank nicht möglich !");
if (!mysql_select_db( $database))
echo mysql_error($serverid);

$eintrag = "insert into user(Vorname, Nachname,Strasse, PLZ, Ort) values ('$vn', '$nn', '$st', '$pl', '$or')";
$sql=mysql_query($eintrag,$serverid);

noch viel Spass beim coden wünscht :party:

7

11.01.2003, 15:50

Danke Sebastian,

ich habe jetzt zwar keine Fehlermeldung mehr, aber leider wird in meiner Datenbank nix von meinen Eingaben gespeichert.

Muß ich noch irgendwelche Schreibrechte per phpMyAdmin vergeben, oder woran kann das liegen?
=====================================
+++ Wenn ich erstmal Groß bin, werde ich auch noch ein Profi +++
=====================================

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MacroMax« (11.01.2003, 19:02)


8

11.01.2003, 20:08

. . . am Code kanns nicht liegen!

Hallo!

Also am Code kann es nicht liegen!

Ich habe das Gefühl, daß es sich hier um eine Fehlerhafte Konfiguration von PHP,MySQL oder gar dem Apache handelt.
Ich hoffe, daß mir in kürze jemand helfen kann!

:? :? :? Ich bin am verzweifeln :? :? :?
=====================================
+++ Wenn ich erstmal Groß bin, werde ich auch noch ein Profi +++
=====================================

format c:

unregistriert

9

11.01.2003, 21:39

Versuch mal herauszufinden wo deine php.ini gespeichert wird. Wenn in dieser steht :

register_globals=off

dann kannst nicht mit Variablen a la $name arbeiten, sonder mußt $_POST[name] schreiben

wie gesagt, du mußt auch einen Benutzernamen angeben, am besten root ohne passwort wenn du lokal arbeitest, sonst kannst du nichts in die mysql-Datenbank schreiben

10

11.01.2003, 21:43

register_globals=on
- so stehts in meiner php.ini

Quellcode

1
2
3
4
$database= "db-test"; //Datenbankname
$sqlhost= "192.168.0.10"; //mySQL Hostname
$sqluser= "root"; //mySQL Username
$sqlpass= ""; //mySQL Passwort


So weit so gut, oder ?????

Vielleicht ist hier ja was falsch eingestellt????
=====================================
+++ Wenn ich erstmal Groß bin, werde ich auch noch ein Profi +++
=====================================

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MacroMax« (11.01.2003, 21:48)


format c:

unregistriert

11

11.01.2003, 21:54

keine ahnung worans liegen könnte.
Versuchs mal mit

$sqlhost= "localhost"; //mySQL Hostname

12

11.01.2003, 21:57

:'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'(
Geht auch nicht! - Du bist also auch am Ende Deines Latain´s?
:'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'( :'(
=====================================
+++ Wenn ich erstmal Groß bin, werde ich auch noch ein Profi +++
=====================================

format c:

unregistriert

13

11.01.2003, 22:27

so umständlich wie es in der Anleitung ist, wodu den Link angeben hast, habe ich noch keine ...hä ich schreibe nur mist, kurz, versuchs mal hier mit:


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<html>
<head>
<?php
   if ($gesendet)
   {

// ############## Einstellungen für mySQL Anbindung: #################
$database= ""; //Datenbankname
$sqlhost= "localhost"; //mySQL Hostname
$sqluser= ""; //mySQL Username
$sqlpass= ""; //mySQL Passwort

$serverid = mysql_connect ( $sqlhost, $sqluser, $sqlpass) or
die ("Verbindung zur Datenbank nicht möglich !");
if (!mysql_select_db( $database))
echo mysql_error($serverid);

$eintrag = "insert into user(Vorname, Nachname,Strasse, PLZ, Ort) values ('$vn', '$nn', '$st', '$pl', '$or')";
$sql=mysql_query($eintrag,$serverid);

?>
</head>

<body>
Geben Sie einen vollständigen Datensatz ein und senden Sie das 
Formular ab:
<form action = "1.php" method = "post">
    <input type="text" name="vn"> Vorname<p>
    <input type="text" name="nn"> NAchname<p>
    <input type="text" name="st"> Strasse<p>
    <input type="text" name="pl"> PLZ<p>
    <input type="text" name="or"> Ort<p>
    <input type="submit" name="gesendet">
    <input type="reset">
</form>

Alle Datensätze <a href="2.php">anzeigen</a>
</body>
</html>

  • »Doomshammer« ist männlich

Beiträge: 668

Wohnort: Ostfriesland

Beruf: Netzwerk- & Systemadministrator

  • Nachricht senden

14

14.01.2003, 10:45

Zitat

Original von format c:
$eintrag = "insert into user(Vorname, Nachname,Strasse, PLZ, Ort) values ('$vn', '$nn', '$st', '$pl', '$or')";
$sql=mysql_query($eintrag,$serverid);


Da stimmt was nicht...
IIRC wird mit mysql_query() nur der Query-String uebergeben, an den Server der via mysql_connect geoeffnet wurde. Will man die Datenbank mit ansprechen nimmt man mysql_db_query().

Das ganze muesste also entweder so:

Quellcode

1
$sql=mysql_query($eintrag);

oder so:

Quellcode

1
$sql=mysql_db_query($serverid,$eiintrag);

aussehen.

HTH und Gruß
Winfried
perl -e 'print pack("B248","01010010010101000100011001001101001000000010110100100000010010000110000101101100011101000010000001000100011010010110001101101000001000000110010001110010011000010110111000100001");'

format c:

unregistriert

15

14.01.2003, 14:20

komisch, daß das so alles in meinen scripten funktioniert, die ich für kunden erstelle

die datenbank wird in $serverid angesprochen

  • »Doomshammer« ist männlich

Beiträge: 668

Wohnort: Ostfriesland

Beruf: Netzwerk- & Systemadministrator

  • Nachricht senden

16

14.01.2003, 14:43

Jo, aber die Reihenfolge sollte AFAIK ($serverid, $eintrag) sein und nicht ($eintrag, $serverid)
perl -e 'print pack("B248","01010010010101000100011001001101001000000010110100100000010010000110000101101100011101000010000001000100011010010110001101101000001000000110010001110010011000010110111000100001");'

17

14.01.2003, 17:38

Vielen Vielen Dank für eure Antworten auf mein Problem!

Ich bin gerade dabei, PHP & MySQL komplett runter zu schmeissen und neu zu installieren.
Mich lässt nämlich der Gedanke nicht los, das ich da irgend etwas zuviel iinstalliert oder aber etwas falsch installiert habe.
Wenn das Problem dadurch gelöst wurde, lass ich es euch natürlich wissen!

Bis dahin
GREETZ
MacroMax
=====================================
+++ Wenn ich erstmal Groß bin, werde ich auch noch ein Profi +++
=====================================

18

30.01.2003, 23:54

Hi,

hier melde ich mich wieder zurücke mit meinem Problem! :-((

Ich habe jetzt alles komplette neu installiert, ausser den Apache.

Kann es sein, dass ich einen falschen Webserver habe????

Meine Version: Apache-AdvancedExtranetServer/1.3.26 Server

Denn das auslesen aus der Datenbank funktioniert, nur das schreiben in meine Datenbank funktioniert nicht!


BRAUCHE DRINGEND HILFE!!!!
=====================================
+++ Wenn ich erstmal Groß bin, werde ich auch noch ein Profi +++
=====================================

19

31.01.2003, 00:08

Zitat


Kann es sein, dass ich einen falschen Webserver habe????

Wohl kaum ...

Zitat


Denn das auslesen aus der Datenbank funktioniert, nur das schreiben in meine Datenbank funktioniert nicht!


Sind alle Rechte des DB-Benutzers korrekt gesetzt?
Hast Du nach dem Setzen der Rechte den MySQL-Server neu gestartet bzw. als 'root' den Befehl FLUSH PRIVILEGES i.d. mysql-Konsole eingegeben?

Michael
Life is like ice cream: enjoy it before it melts!
"If there is (a God), all evidence indicates that He hates me." - Matt Groening

20

31.01.2003, 22:03

. . . neues Avatar ???

Hi Michael,

erst einmal HERZLICHEN DANK, dass Du dich meinem Problem annimmst!

BTW: Hast Du Dir ein neues Avatar zugelegt?

Zu meinem Problem:
Also, auf das Ding mit den Rechten bin ich vorher auch schon gekommen. - Auf der ersten Seite des Threads habe ich deshalb auch mal einen Screenshot von phpMyAdmin gepostet.
Und danach sind alle Rechte korrekt eingerichtet.
Und ausserdem connecte ich auf die Datenbank mit "root".

Ich bin gerade jetzt dabei, meinen Apache und MySQL komplett neu zu installieren und kompilieren "Danke an Doomshammer für sein Tutorial hier im Board"

Ich hoffe, dass es dann auch mit dem schreiben in die Datenbank klappt. - Denn ich bin mir sicher, dass irgend etwas an der konfiguration faul war!

Ich werde dann berichten!

Gruß
MacroMax
=====================================
+++ Wenn ich erstmal Groß bin, werde ich auch noch ein Profi +++
=====================================

Thema bewerten