was mache ich falsch?

hallo zusammen,

was mach ich hier falsch, die daten werden einfach nicht in die datenbank eingetragen:

<form action=<? $PHP_SELF ?> method="post">

<table cols=4 rows=4 width=200 border=0 align=center>
<tr>
<td>Name:</td>
<td><input type="text" name="Name" ></td>
<td>E-Mail:</td>
<td><input type="text" name="Email" ></td>
</tr>
<tr>
<td>Titel:</td>
<td><input type="text" name="Titel" ></td>
<td>Homepage:</td>
<td><input type="text" name="Homepage" ></td>
</tr>
<tr>
<td><td colspan=4<p>Geben Sie hier ihren Text ein: </p>
<textarea name="Eingabe" rows=10 cols=50></textarea> </td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Abschicken"></td>
</tr>
</form>
<?
$zeit = date("h:i:s");
$datum = date("d. M. Y");
$query="INSERT INTO gb (Datum, Zeit, Homepage, Name, E-Mail, Beitrag, Titel) VALUES (\"$datum\", \"$zeit\", \"$Homepage\", \"$Name\", \"$Email\", \"$Eingabe\", \"$Titel\")";
mysql_query($query);

?>



danke im voraus
 
Du musst eine Verbindung zur Datenbqank aufbauen.

PHP:
$verbindung=mysql_connect("host", "user", "password");
mysql_select_db("datenbank", $verbindung);
um eine MySQLabfrage auszuführen:

PHP:
$query="SELECT * FROM bla WHERE blubb='laber'";
$ergebnis=mysql_query($query, $verbindung);
 
das ist mir schon klar

danke, aber das ist mir schon klar das ich das machen muss und ich habe es auch bereits gemacht. aber ich vermute eben das sich der fehler in diesem teil des scripts versteckt. die daten werden einfach nicht an die datenbank übermittelt. und das mit der abfrage schnalle ich nicht was du da meinst. ich meine ja ich will nur neue daten hinzufügen nicht alte überschreiben oder auslesen.

aber trotzdem danke
 
PHP:
mysql_query($query);
muss so aussehen:
PHP:
mysql_query($query, $verbindung);

oder wie auch deine verbindungs variable heist.

MfG
S
 
funktioniert immer noch nicht....

hier ist nochmal das ganz script vieleicht hilft das etwas weiter bei der problem lösung (hoffe ich jedenfals):

<?php

$link = mysql_connect("localhost", "root") or die ("Keine Verbindung zu MySQL");
$db = mysql_select_db("rittiner_p") or die ("Datenbank kann nicht ausgewählt werden");
?>
<html>
<head>
<title>Title here!</title>
</head>
<body>

<form action=<? $PHP_SELF ?> method="post">

<table cols=4 rows=4 width=200 border=0 align=center>
<tr>
<td>Name:</td>
<td><input type="text" name="Name" ></td>
<td>E-Mail:</td>
<td><input type="text" name="Email" ></td>
</tr>
<tr>
<td>Titel:</td>
<td><input type="text" name="Titel" ></td>
<td>Homepage:</td>
<td><input type="text" name="Homepage" ></td>
</tr>
<tr>
<td><td colspan=42<p>Geben Sie hier ihren Text ein: </p>
<textarea name="Eingabe" rows=10 cols=50></textarea> </td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Abschicken"></td>
</tr>
</form>
<?
$zeit = date("h:i:s");
$datum = date("d. M. Y");
$query="INSERT INTO gb (Datum, Zeit, Homepage, Name, E-Mail, Beitrag, Titel) VALUES (\"$datum\", \"$zeit\", \"$Homepage\", \"$Name\", \"$Email\", \"$Eingabe\", \"$Titel\")";
mysql_query($query);

?>



<?

$query = "SELECT * FROM gb ";
$result = mysql_query($query);
$num=mysql_num_rows($result);
for ($i=0; $i<$num; $i++)
{
$test = mysql_fetch_array($result);



$datumgb=$test['Datum'];
$zeitgb=$test['Zeit'];
$namegb=$test['Name'];
$homepagegb=$test['HomePage'];
$emailgb=$test['E-Mail'];
$kommentargb=$test['Kommentar'];
$beitraggb=$test['Beitrag'];
$titelgb=$test['Titel'];

print "<table border rules=cols >";
print "<colgroup>";
print "<col width=250>";
print " <col width=250>";
print " <col width=150> ";
print " <col width=100> " ;
print " </colgroup> ";
print"<tr> ";
print" <thead><td><b>Name:</b> $namegb </td> <td><b> E-Mail:</b> $emailgb <br></td> <td><b>Datum:</b> $datumgb </td><td> <b>Zeit:</b> $zeitgb <br> </td>";
print"</tr><tr> ";
print " <td><b>Titel:</b> $titelgb </td> <td><b>Homepage:</b> $homepagegb <br> </td><td></td><td></td> ";
print"</tr></thead> ";
print"<tr> ";
print " <tbody><th colspan=4>$beitraggb </th></tbody> ";
print"</tr><tr> ";
print "<tfoot><th colspan=4>$kommentargb </th></tfoot> ";
print"</tr>";
print "</table>";

}
?>
</body>
</html>

ich verstehe einfach nicht wieso das das nicht funktioniert..
 
PHP:
<?php 

$link = mysql_connect("localhost", "root") or die ("Keine Verbindung zu MySQL"); 
mysql_select_db("rittiner_p") or die ("Datenbank kann nicht ausgewählt werden");  // _nicht_ in eine Variable schreiben
?> 
<html> 
<head> 
<title>Title here!</title> 
</head> 
<body> 

<form action=<? $PHP_SELF ?> method="post"> 

<table cols=4 rows=4 width=200 border=0 align=center> 
<tr> 
<td>Name:</td> 
<td><input type="text" name="Name" ></td> 
<td>E-Mail:</td> 
<td><input type="text" name="Email" ></td> 
</tr> 
<tr> 
<td>Titel:</td> 
<td><input type="text" name="Titel" ></td> 
<td>Homepage:</td> 
<td><input type="text" name="Homepage" ></td> 
</tr> 
<tr> 
<td><td colspan=42<p>Geben Sie hier ihren Text ein: </p> 
<textarea name="Eingabe" rows=10 cols=50></textarea> </td> 
</tr> 
<tr> 
<td colspan="2" align="center"><input type="submit" value="Abschicken"></td> 
</tr> 
</form> 
<? 
$zeit = date("h:i:s"); 
$datum = date("d. M. Y"); 
$query="INSERT INTO gb (Datum, Zeit, Homepage, Name, E-Mail, Beitrag, Titel) VALUES (\"$datum\", \"$zeit\", \"$Homepage\", \"$Name\", \"$Email\", \"$Eingabe\", \"$Titel\")"; 
mysql_query($query, $link); // $link als 2. parameter

?>

genauso auch hier:
PHP:
<? 

$query = "SELECT * FROM gb "; 
$result = mysql_query($query, $link); //auch hier $link als 2. parameter
$num=mysql_num_rows($result); 
for ($i=0; $i<$num; $i++) 
{ 
$test = mysql_fetch_array($result); 



$datumgb=$test['Datum']; 
$zeitgb=$test['Zeit']; 
$namegb=$test['Name']; 
$homepagegb=$test['HomePage']; 
$emailgb=$test['E-Mail']; 
$kommentargb=$test['Kommentar']; 
$beitraggb=$test['Beitrag']; 
$titelgb=$test['Titel']; 

print "<table border rules=cols >"; 
print "<colgroup>"; 
print "<col width=250>"; 
print " <col width=250>"; 
print " <col width=150> "; 
print " <col width=100> " ; 
print " </colgroup> "; 
print"<tr> "; 
print" <thead><td><b>Name:</b> $namegb </td> <td><b> E-Mail:</b> $emailgb <br></td> <td><b>Datum:</b> $datumgb </td><td> <b>Zeit:</b> $zeitgb <br> </td>"; 
print"</tr><tr> "; 
print " <td><b>Titel:</b> $titelgb </td> <td><b>Homepage:</b> $homepagegb <br> </td><td></td><td></td> "; 
print"</tr></thead> "; 
print"<tr> "; 
print " <tbody><th colspan=4>$beitraggb </th></tbody> "; 
print"</tr><tr> "; 
print "<tfoot><th colspan=4>$kommentargb </th></tfoot> "; 
print"</tr>"; 
print "</table>"; 

} 
?>

abgesehen davon fehlt hier der 3. parameter passwort:
PHP:
$link = mysql_connect("localhost", "root", "") or die ("Keine Verbindung zu MySQL"); //muss glaub ich mit rein der parameter auch wenn es kein pw gibt (glaub ich !)

desweiteren sieht die syntax der funktion print so aus:
PHP:
print("das ist der text");

und hier:
PHP:
<form action=<? $PHP_SELF ?> method="post">
sollte so aussehen:
PHP:
<form action=<? echo $PHP_SELF; ?> method="post">


MfG
S
 
Noch ein paar Anmerkungen von meiner Seite:
  • Die Angabe des mySQL-Links bei mysql_query ist optional.
  • Bei mysql_connect sind alle Parameter optional. mysql_connect("localhost", "root", ""); ist äquivalent zu mysql_connect("localhost", "root");
  • print ist keine Funktion, sondern ein Konstrukt der Programmiersprache, die Klammern sind deshalb nicht nötig.
 
Original geschrieben von reima
Noch ein paar Anmerkungen von meiner Seite:
  • Die Angabe des mySQL-Links bei mysql_query ist optional.
  • Bei mysql_connect sind alle Parameter optional. mysql_connect("localhost", "root", ""); ist äquivalent zu mysql_connect("localhost", "root");
  • print ist keine Funktion, sondern ein Konstrukt der Programmiersprache, die Klammern sind deshalb nicht nötig.

Nur weil es nicht nötig ist,
heist dat nicht man muss es weg lassen.
Bin etwas penibel und ich mag einen sauberen programierstil,
der durch weglasserei und abkürzerei net unbedingt gewährt ist.
Besonders bei anfängern vertrete ich die Ansicht man sollte
ausführlich coden.
Lieber zu viel als zu wenig.
Der erfahrung nach trägt es bei anfängern zum Verständniss bei.

btw:
Im Gegensatz zu echo ist print eine richtige Funktion...
Von Jörg Krause aus "Grundlagen und Profiwissen - PHP4"

S
 
Zurück