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

MySQL-Datenbank - Tabellenspalten konfigurieren (PHPMyAdmin)

Status
Für weitere Antworten geschlossen.

Luk.Online

Neues Mitglied
Hallo, ich habe einen MySQL-Server mit PHPMyAdmin.
Ich habe ein Formular in html erstellt, das als Kommentarfeld für Videos dient.
Es sieht ungefähr so aus:

HTML:
<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="2000">Dein Kommentar</textarea><br><br>
        <input type="submit" name="submit" value="Absenden"/>
   </form>
</fieldset>
und es ist mit css formatiert.

Ich möchte, dass beim absenden "autor" und "text" in die tabelle übernommen werden.
Außerdem sollen noch Zeit und Datum gespeichert werden und eine videoid.(habe mehrere videos und möchte dann bei der ausgabe der kommentare WHERE videoid "1" verwenden.
es muss also auch jedes einzelne video eine id haben.
dann habe ich noch ein normales id feld in der datenbank als primärschlüssel.

Jetzt meine endgültige Frage...
Ich habe die Spalten: id, videoid, autor, text, date, time.
Wie muss ich die einzelnen Spalten formatieren?
Habe in PHPMyAdmin folgende Werte: Typ, Kollation, Attribute, Null, Standard, Extra, Aktion.

Wer kann mir helfen???
Vielen Dank, Lukas.
 
Probiers mal so:
ID: Typ: Int, Länge: 11, Extras: auto_increment, Primary Key
videoid: Typ: Int, Länge: 11
autor: Typ: Varchar, Länge: 255
text: Typ: Text [ermöglicht rund 65000 Zeichen, schreib bei Länge ne Zahl hin, die dir gefällt]
date: Typ: Datetime
time: entfällt, bei Datetime wird beides gespeichert. Auslesen eignet sich am besten mit explode()
 
hey! danke.
ich möchte jetzt die einträge wieder ausgeben, die ins formular eingetragen und in der datenbank gespeichert wurden.
die verbindung zur datenbank habe ich hergestellt...
PHP:
<?php
$verbindung = mysql_connect ("localhost",
"lukonline", "XXX")
or die ("keine Verbindung möglich.
 Benutzername oder Passwort sind falsch");

mysql_select_db("lukonline")
or die ("Die Datenbank existiert nicht.");
?>

ausgeben möchte ich das in einer tabelle.
HTML:
<table>
    <tr> 
        <td>
        <?php
        $abfrage = "SELECT autor FROM video";
        $ergebnis = mysql_query($abfrage);
        while($row = mysql_fetch_object($ergebnis))
           {
          echo "$row->autor";
           }
        ?>
        </td>
    </tr>
    <tr> 
        <td>
        <?php
        $abfrage = "SELECT text FROM video";
        $ergebnis = mysql_query($abfrage);
        while($row = mysql_fetch_object($ergebnis))
          {
          echo "$row->text";
          }
        ?>
        </td>
    </tr>
</table>
wie mache ich das, dass sobald ein neuer eintrag in der DB ist auch eine neue tabelle im html dokument angelegt wird?

danke schonmal für eure antworten
 
Dazu musst du die Tabelle dynamisch ausgeben. Ungefähr so müsste dann der Code aussehen:

PHP:
$abfrage="SELECT autor, text FROM video";
$ergebnis=mysql_query($abfrage);

echo "<table>";
while($row=mysql_fetch_object($ergebnis))
{
echo "<tr><td>" . $row->autor . "</td><td>" . $row->text . "</td></tr>";
}
echo "</table>";
 
Hey, dankeschön!
Es funkitioniert... ;Jump

aber ganz fertig bin ich noch nicht..........
Code:
<?php 
  if ( isset( $_POST["url"] ) && isset( $_POST["titel"] ) && isset( $_POST["submit"] )) 
  { 
     $autor = $_POST["autor"]; 
     $text = $_POST["text"]; 
  } 
$eintrag = "INSERT INTO video 
(autor, text) 
VALUES 
('$autor', '$text')"; 
 
$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="2000">Dein Kommentar</textarea><br><br> 
            <input type="submit" name="submit" value="Absenden"/> 
     </form> 
</fieldset>
das formular wird absgeschickt, sobald man die seite läd.
wo ist der fehler in diesem code?
 
Du wirst immer Leereinträge fabrizieren, nehme ich mal an. Das liegt an der geschweiften Klammer, die die if-Bedingung einschließt. Die geschweifte Klammer wird zu früh geschlossen. In Deinem Fall müsste sie vor dem PHP-Ende-Tag geschlossen werden

Gruß thuemmy
 
PHP:
<?php 
  if ( isset( $_POST["url"] ) && isset( $_POST["titel"] ) && isset( $_POST["submit"] )) 
  { 
     $autor = $_POST["autor"]; 
     $text = $_POST["text"]; 

$eintrag = "INSERT INTO video 
(autor, text) 
VALUES 
('$autor', '$text')";
   }
$eintragen = mysql_query($eintrag); 
?>
wie meinst du das?? so? das geht nicht...
kenne mich leider mir php nicht aus aber ich würde mal vermuten, dass etwas an der if zeile nicht stimmt... muss da nicht nur was von submit stehen?
 
PHP:
   <?php 
  if ( isset( $_POST["url"] ) && isset( $_POST["titel"] ) && isset( $_POST["submit"] )) 
  { 
     $autor = $_POST["autor"]; 
     $text = $_POST["text"]; 

     $eintrag = "INSERT INTO video 
         (autor, text) 
         VALUES 
         ('$autor', '$text')";
     $eintragen = mysql_query($eintrag); 
   }   // hier muss die geschweifte Klammer geschlossen werden
?>
Die if-Bedingung ist richtig, Du fragst dort ja auch die Variable $_POST['submit'] ab.

Gruß thuemmy
 
juhu! es geht!
danke.
aber mal noch eine frage...
die spalte time wird bei mir weder mit zeit noch mit datum gefüllt....
wie stelle ich das ein?
 
time? Sehe ich nirgendwo im Code.

Bei Datum musst Du beachten, dass die Datenbank es im Format JJJJ-MM-TT haben will und wenn Du TT.MM.JJJJ schickst, das wahrscheinlich nicht akzeptiert und somit leer reingeschrieben wird.
 
time? Sehe ich nirgendwo im Code.

Bei Datum musst Du beachten, dass die Datenbank es im Format JJJJ-MM-TT haben will und wenn Du TT.MM.JJJJ schickst, das wahrscheinlich nicht akzeptiert und somit leer reingeschrieben wird.

ja habe ich auch noch nicht eingefügt... weiß nicht so recht wie...
habe 0 php ahnung.
man kann das doch aber iwie mit dateformat oder so formatieren???
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben