Warum kostenlos registrieren?

Nur als registriertes Mitglied hast Du vollen Zugriff auf alle Funktionen unserer Website. So kannst Du eigene Fragen stellen und hast die volle Übersicht über neue interessante Themen im Forum.
Jetzt kostenlos registrieren.

Login


Fehler bei SQL Abfrage

Fragen oder Probleme mit HTML, PHP oder CSS?

Fehler bei SQL Abfrage

Beitragvon Chaos06 am 25.11.2004, 13:16

Hi,

ich habe ein Problem mit meinem Login Bildschirm. Hier erstmal ein Auszug aus dem Code:

Code: Alles auswählen
    <?php
   if ($gesendet)
   {
 
   $db = mysql_connect();

   $res = mysql_db_query("qwert",
          "select * from mitarbeiter where login = $loginc and passwort = $passwortc");
$id = mysql_result($res, "id");


Die Variablen $loginc und $passwortc habe ich natürlich vorher durch ein Input Feld eingeben lassen. Leider gibt mir der Browser nach Eingabe von Login und PAsswort folgnde Fehlermeldung aus:

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

Als betreffende Zeile wird die letzte aus dem oben geposteten Code angegeben. Was habe ich da falsch gemacht?
Chaos06
 
Beiträge: 6
Registriert: 25.11.2004, 13:09


Beitragvon CoolCasimir am 25.11.2004, 13:46

Setze die Variablen in Hochkommas und verwende mysql_query
Code: Alles auswählen
$res = mysql_query("select * from mitarbeiter where login = '$loginc' and passwort = '$passwortc'");
CoolCasimir
Moderator
 
Beiträge: 2194
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg

Beitragvon Chaos06 am 25.11.2004, 15:38

Bringt leider nichts. Immer noch der gleiche Fehler in der gleichen ZEile:


Code: Alles auswählen
$id = mysql_result($res, "id");
Chaos06
 
Beiträge: 6
Registriert: 25.11.2004, 13:09

Beitragvon CoolCasimir am 25.11.2004, 16:12

Chaos06 hat geschrieben:Bringt leider nichts. Immer noch der gleiche Fehler in der gleichen ZEile:


Code: Alles auswählen
$id = mysql_result($res, "id");

Die Felder login und passwort gibt es aber schon in der Tabelle oder? Auch genauso geschrieben?
CoolCasimir
Moderator
 
Beiträge: 2194
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg

Beitragvon Chaos06 am 25.11.2004, 16:20

Ja klar sind da und auch genauso geschrieben.

Hier nochmal der komplette Code. Vielleicht hilft das ja weiter:

Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
  <head>
    <title>New Document</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  </head>
    <?php
   if ($gesendet)
   {
 
   $db = mysql_connect();

   $res = mysql_query("select * from mitarbeiter where login = '$loginc' and passwort = '$passwortc'");
$id = mysql_result($res, "id");
}
if ($id)
{
     
  echo "
 
  <frameset rows='15%,*,10%'>
  <frame src='oben.html' name='oben'>
  <frameset cols='15%,*,10%'>
  <frame src='links.html' name='links'>
  <frame src='mitte.html' name='mitte'>
  <frame src='rechts.html' name='rechts'>
  </frameset>
    <frame src='unten.html' name='unten'>
  </frameset>


    <noframes>
      <body>

      </body>
    </noframes>
  </frameset>
  ";
  }
 
  else
{
echo "
<html>
  <head>
  <title>login</title>
</head>
<body>
<form action = 'index.php' method = 'post'>
    <input name = 'loginc'> Login<p>
    <input name = 'passwortc'> Passwort<p>
    <input type = 'submit' name = 'gesendet'>
    <input type = 'reset'>
</form>
</body>
</html>
";
}
   
   
    ?>
 
</html>
Chaos06
 
Beiträge: 6
Registriert: 25.11.2004, 13:09

Beitragvon CoolCasimir am 25.11.2004, 17:50

Das ist das ganze Script? Wo verbindest Du Dich denn mit der Datenbank?
Code: Alles auswählen
mysql_connect("localhost","benutzername","passwort");
mysql_select_db("datenbankname");
CoolCasimir
Moderator
 
Beiträge: 2194
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg

Beitragvon Chaos06 am 25.11.2004, 18:33

Ah, tut mir leid. DAs war eine ältere Version. Hier die aktuelle:

(weitere Anmerkungen unten)

Code: Alles auswählen
<?php
   if ($gesendet)
   {
 
   $db = mysql_connect("localhost", "root", "");

   $sqlstring = "select * from mitarbeiter where login = '$loginc' and passwort = '$passwortc'";
   $res = mysql_db_query("qwert", $sqlstring, $db);

$id = mysql_result($res, "id");
}
if ($id)
{
     
  echo "
 
  <frameset rows='15%,*,10%'>
  <frame src='oben.html' name='oben'>
  <frameset cols='15%,*,10%'>
  <frame src='links.html' name='links'>
  <frame src='mitte.html' name='mitte'>
  <frame src='rechts.html' name='rechts'>
  </frameset>
    <frame src='unten.html' name='unten'>
  </frameset>


    <noframes>
      <body>

      </body>
    </noframes>
  </frameset>
  ";
  }
 
  else
{
echo "
<html>
  <head>
  <title>login</title>
</head>
<body>
<form action = 'ud49.php' method = 'post'>
    <input name = 'loginc'> Login<p>
    <input name = 'passwortc'> Passwort<p>
    <input type = 'submit' name = 'gesendet'>
    <input type = 'reset'>
</form>
</body>
</html>
";
}
   
   
    ?>
 
</html>



Ichhabe das Gefühl das der Fehler in dieser ZEile liegt:

Code: Alles auswählen
$sqlstring = "select * from mitarbeiter where login = '$loginc' and passwort = '$passwortc'";


Denn wenn ich statt

Code: Alles auswählen
select * from mitarbeiter where login = '$loginc' and passwort = '$passwortc'";


einfach nur

Code: Alles auswählen
select * from mitarbeiter


mache dann gibt es keine Fehlermeldung mehr, nur funktioniert dannnatürlich das Script auch nicht richtig.
Chaos06
 
Beiträge: 6
Registriert: 25.11.2004, 13:09

Beitragvon CoolCasimir am 25.11.2004, 19:09

Ich muss nochmal fragen, wo wählst Du die Datenbank aus???? Das Script weiß doch gar nicht wo es nach der Tabelle mitarbeiter suchen soll?!?
CoolCasimir
Moderator
 
Beiträge: 2194
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg

Beitragvon Chaos06 am 25.11.2004, 20:20

Doch klar, dort wähle ich sie aus:

Code: Alles auswählen
$res = mysql_db_query("qwert", $sqlstring, $db);


Die Datenbank heißt qwert
Chaos06
 
Beiträge: 6
Registriert: 25.11.2004, 13:09

Beitragvon CoolCasimir am 25.11.2004, 21:56

Ok, sorry. Ich war nicht ganz bei der Sache (Auf der Arbeit). Nun habe ich mir das mal genau angeschaut und auch das ganze Script betrachtet. Nun habe ich das mal so umgeschrieben wie ich es machen würde, allerdings habe ich es nicht getestet da mein Server momentan schrott ist. Teste doch mal ob es so funktioniert.
P.S. Geht bestimmt besser, ist mir nur spontan so in den Sinn gekommen.
Code: Alles auswählen
<?php
   if ($sender)
   {
       if ((!$passwortc) || (!$loginc))
       {
           echo "Alles muss ausgefüllt sein";
           unset($sender);
       }
   else
   {
   mysql_connect("localhost","root","");
   mysql_select_db("qwert");
   $sqlstring = "SELECT * FROM mitarbeiter WHERE login = '$loginc' AND passwort = '$passwortc';";
   $res = mysql_query($sqlstring)
   or die(": " . mysql_error());
   $id = mysql_fetch_row($res);

if ($id)
{
  echo "<frameset rows='15%,*,10%'>
  <frame src='oben.html' name='oben'>
  <frameset cols='15%,*,10%'>
  <frame src='links.html' name='links'>
  <frame src='mitte.html' name='mitte'>
  <frame src='rechts.html' name='rechts'>
  </frameset>
    <frame src='unten.html' name='unten'>
  </frameset>


    <noframes>
      <body>

      </body>
    </noframes>
  </frameset>
  ";
  }
  else
  {
      echo "Falsch!";
  }
}
}
if (!$sender)
{
echo "
<html>
  <head>
  <title>login</title>
</head>
<body>
<form action = 'ud49.php' method = 'post'>
   <input type='hidden' value='1' name='sender'>
    <input name='loginc' value='$loginc'>Login<p>
    <input name='passwortc' value='$passwortc'> Passwort<p>
    <input type = 'submit' name = 'gesendet'>
    <input type = 'reset'>
</form>
</body>
</html>
";
}
    ?>

</html>
CoolCasimir
Moderator
 
Beiträge: 2194
Registriert: 14.01.2004, 14:07
Wohnort: Hansestadt Hamburg

Beitragvon Chaos06 am 25.11.2004, 22:35

Hey super. Das klappt wunderbar.

Dank dir. Hast mir sehr geholfen.
Chaos06
 
Beiträge: 6
Registriert: 25.11.2004, 13:09



Ähnliche Themen


Zurück zu HTML, PHP & Co.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste