Absolute Noobie Frage

Overkill-dsl

Grünschnabel
Guten Tag, also ich bin totaler Anfänger und stehe vor einem Problem (dieses Problem werdet ihr bestimmt schon oft gehört haben). Ich habe also eine Seite gebaut, bestehend aus Formular(Eingabe von Name,Vorname,Geburtstag,Wohnort und Nickname), der Ausgabe wieviele Datensätze(bzw. User) registriert sind und der Ausgabe der Details. Mein Problem ist nun: Wenn ich die Daten über PHP eingebe, dann werden diese nicht an die MySQL-Datenbank weitergegeben. Wenn ich sie jedoch direkt über MySQL eingebe dann werden sie ausgegeben. Also muss der Fehler in der Übertragung stecken (die Ausgabe funktioniert 100%)

Damit ihr euch nen Bild machen könnt hier der Code:

<html>
<head>
<?php

if ($senden)
{
$conn = mysql_connect("localhost","","");
mysql_select_db("dc",$conn);
$sqlab ="insert into user";
$sqlab.="(name,vorname,geburtstag,wohnort,nickname) values";
$sqlab.="('$name','$vorname','$geburtstag','$wohnort','$nickname')";

mysql_query($sqlab);

$num = mysql_affected_rows($conn);
if ($num>0)
echo "Die Daten wurden uebernommen<p>";
else
{
echo "Die Daten wurden nicht uebernommen<p>";
}
mysql_close($conn);
}

?>
</head>
<body>
<font face ="verdana" size ="2">
<form action = "send.php" method = "post">

<input type="text" name ="name">Name<p>
<input type="text" name ="vorname">Vorname<p>
<input type="text" name ="geburtstag">Geburtstag<p>
<input type="text" name ="wohnort">Wohnort<p>
<input type="text" name ="nickname">Nickname<p>
<p>
<input type="submit" name ="senden">
</form>
<?php
$conn = mysql_connect("localhost","","");
mysql_select_db("dc",$conn);
$result = mysql_query("select * from user");
echo mysql_num_rows($result);
?>
<p>
<p>
<?php
$conn = mysql_connect("localhost","","");
$result = mysql_db_query ("dc", "select * from user");
$num = mysql_num_rows($result);

echo "<table border>";

echo "<tr><td>ID</td><td>Name</td><td>Vorname</td><td>Geburtstag</td><td>Wohnort</td><td>Nickname</td></tr>";


for ($i=0; $i<$num; $i++)
{
$na = mysql_result($result, $i, "name");
$vn = mysql_result($result, $i, "vorname");
$gt = mysql_result($result, $i, "geburtstag");
$wo = mysql_result($result, $i, "wohnort");
$nn = mysql_result($result, $i, "nickname");
$id = $i + 1;


echo "<tr><td>$id</td><td>$na</td><td>$vn</td><td>$gt</td><td>$wo</td><td>$nn</td></tr>";
}
echo "</table>";

mysql_close($conn);
?>
</font>
</body>
</html>

Wenn ihr mir irgendwie helfen koenntet wäre das echt super ! ich bedanke mich schon mal im Vorraus!!

PS: Habe schon etliche Leute gefragt und zig seiten durchsucht aber nichts hat geholfen.
 
Grundlegendes:

Mysql-Befehle sollte man GRUNDLEGEND
GROSS schreiben. Z. B.:

insert into user -> INSERT INTO user

// user als tabellenname wird natürlich unterschieden USER ist da nicht gleich user

select * from -> SELECT * FROM


Hmm... leider habe ich nicht viel Zeit um das script auseinanderzupflücken. Du wirst hier auch nicht viele finden, die Dir gleich die perfekte Lösung präsentieren. Die meisten reichen Dir die Hand zur Selbsthilfe.

In diesem Sinne, vielleicht liegt es ja schon an GROSS- und kleinschreibung ;)
 
Nujo immerhin etwas wieder dazu gelernt habe nun alle Befehle groß geschrieben aber etwas bewirkt hat es nicht!! Die Daten werden immer noch nicht übernommen!! Trotzdem danke!! Na dann, ich nehme weiterhin Vorschläge, Tips oder sonst was an !!
 
PHP:
<html> 
<head> 
<?php 

if ($senden) 
{ 
$conn = mysql_connect("localhost","",""); 
mysql_select_db("dc",$conn); 
$sqlab ="INSERT INTO user( name, vorname, geburtstag, wohnort, nickname) VALUES ( '$name', '$vorname', '$geburtstag', '$wohnort', '$nickname')"; 

mysql_query($sqlab); 

if ($sqlab) 
echo "Die Daten wurden uebernommen<p>"; 
else 
{ 
echo "Die Daten wurden nicht uebernommen<p>"; 
} 
mysql_close($conn); 
} 

?> 
</head> 
<body> 
<font face ="verdana" size ="2"> 
<form action = "send.php" method = "post"> 

<input type="text" name ="name">Name<p> 
<input type="text" name ="vorname">Vorname<p> 
<input type="text" name ="geburtstag">Geburtstag<p> 
<input type="text" name ="wohnort">Wohnort<p> 
<input type="text" name ="nickname">Nickname<p> 
<p> 
<input type="submit" name ="senden"> 
</form> 
<?php 
$conn = mysql_connect("localhost","",""); 
mysql_select_db("dc",$conn); 
$result = mysql_query("select * from user"); 
echo mysql_num_rows($result); 
?> 
<p> 
<p> 
<?php 
$conn = mysql_connect("localhost","",""); 
$result = mysql_db_query ("dc", "select * from user"); 
$num = mysql_num_rows($result); 

echo "<table border>"; 

echo "<tr><td>ID</td><td>Name</td><td>Vorname</td><td>Geburtstag</td><td>Wohnort</td><td>Nickname</td></tr>"; 


for ($i=0; $i<$num; $i++) 
{ 
$na = mysql_result($result, $i, "name"); 
$vn = mysql_result($result, $i, "vorname"); 
$gt = mysql_result($result, $i, "geburtstag"); 
$wo = mysql_result($result, $i, "wohnort"); 
$nn = mysql_result($result, $i, "nickname"); 
$id = $i + 1; 


echo "<tr><td>$id</td><td>$na</td><td>$vn</td><td>$gt</td><td>$wo</td><td>$nn</td></tr>"; 
} 
echo "</table>"; 

mysql_close($conn); 
?> 
</font> 
</body> 
</html>



versuch es mal so, der php checker bin ich auch nicht, aber vieleicht klappts :>
 
Guck mal ob vllt ein MySQL Error auftritt...

PHP:
<html> 
<head> 
<?php 

if ($senden) 
{ 
$conn = mysql_connect("localhost","",""); 
mysql_select_db("dc",$conn); 
$sqlab ="insert into user"; 
$sqlab.="(name,vorname,geburtstag,wohnort,nickname) values"; 
$sqlab.="('$name','$vorname','$geburtstag','$wohnort','$nickname')"; 

if(!mysql_query($sqlab)) {
  echo mysql_error();
} else { 

$num = mysql_affected_rows($conn); 
if ($num>0) 
echo "Die Daten wurden uebernommen<p>"; 
else 
{ 
echo "Die Daten wurden nicht uebernommen<p>"; 
} 
mysql_close($conn); 
} 
}
?> 
</head> 
<body> 
<font face ="verdana" size ="2"> 
<form action = "send.php" method = "post"> 

<input type="text" name ="name">Name<p> 
<input type="text" name ="vorname">Vorname<p> 
<input type="text" name ="geburtstag">Geburtstag<p> 
<input type="text" name ="wohnort">Wohnort<p> 
<input type="text" name ="nickname">Nickname<p> 
<p> 
<input type="submit" name ="senden"> 
</form> 
<?php 
$conn = mysql_connect("localhost","",""); 
mysql_select_db("dc",$conn); 
$result = mysql_query("select * from user"); 
echo mysql_num_rows($result); 
?> 
<p> 
<p> 
<?php 
$conn = mysql_connect("localhost","",""); 
$result = mysql_db_query ("dc", "select * from user"); 
$num = mysql_num_rows($result); 

echo "<table border>"; 

echo "<tr><td>ID</td><td>Name</td><td>Vorname</td><td>Geburtstag</td><td>Wohnort</td><td>Nickname</td></tr>"; 


for ($i=0; $i<$num; $i++) 
{ 
$na = mysql_result($result, $i, "name"); 
$vn = mysql_result($result, $i, "vorname"); 
$gt = mysql_result($result, $i, "geburtstag"); 
$wo = mysql_result($result, $i, "wohnort"); 
$nn = mysql_result($result, $i, "nickname"); 
$id = $i + 1; 


echo "<tr><td>$id</td><td>$na</td><td>$vn</td><td>$gt</td><td>$wo</td><td>$nn</td></tr>"; 
} 
echo "</table>"; 

mysql_close($conn); 
?> 
</font> 
</body> 
</html>
 
die datenbank connecten macht man nur einmal im php script und zwar am anfang

und ohne user wird das eh nix :-)

PHP:
$conn = mysql_connect("localhost","user","") or die("kein mysql server");
mysql_select_db("dc",$conn) or die ("keine datenbank");

und bei mysql_query macht man immer hintendran den hier:
or die(mysql_error());

das hilft ungemein weiter :-)
 
So ich habe nun unter Berücksichtigung aller posts, das script umgebaut, ABER nichts hat sich geändert !! Die Datensätze werden immernoch nicht übernommen und ich bekomme auch keine MySQL-Fehlermeldung oder die Nachricht dass die Daten übernommen worden sind oder auch nicht !!

Hier der neue Code:

<html>
<head>
<?php

IF ($senden)
{
$conn = MYSQL_CONNECT("localhost","nobody","test");
MYSQL_SELECT_DB("dc",$conn) OR DIE ("keine datenbank");
$sqlab ="INSERT INTO user";
$sqlab.="(name,vorname,geburtstag,wohnort,nickname) values";
$sqlab.="('$name','$vorname','$geburtstag','$wohnort','$nickname')";

MYSQL_QUERY($sqlab) OR DIE (MYSQL_ERROR());

$num = MYSQL_AFFECTED_ROWS($conn);
IF ($num>0)
echo "Die Daten wurden uebernommen<p>";
ELSE
{
echo "Die Daten wurden nicht uebernommen<p>";
}
MYSQL_CLOSE($conn);
}

?>
</head>
<body>
<font face ="verdana" size ="2">
<form action = "send.php" method = "get">

<input type="text" name ="name">Name<p>
<input type="text" name ="vorname">Vorname<p>
<input type="text" name ="geburtstag">Geburtstag<p>
<input type="text" name ="wohnort">Wohnort<p>
<input type="text" name ="nickname">Nickname<p>
<p>
<input type="submit" name ="senden">
</form>
<p>
<p>
<?php
$conn = MYSQL_CONNECT("localhost","nobody","test");
MYSQL_SELECT_DB("dc",$conn) OR DIE ("keine datenbank");
$result = MYSQL_QUERY("SELECT * FROM user") OR DIE(MYSQL_ERROR());
echo MYSQL_NUM_ROWS($result);


MYSQL_SELECT_DB("dc", $conn);
$result = MYSQL_QUERY("SELECT * FROM user") OR DIE (MYSQL_ERROR());
$num = MYSQL_NUM_ROWS($result);

echo "<table border>";

echo "<tr><td>ID</td><td>Name</td><td>Vorname</td><td>Geburtstag</td>";
echo "<td>Wohnort</td><td>Nickname</td></tr>";


FOR ($i=0; $i<$num; $i++)
{
$na = mysql_result($result, $i, "name");
$vn = mysql_result($result, $i, "vorname");
$gt = mysql_result($result, $i, "geburtstag");
$wo = mysql_result($result, $i, "wohnort");
$nn = mysql_result($result, $i, "nickname");
$id = $i + 1;


echo "<tr><td>$id</td><td>$na</td><td>$vn</td><td>$gt</td><td>$wo</td>";
echo "<td>$nn</td></tr>";
}
echo "</table>";

MYSQL_CLOSE($conn);
?>
</font>
</body>
</html>



Im übrigen hatte ich wohl nen user und nen pass drin, hab die absichtlich hier rausgenommen, hab sie nun aber drin gelassen!!
 
PHP:
<html>
<head>
</head> 
<body>
<?php

IF ($senden)
{
$conn = MYSQL_CONNECT("localhost","nobody","test");
MYSQL_SELECT_DB("dc",$conn) OR DIE ("keine datenbank");
$sqlab ="INSERT INTO user";
$sqlab.="(name,vorname,geburtstag,wohnort,nickname) values";
$sqlab.="('$name','$vorname','$geburtstag','$wohnort','$nickname')";

MYSQL_QUERY($sqlab) OR DIE (MYSQL_ERROR());

$num = MYSQL_AFFECTED_ROWS($conn);
IF ($num>0) {
echo "Die Daten wurden uebernommen<p>";
} ELSE
{
echo "Die Daten wurden nicht uebernommen<p>";
}
MYSQL_CLOSE($conn);


?>

1. eine ausgabe im headbereich wird nicht angezeigt
2. die 2. if abfrage war syntaxmässig falsch
 
und davon abgesehen ..

welche PHP Version benutzt du ?

Wenn du eine ältere als 4.2 benutzt
habe ich auf Anhieb keine Ahnung und
wenn es eine ältere ist dann weiß
ich zu 99% woran es liegt.

Jonathan
 
Zurück