• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Erster Test mit MySQL

Status
Für weitere Antworten geschlossen.

Furien

Mitglied
Hi,
Ich fange jetzt mit MySQL an und brauche eure Weisheit für mein erstes Projekt.
Ich habe drei Input-Felder und deren Inhalt Plus Datum und Zeit sollen in meine MySQL Tabelle eingetragen werden.
  • 1 Frage: Wie baue ich eine verbindung mit der Datenbank auf, so dass ich auf die Tabelle zu greifen kann?
  • 2 Frage: Wie werden mit klick auf den Absensen Button die Daten in meine Tabelle gesendet?
  • 3 Frage: Wie lese ich Daten meiner Tabelle nun so aus, dass in meiner PHP datei immer wieder eine neue Tabelle mit drei Zeilen generiert wird in denen der Inhalt meiner Tabelle steht?
Danke für Antworten im Voraus!

EDIT

Momentan sieht mein Formular so aus:

Code:
<form name="test">
Name: <input name="Name" size="20"><br />
Alter: <input name="Alter" size="2"><br />
Homepage: <input name="HP" size="50"><br />
E-Mail: <input name="Mail" size="50"><br />
<input type="submit" value="Abschicken">
</form>
 
Zuletzt bearbeitet:
Werbung:
1 Frage: Wie baue ich eine verbindung mit der Datenbank auf, so dass ich auf die Tabelle zu greifen kann?
In PHP so:
PHP: mysql_connect - Manual
PHP: mysql_select_db - Manual

2 Frage: Wie werden mit klick auf den Absensen Button die Daten in meine Tabelle gesendet?
Gesendet werden sie vom Browser automatisch an den Server und dort an ein verarbeitendes Script. Eine serverseitige Lösung muss also her, PHP bietet sich an.
Dazu gibts dann:
PHP: mysql_query - Manual

3 Frage: Wie lese ich Daten meiner Tabelle nun so aus, dass in meiner PHP datei immer wieder eine neue Tabelle mit drei Zeilen generiert wird in denen der Inhalt meiner Tabelle steht?
Wie oben über
PHP: mysql_query - Manual

Auf den Seiten von php.net sind immer wieder Beispiele dabei, so dass Du das eigentlich hinkriegen könntest, vorausgesetzt, PHP ist kein Buch mit 7 Siegeln für Dich.

Gute Nacht,
-Efchen
 
Danke Efchen.
Mein Formular sieht jetzt so aus:

Code:
<?php
$link = mysql_connect('localhost', 'animepictures@1', '***');
if (!$link) {
    die('keine Verbindung möglich: ' . mysql_error());
}
echo 'Verbindung erfolgreich';

// benutze Datenbank test
$db_selected = mysql_select_db('animepictures@1-test', $link);
if (!$db_selected) {
    die ('Kann test nicht benutzen : ' . mysql_error());
}

INSERT INTO `animepictures@1-test` `test` (
`id` ,
`name` ,
`date` ,
`hp` ,
`mail`
)
VALUES (
'name', 'datetime', 'hp', 'mail'
);
?>
<form name="test">
Name: <input name="name" size="20"><br />
Homepage: <input name="hp" size="50"><br />
E-Mail: <input name="mail" size="50"><br />
<input type="submit" value="Abschicken">
</form>
Was mache ich falsch?
 
Werbung:
Das Statement (INSERT INTO usw.) muss mit mysql_query() ausgeführt werden, siehe Antwort auf Frage 2.
 
was du im mm in die datenbank einfügst sind nur die daten:
name hp... also wenn du dir dan die datenbank anschaust dan steht da auch nur name ...

du musst erstma dein formular vervollständigen
sagen wir du nennst die datei eintragen.php

dan musst du schreiben:

PHP:
<form action="eintragen.php" method="POST">
Name: <input type="text" name="name">
// du musst noch einen namen angeben und der typ ist immer text oder password
</form>

dan im php bereich musst du variablen deffinieren die das dan annehmen
variablen muss man erst deffinieren man schreibt also:

PHP:
<?php
$variable = "variableninhalt";
?>
variable ist der variablenname kann also auch verändert werden jedoch muss ein $ davorstehen
der variableninhalt muss, sollange es text ist in "" stehn.
Hier müssen wir jedoch die eingaben aus dem formular eintragen
also schreiben wir dan:

PHP:
<?php
$name = $_POST['name'];
?>

$name is also der variablenname und mit $_POST holen wir uns den text aus dem eingabefeld wobei hier name auch hp oder sonst was sein könnte solange es ein eingabefeld gibt wo auch name="hp" existiert

dan musst du die variablen, die ja den wert haben den du ihnen zugewiesen hast haben, in die datenbank eintragen
also schreibst du:

PHP:
<?php
mysql_query("INSERT INTO datenbank (felder) VALUES ('$name', '$hp') ");
?>
ich denke du kannst mit der zeile erstmal etwas anfangen

im großen und ganzen müsste dein formular im vereinfachten so aussehen:

PHP:
<?php
$link = mysql_connect('localhost', 'animepictures@1', '***');
if (!$link) {
    die('keine Verbindung möglich: ' . mysql_error());
}
echo 'Verbindung erfolgreich';

// benutze Datenbank test
$db_selected = mysql_select_db('animepictures@1-test', $link);
if (!$db_selected) {
    die ('Kann test nicht benutzen : ' . mysql_error());
}

$name = $_POST['name']; //holen der variable aus dem Name: eingabefeld
$hp = $_POST['hp']; //hier holen wir die hp
$mail = $_POST['mail'];

mysql_query("
INSERT INTO `animepictures@1-test` `test` (
`id` ,
`name` ,
`date` ,
`hp` ,
`mail`
)
VALUES (
'$name', 'datetime', '$hp', '$mail'
) 
");
?>
<form name="test">
Name: <input name="text" name="name" size="20"><br />
Homepage: <input name="text" name="hp" size="50"><br />
E-Mail: <input name="text" name="mail" size="50"><br />
<input type="submit" value="Abschicken">
</form>
ich hoffe ich habe jez nichts übersehen
wenn du alles in einem script machst so wie hier dan solltest du vll bald mal, um eine fehlermeldung zu vermeiden den inhalt der variablen mit einer if anweisung überprüfen da das ja auch am anfang aufgerufen wird wenn du da mal näheres wissen willst schreib es nomal hier oder schreib mich privi an

sollte sonst noch jmd einen fehler gefunden haben bitte einfach verbessern

und ich hoffe ich konnte des einigermaßen verständlich erklären und vll auch jmd helfen
und wenn jmd fragt warum ich des so mach verdammt nochmal JA mir ist langweilig

mfg daschifahrer
 
Ich habe es wie beschrieben gemacht.
ich habe test.php und eintragen.php
aber wenn ich abschicke, steht nicht in der datenbank.
 
Werbung:
kann zwar leider nicht helfen aber ich poste hier auch mal. bin auch ein php anfänger. ich mache eig genau das selbe wie du.
kannst ja mal hier lesen:
http://www.html.de/datenbanken-z-b-...tabellenspalten-konfigurieren-phpmyadmin.html
mein formular geht....
aber mit zeit und datum speichern habe ich keine ahnung. da stehen nur nullen. wie geht das?

Bis jetzt habe ich das Datum und die Zeut versucht mit 'datetime' auszugeben.
Danke für den Link ;)
Mal ausprobieren..
 
Werbung:
mal eine frage.
meine einträge erscheinen genau anders herum als ich will. vom ordnen her?

der neuste erscheint immer unten. ich will aber dass der älteste unten ist und die neuen oben angefügt werden... wie stelle ich das ein?
 
dafür kannst du den Befehl ORDER benutzen

Wenn du nun irgendwo deine Zeit gespeichert hast, angenommen im Feld `time` kannst du hinten an deinen SELECT - Befehl noch folgendes anhängen
Code:
[...] ORDER BY `time` DESC
dabei kannst du DESC mit ASC austauschen (ASC ist standard und kann auch weggelassen werden).

ASC "Ascending":Aufsteigend (kleinstes oben, größtes unten)
DESC "Descending": Absteigend (größtes oben, kleinstes unten)

Du brauchst also DESC denn das größte Datum ist das neuste, welches oben stehen soll.
 
habe zeit und datum in einem feld vom typ DATETIME
im format YYYY-mm-dd hh:ii:ss.
ist das ein problem?
ich würde das so wie so gern umstellen in dd-mm-YYYY hh:ii:ss.
wie geht das? bin aus keinem turtorial schlau geworden.... :-(
 
Werbung:
Hi, ich benutze jetzt Luks Formular und das Datum wird nicht ausgegeben.
Warum?
IN der Tabelle sind die Spalten id, autor, text und zeitpunkt.

Form:

Code:
<? include ("header.php"); ?>
<h1>Kommentare zur Site</h1>
<?php
$verbindung = mysql_connect ("localhost",
"animepictures@1", "***")
or die ("Keine Verbindung möglich.
 Benutzername oder Passwort falsch!");

mysql_select_db("animepictures@1-test")
or die ("Ein Fehler ist aufgetreten");
?> </head><?php
  if ( isset( $_POST["autor"] ) && isset( $_POST["text"] ) && isset( $_POST["submit"] ))
  {
     $autor = $_POST["autor"];
     $text = $_POST["text"];
     $zeitpunkt = date("Y-m-d H:i:s");


     $eintrag = "INSERT INTO comment
         (autor, text, zeitpunkt)
         VALUES
         ('$autor', '$text', '$zeitpunkt')";
     $eintragen = mysql_query($eintrag);
   }
?> <fieldset> <legend>Schreibe einen Kommentar!</legend> <form method="post"> <input type="text" size="20" name="autor" value="Dein Name" maxlength="20"/><br><br> <textarea rows="5" cols="50" wrap="physical" name="text" maxlength="65000">Dein Kommentar</textarea><br><br> <input type="submit" name="submit" value="Absenden"/> </form> </fieldset> <br> <?php
$abfrage="SELECT autor, text FROM comment";
$ergebnis=mysql_query($abfrage);

echo "<h1>Bisher Eingetragene Kommentare:</h1>";
echo "<table>";
while($row=mysql_fetch_object($ergebnis))
{
echo "<tr><td>Autor: " . $row->autor . "</td><td>Date: " . $row->zeitpunkt . "</td></tr><tr><td>Kommentar: " . $row->text . "</td></tr>";
echo "<tr><td></td></tr>";
echo "<tr><td></td></tr>";
}
echo "</table>";
?>
<? include ("footer.php"); ?>

EDIT

funktioniert jetzt.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben