YourWBB


yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » Problem beim anlegen von einem Datensatz » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 3.831 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Zum Ende der Seite springen Problem beim anlegen von einem Datensatz
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Pilleslife
Mitglied


images/avatars/avatar-5378.jpg

Dabei seit: 22.04.06
Beiträge: 446
Forenversion: 2.3; 2.1

 Problem beim anlegen von einem Datensatz Antworten Zitieren Editieren Melden       UP

Hallo,

ich habe ein PHP MySQL Problem. Und zwar legt folgendes Script nicht, wie eigentlich gedacht einen neuen Eintrag in der Tabelle an.

php:
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:
<?php 
include ("includes/config.inc.php");

// Aufbau der Datenbankverbindung 
$connectionid  mysql_connect ($mysql_server$mysql_benutzer$mysql_pw); 
if (!mysql_select_db ($mysql_db$connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

//Benutzerdaten bereitstellen
$value["Nickname"]=$_POST["Name"];
$value["Kennwort"]=$_POST["pw"];
$value["eMail"]=$_POST["email"];
// Daten eintragen 
  // SQL-Anweisung erstellen 
  $sql "INSERT INTO ".
    "benutzerdaten (Nickname, Kennwort, e-Mail) ".
  "VALUES ('".$value["Nickname"]."', '".
                       md5 ($value["Kennwort"])."', '".
                       $value["eMail"]."')"; 
  mysql_query ($sql); 
  $num mysql_affected_rows();
  if ($num>0)
  { 
    echo "Benutzer erfolgreich angelegt."; 
  } 
  else
  {
      echo"Fehler. Benutzer wurde nicht angelget.";
    }
?> 


Als Antwort bekomme ich "Benutzer erfolgreich angelegt.".

Zum test hab ich mir auch mal die Variablen, bzw. Arrays $value["Nickname"], $_POST["Name"], $value["Kennwort"], $_POST["pw"],
$value["eMail"], $_POST["email"]
ausgeben lassen. Der Wert ist in Ordnung nur werden die Daten nicht in die DB geschrieben. Woran liegt das?

Danke im Vorraus

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Pilleslife: 31.07.07 15:34.

31.07.07 15:33 Pilleslife ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Pilleslife in deine Kontaktliste ein MSN Passport-Profil von Pilleslife anzeigen
Winbug Winbug ist männlich
Mitglied


images/avatars/avatar-5636.gif

Dabei seit: 17.01.04
Beiträge: 194
Fähigkeiten: WBB3 Anfänger; WBB2 Profi; WBB Lite 1 Anfänger
Herkunft: Copperas Cove Texas USA
Forenversion: 3.0; 2.3

Antworten Zitieren Editieren Melden       UP

zwischen INSERT und VALUE stimmt email nicht ueberein. Ueberpruefe wie die spalte in der tabelle heist und passe es dementsprechend an.
31.07.07 16:02 Winbug ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Winbug in deine Kontaktliste ein
Dizzy.w3 Dizzy.w3 ist männlich
Brain Damage


images/avatars/avatar-5617.jpg

Dabei seit: 18.07.07
Beiträge: 1.431
Herkunft: Österreich
Forenversion: 3.0

Antworten Zitieren Editieren Melden       UP

Hi Pilleslife,

anfänglich möchte ich sagen, dass immer ein MySQL_Error
php:
1:
mysql_error()

eingebaut werden sollte, wenn man mit MySQL arbeitet.

Wenn du die Ausgabe »Benutzer erfolgreich angelegt« beokmmst, müssten auch Zeilen eingetragen werden, denn
php:
1:
mysql_affected_rows()


liefert einen größeren Wert als 0 zurück.

Sofern die Tabelle existiert und die Felder wirklich

  • Nickname
  • Kennwort
  • e-Mail


heißen.

Müsste es funktionieren.

Ich bin mir bloß nicht sicher, ob man den Absatz so schreiben kann
php:
1:
2:
3:
4:
if (!mysql_select_db ($mysql_db$connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
}


Ich hab's eben kurz umgeschrieben, sollte nun funktionieren.

php:
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:
<?php

include ("includes/config.inc.php");

// Aufbau der Datenbankverbindung 
$connectionid  mysql_connect($mysql_server$mysql_benutzer$mysql_pw);
echo mysql_errno() . ": " mysql_error(). "\n";

if (!mysql_select_db($mysql_db$connectionid)) 
{
  die ("Keine Verbindung zur Datenbank"); 
} 

//Benutzerdaten bereitstellen
$nickname $_POST["Name"];
$kennwort $_POST["pw"];
$email $_POST["email"];
// Daten eintragen 
      // SQL-Anweisung erstellen 
    $sql "insert into benutzerdaten (Nickname, Kennwort, e-Mail) values('" $nickname "','" md5($kennwort) . "','" $email "')";
  mysql_query ($sql); 
  $num mysql_affected_rows();
  if ($num>0)
  { 
    echo "Benutzer erfolgreich angelegt."; 
  } 
  else
  {
      echo"Fehler. Benutzer wurde nicht angelget.";
  }
?>


Gruß
Dizzy

__________________
Gruß Dizzy

the rest is silence

Dieser Beitrag wurde 6 mal editiert, zum letzten Mal von Dizzy.w3: 31.07.07 16:33.

31.07.07 16:16 Dizzy.w3 ist offline E-Mail Finden Als Freund hinzufügen Füge Dizzy.w3 in deine Kontaktliste ein MSN Passport-Profil von Dizzy.w3 anzeigen
Pilleslife
Mitglied


images/avatars/avatar-5378.jpg

Dabei seit: 22.04.06
Beiträge: 446
Forenversion: 2.3; 2.1

Themenstarter Thema begonnen von Pilleslife
Antworten Zitieren Editieren Melden       UP

Erst einmal danke für eure Beiträge. Die Spaltennamen sind richtig und die Tablle "benutzerdaten" existiert. Jetzt bekomme ich aber folgende Fehlermeldung: "0: Fehler. Benutzer wurde nicht angelget."

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Pilleslife: 31.07.07 16:33.

31.07.07 16:26 Pilleslife ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Pilleslife in deine Kontaktliste ein MSN Passport-Profil von Pilleslife anzeigen
Dizzy.w3 Dizzy.w3 ist männlich
Brain Damage


images/avatars/avatar-5617.jpg

Dabei seit: 18.07.07
Beiträge: 1.431
Herkunft: Österreich
Forenversion: 3.0

Antworten Zitieren Editieren Melden       UP

Hi,

hab meinen obrigen Beitrag eben bearbeitet.

Gruß
Dizzy

Edit: Nimm dir nochmal den letzten PHP-Absatz.

__________________
Gruß Dizzy

the rest is silence

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Dizzy.w3: 31.07.07 16:36.

31.07.07 16:35 Dizzy.w3 ist offline E-Mail Finden Als Freund hinzufügen Füge Dizzy.w3 in deine Kontaktliste ein MSN Passport-Profil von Dizzy.w3 anzeigen
Pilleslife
Mitglied


images/avatars/avatar-5378.jpg

Dabei seit: 22.04.06
Beiträge: 446
Forenversion: 2.3; 2.1

Themenstarter Thema begonnen von Pilleslife
Antworten Zitieren Editieren Melden       UP

Schade. Geht immer noch nicht. Immer noch die Meldung: "0: Fehler. Benutzer wurde nicht angelget."

EDIT: So es funktioniert jetzt. Danke für eure Hilfe großes Grinsen

Gibt es noch eine Möglichkeit zu überprüfen, ob der Benutzername schon existiert? Ich in das Script noch etwas erweitert:
php:
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:
45:
46:
<?php

include ("includes/config.inc.php");

// Aufbau der Datenbankverbindung 
$connectionid  mysql_connect($mysql_server$mysql_benutzer$mysql_pw);
echo mysql_errno() . ": " mysql_error(). "\n";

if (!mysql_select_db($mysql_db$connectionid)) 
{
  die ("Keine Verbindung zur Datenbank"); 
} 

//Benutzerdaten bereitstellen
$nickname $_POST["Name"];
$kennwort $_POST["pw"];
$email $_POST["email"];

//Prüfen ob Benutzername bereits vergeben ist
$sql1="SELECT `Nickname` FROM `benutzerdaten` WHERE `Nickname` LIKE \ '".$nickname."' LIMIT 0, 30 '";
$res=mysql_query ($sql1); 
  $num mysql_num_rows($res);
  if ($num>0)
  { 
    echo "Der Benutzername existiert bereits.\n";
    echo "Bitte wählen Sie einen anderen Nicknamen.";
  echo "<a href='index.php?link=register'>Zurück</a>"; 
  exit;
  } 
  
// Daten eintragen 
      // SQL-Anweisung erstellen 
    $sql "insert into benutzerdaten (Nickname, Kennwort, eMail) values('" $nickname "','" md5($kennwort) . "','" $email "')";
  mysql_query ($sql); 
  $num mysql_affected_rows();
  if ($num>0)
  { 
    echo "Benutzer erfolgreich angelegt.";
    echo "Sie können sich nun mit ihren Benutzerdaten einloggen.";
  echo "<a href='index.php'>Weiter</a>"; 
  } 
  else
  {
      echo"Fehler. Benutzer wurde nicht angelget.";
  }
?>


Leider bekomme ich aber folgende Fehlermeldung: "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/vhosts/mobileboard24.de/subdomains/pupilwar/httpdocs/register2.php
on line 22"

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Pilleslife: 31.07.07 17:45.

31.07.07 16:47 Pilleslife ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Pilleslife in deine Kontaktliste ein MSN Passport-Profil von Pilleslife anzeigen
Dizzy.w3 Dizzy.w3 ist männlich
Brain Damage


images/avatars/avatar-5617.jpg

Dabei seit: 18.07.07
Beiträge: 1.431
Herkunft: Österreich
Forenversion: 3.0

Antworten Zitieren Editieren Melden       UP

Woran lag's?

__________________
Gruß Dizzy

the rest is silence

31.07.07 17:43 Dizzy.w3 ist offline E-Mail Finden Als Freund hinzufügen Füge Dizzy.w3 in deine Kontaktliste ein MSN Passport-Profil von Dizzy.w3 anzeigen
Pilleslife
Mitglied


images/avatars/avatar-5378.jpg

Dabei seit: 22.04.06
Beiträge: 446
Forenversion: 2.3; 2.1

Themenstarter Thema begonnen von Pilleslife
Antworten Zitieren Editieren Melden       UP

Lag daran, dass ich in der Tabelle noch die Spalten Vor und Nachname hatte und beide auf "not null". Jetzt habe ich aber noch ein anderes kleines Problem (Beitrag obendrüber).

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Pilleslife: 31.07.07 17:47.

31.07.07 17:46 Pilleslife ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Pilleslife in deine Kontaktliste ein MSN Passport-Profil von Pilleslife anzeigen
HForum HForum ist männlich
Mitglied


images/avatars/avatar-3849.gif

Dabei seit: 28.01.05
Beiträge: 361
Herkunft: Schweiz - St. Gallen
Forenversion: Lite 1.0

Antworten Zitieren Editieren Melden       UP

Hoi,

php:
1:
$sql1="SELECT `Nickname` FROM `benutzerdaten` WHERE `Nickname` LIKE \ '".$nickname."' LIMIT 0, 30 '";


Für was ist da der Backslash? Hab ich eine Funktion verschwitzt? Willst du was escapen? Mach den mal weg und versuchs nochmal großes Grinsen .

Gruss

__________________
(\ /)
( . .)
C('')('')
01.08.07 11:19 HForum ist offline E-Mail WWW Finden Als Freund hinzufügen MSN Passport-Profil von HForum anzeigen
Pilleslife
Mitglied


images/avatars/avatar-5378.jpg

Dabei seit: 22.04.06
Beiträge: 446
Forenversion: 2.3; 2.1

Themenstarter Thema begonnen von Pilleslife
Antworten Zitieren Editieren Melden       UP

Der Backslash komm daher, da ich die Funktion aus PHPmyAdmin gereniet habe. Aber auch ohne Backslash geht es nicht. Immer noch folgende Fehlermeldung: "0:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/vhosts/mobileboard24.de/subdomains/pupilwar/httpdocs/register2.php
on line 22
Benutzer erfolgreich angelegt.Sie k&#65533;nnen sich nun mit ihren Benutzerdaten einloggen.Weiter"
01.08.07 12:09 Pilleslife ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Pilleslife in deine Kontaktliste ein MSN Passport-Profil von Pilleslife anzeigen
Maniac_81 Maniac_81 ist männlich
PHP Profi


images/avatars/avatar-5230.gif

Dabei seit: 27.06.06
Beiträge: 2.087
Fähigkeiten: WBB3 Anfänger; WBB2 Profi
Herkunft: localhost/
Forenversion: 2.3; Lite 2.0

Antworten Zitieren Editieren Melden       UP

php:
1:
2:
//Prüfen ob Benutzername bereits vergeben ist
$sql1="SELECT `Nickname` FROM `benutzerdaten` WHERE `Nickname` LIKE '".$nickname."' LIMIT 0, 30 ";


am ende dieser zeile war ein ' zuviel oder eins zuwenig.nach LIMIT 0, 30 und vor dem " ist in deinem ein alleingelassenes '

__________________
zufrieden mit meinem Support? dann hier bitte bewerten!

Sie haben 3 gelbe Bananen gewählt!

ÄPFEL! 3!!!

01.08.07 12:35 Maniac_81 ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Maniac_81 in deine Kontaktliste ein MSN Passport-Profil von Maniac_81 anzeigen
Pilleslife
Mitglied


images/avatars/avatar-5378.jpg

Dabei seit: 22.04.06
Beiträge: 446
Forenversion: 2.3; 2.1

Themenstarter Thema begonnen von Pilleslife
Antworten Zitieren Editieren Melden       UP

Danke das war der Fehler. Was so ein kleines "Hochkomma" ausmacht großes Grinsen
01.08.07 13:00 Pilleslife ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Pilleslife in deine Kontaktliste ein MSN Passport-Profil von Pilleslife anzeigen
Maniac_81 Maniac_81 ist männlich
PHP Profi


images/avatars/avatar-5230.gif

Dabei seit: 27.06.06
Beiträge: 2.087
Fähigkeiten: WBB3 Anfänger; WBB2 Profi
Herkunft: localhost/
Forenversion: 2.3; Lite 2.0

Antworten Zitieren Editieren Melden       UP

jepp, das ist das A und O bei PHP & MySQL. mann schaut 5 mal drüber über das script und den fehler merkt man nicht....

__________________
zufrieden mit meinem Support? dann hier bitte bewerten!

Sie haben 3 gelbe Bananen gewählt!

ÄPFEL! 3!!!

01.08.07 13:19 Maniac_81 ist offline E-Mail WWW Finden Als Freund hinzufügen Füge Maniac_81 in deine Kontaktliste ein MSN Passport-Profil von Maniac_81 anzeigen
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » Problem beim anlegen von einem Datensatz