Eingabeformular
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ahnung
auslese
betreff
break
code
dank
datum
eintragen
farbe
feld
hinweis
host
nachricht
post
problem
schleife
switch
text
tip
welt
-
Hallo,
ich möchte, ein Eingabeformuler auf einer Seite haben, die in einer MySQL DB gespeichert wird (nach timestamp geordnet). Quasi wie eine Newsbox (später soll die Option dazukommen, Einträge wieder zu entfernen). Ich habe schon ein wenig angefangen, jedoch bin ich mit meinem Wissen am Ende, da ich kaum Ahnung von PHP habe und jemanden, der mir es fertig-coden kann.
<? $host = "localhost"; $user = "root"; $pass = ""; $db = "startseite_ts"; $link = mysql_connect($host, $user, $pass); mysql_select_db($db, $link); $query = mysql_query("INSERT INTO startseite_ts (timestamp, betreff, farbe, groesse, nachricht) VALUES ('1275557125','hinweis','blau','22px','hallo welt')"); //Felder auslesen $betreff = $_REQUEST['betreff']; $farbe = $_REQUEST['farbe']; $groesse = $_REQUEST['groesse']; $nachricht = $_REQUEST['nachricht']; ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Betreff:<br /> <input type="radio" name="betreff" value="hinweis"> Hinweis<br /> <input type="radio" name="betreff" value="tipp"> Tipp<br /> <input type="radio" name="betreff" value="ankuendigung"> Ankündigung<br /> <br /><br /> Textfarbe:<br /><br /> <input type="radio" name="farbe" value="rot"> rot<br /> <input type="radio" name="farbe" value="blau"> blau<br /> <input type="radio" name="farbe" value="orange"> orange<br /> <input type="radio" name="farbe" value="gelb"> gelb<br /> <input type="radio" name="farbe" value="weiss"> weiß<br /> <input type="radio" name="farbe" value="gruen"> grün<br /><br /><br /> Schriftgröße:<br /><br /> <input type="radio" name="groesse" value="08px"> 08px<br /> <input type="radio" name="groesse" value="10px"> 10px<br /> <input type="radio" name="groesse" value="12px"> 12px<br /> <input type="radio" name="groesse" value="14px"> 14px<br /> <input type="radio" name="groesse" value="16px"> 16px<br /> <input type="radio" name="groesse" value="18px"> 18px<br /><br /><br /> Nachricht: <br /><br /> <textarea name="nachricht" cols="100" rows="10" value="<?php if (isset($nachricht)) {echo $nachricht;}?>"></textarea> <!--<ul>Unterstrichen</ul> <b>Fett</b>--> </textarea> <br /> <input type="submit" name="absenden" value="absenden" /> </form> <? mysql_close($link); ?>
Und hier der SQL Befehl, um die DB zu erstellen.
CREATE TABLE startseite_ts ( timestamp int(20) NOT NULL, betreff varchar(15), farbe varchar(8), groesse varchar(4), nachricht text(300), PRIMARY KEY (timestamp))
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Da ich keine Ahnung habe, wo dein Problem liegt, hab ich einfach mal geraten...
<?PHP $host = "localhost"; $user = "root"; $pass = ""; $db = "startseite_ts"; $link = mysql_connect($host, $user, $pass); mysql_select_db($db, $link); //Felder auslesen $timestamp = time(); $betreff = $_POST['betreff']; $farbe = $_POST['farbe']; $groesse = $_POST['groesse']; $nachricht = strip_tags($_POST['nachricht']); @mysql_query("INSERT INTO startseite_ts (timestamp, betreff, farbe, groesse, nachricht) VALUES ('".$timestamp."','".$betreff."','".$farbe."','".$groesse."','".$nachricht."')") or die("Fehler"); ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Betreff:<br /> <input type="radio" name="betreff" value="hinweis"> Hinweis<br /> <input type="radio" name="betreff" value="tipp"> Tipp<br /> <input type="radio" name="betreff" value="ankuendigung">Ankündigung<br /><br /><br /> Textfarbe:<br /><br /> <input type="radio" name="farbe" value="rot"> rot<br /> <input type="radio" name="farbe" value="blau"> blau<br /> <input type="radio" name="farbe" value="orange"> orange<br /> <input type="radio" name="farbe" value="gelb"> gelb<br /> <input type="radio" name="farbe" value="weiss"> weiß<br /> <input type="radio" name="farbe" value="gruen"> grün<br /><br /><br /> Schriftgröße:<br /><br /> <input type="radio" name="groesse" value="08px"> 08px<br /> <input type="radio" name="groesse" value="10px"> 10px<br /> <input type="radio" name="groesse" value="12px"> 12px<br /> <input type="radio" name="groesse" value="14px"> 14px<br /> <input type="radio" name="groesse" value="16px"> 16px<br /> <input type="radio" name="groesse" value="18px"> 18px<br /><br /><br /> Nachricht:<br /><br /> <textarea name="nachricht" cols="100" rows="10"><?php if (isset($nachricht)) {echo $nachricht;}?></textarea> <br /> <input type="submit" name="absenden" value="absenden" /> </form>
Im Übrigen hier mal eine "Alternative":
<? $host = "localhost"; $user = "root"; $pass = ""; $db = "startseite_ts"; $link = @mysql_connect($host, $user, $pass); @mysql_select_db($db, $link); //Felder auslesen $timestamp = time(); switch($_POST['betreff']) { case 'hinweis'; case 'tipp'; case 'ankuendigung'; $betreff = $_POST['betreff']; break; default; $betreff = ""; break; } switch($_POST['farbe']) { case 'rot'; case 'blau'; case 'orange'; case 'gelb'; case 'weiss'; case 'gruen'; $farbe = $_POST['farbe']; break; default; $farbe = ""; break; } switch($_POST['groesse']) { case '08px'; case '10px'; case '12px'; case '14px'; case '16px'; case '18px'; $groesse = $_POST['groesse']; break; default; $groesse = ""; break; } $nachricht = strip_tags($_POST['nachricht']); if(!empty($betreff) && !empty($farbe) && !empty($groesse)) { @mysql_query("INSERT INTO startseite_ts (timestamp, betreff, farbe, groesse, nachricht) VALUES ('".$timestamp."','".$betreff."','".$farbe."','".$groesse."','".$nachricht."')") or die("Fehler"); echo "OK"; } else { ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Betreff:<br /> <input type="radio" name="betreff" value="hinweis"> Hinweis<br /> <input type="radio" name="betreff" value="tipp"> Tipp<br /> <input type="radio" name="betreff" value="ankuendigung">Ankündigung<br /><br /><br /> Textfarbe:<br /><br /> <input type="radio" name="farbe" value="rot"> rot<br /> <input type="radio" name="farbe" value="blau"> blau<br /> <input type="radio" name="farbe" value="orange"> orange<br /> <input type="radio" name="farbe" value="gelb"> gelb<br /> <input type="radio" name="farbe" value="weiss"> weiß<br /> <input type="radio" name="farbe" value="gruen"> grün<br /><br /><br /> Schriftgröße:<br /><br /> <input type="radio" name="groesse" value="08px"> 08px<br /> <input type="radio" name="groesse" value="10px"> 10px<br /> <input type="radio" name="groesse" value="12px"> 12px<br /> <input type="radio" name="groesse" value="14px"> 14px<br /> <input type="radio" name="groesse" value="16px"> 16px<br /> <input type="radio" name="groesse" value="18px"> 18px<br /><br /><br /> Nachricht:<br /><br /> <textarea name="nachricht" cols="100" rows="10"><?php if (isset($nachricht)) {echo $nachricht;}?></textarea> <br /> <input type="submit" name="absenden" value="absenden" /> </form> <?PHP } ?>
Parralel dazu könntest du ggf. noch wie bei der Nachricht prüfen, ob einer der Felder ausgefüllt wurde (Größe, Farbe, Betreff) und die Auswahl auch noch selektieren. Möglichkeiten gibt es viele.
Beitrag zuletzt geändert: 6.6.2010 23:32:29 von fabo -
Danke!!!
Jetz bräuchte ich nurnoch, wie ich die Daten wieder auslesen kann.
$link = @mysql_connect($host, $user, $pass); @mysql_select_db($db, $link); $timestamp = "SELECT timestamp FROM startseite_ts"; $betreff = "SELECT betreff FROM startseite_ts"; $farbe = "SELECT farbe FROM startseite_ts"; $groesse = "SELECT groesse FROM startseite_ts"; $nachricht = "SELECT nachricht FROM startseite_ts"; ?> <?php /*?>$betreff = "Hinweis"; $farbe = "rot"; $groesse = "12px"; $nachricht = "Hallo, dies ist eine Testnachricht."; <?php */ //**************************************Hinweis******************************************** if ($betreff == "Hinweis" && $farbe == "rot" && $groesse == "12px") {echo "<div class='rot_12'>$betreff<br /><br />$nachricht</div>";}
-
show-teamspeak schrieb:
Jetz bräuchte ich nurnoch, wie ich die Daten wieder auslesen kann.
<?php //Auslesen $werte = mysql_query("SELECT timestamp, betreff, farbe, groesse, nachricht FROM startseite_ts ORDER BY timestamp DESC"); //DESC = Absteigend (9...0) //Ausgeben while($erg = mysql_fetch_array($werte)){ echo "timestamp: ".$erg[0].", betreff: ".$erg[1].", farbe: ".$erg[2].", groesse: ".$erg[3].", nachricht: ".$erg[4]; } ?>
-
Danke, aber ich glaube, das passt mit meiner if-schleife nicht zusammen
if ($betreff == "Hinweis" && $farbe == "rot" && $groesse == "12px") {echo "<div class='rot_12'>$betreff<br /><br />$nachricht</div>";}
Ich brauche für $betreff $farbe $groesse und $nachricht jeweils den jeweiligen Inhalt -
der inhalt ist in $erg als array gespeichert, geordnet nach der auflistung in der mysql_query funktion ;)
timestamp ist also $erg[0]
betreff = $erg[1]
usw...
-
if ($erg[1] == "Hinweis" && $erg[2] == "rot" && $erg[3] == "20px") {echo "<div class='rot_20'>$erg[4]</div>";}
So sieht jetzt mein Code aus, aber es wird nichts ausgegeben...
(dein Echo gibts aus: timestamp: 1275913068, betreff: Hinweis, farbe: rot, groesse: 20px, nachricht: dsfjmsgflköngbödlbkndtimestamp: 1275557125, betreff: Hinweis, farbe: blau, groesse: 20px, nachricht: hallo welt ) -
dein if is auch in der while schleife platziert?
probiers mal so:
while($erg = mysql_fetch_array($werte)){ if ($erg[1] == "Hinweis" && $erg[2] == "rot" && $erg[3] == "20px"){ echo '<div class="rot_20">'.$erg[4].'</div>'; } }
-
Danke, funktioniert alles, hatte Probleme mit " und ' .
Könntest du mir noch sagen, wir ich Zeichen wie <br /> in die DB eintragen kann? DB=utf8_general_ci, Umlaute funktionieren, jedoch muss ich warscheinlich <br /> ISO... in UTF8 konvertieren, und beim auslesen erneut konvertieren? -
Einfach Zeilenumbrüche (also Enter^^) eintragen und mit
umwandeln.$text=nl2br($text);
Das würde aus:
"Hallo Welt
und tschüss ..."
folgendes machen:
"Hallo Welt<br /><br />und tschüss..."
Beitrag zuletzt geändert: 13.6.2010 13:11:34 von tropa-graciosa -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage