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

Newssystem mySQL Code

Witschi262

Blogger
Hallo :)

Da ich eigentlich mit mySQL wenig am Hut habe, aber ich für ein (einfaches) Newssystem mySQL nunmal brauche (lege wenig Wert auf Textdateien), muss ich den Kampf aufnehmen.

Ich habe mir mal mit PHP folgenden Code gebastelt:
PHP:
<?php
$connection = mysql_pconnect("localhost","Kica","**********");
mysql_select_db("Kica");

$titel = $_POST['titel'];
$news = $_POST['news'];

mysql_query("INSERT INTO news (title,news) VALUES ('$title', '$news')");
?>

Nun brauche ich die entsprechende mySQL Tabelle (das Formular ist in einer anderen Datei).

Ich habe keinen Schimmer was ich da jetzt alles einstellen muss.
Bauche zwei Spalten:
Title (für die Überschrift)
news (für den Newstext)

Kann mir jemand ein paar "stichworte" geben, und mir ein bissechen helfen?
 
Hallo,

einige Webhoster bieten PHP-MySQL-Verwaltungsprogramme an, mit welchen du einfach und mit wenigen Klicks Tabellen anlegen kannst. Bsp. phpmyadmin

ansonsten nutze folgenden MySQL-Code um via PHP eine Tabelle anzulegen:
Code:
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR( 50 ) NOT NULL ,
`news` TEXT NOT NULL
) ENGINE = MYISAM ;
Tabellenname ist news
Ich habe noch eine Spalte hinzugefügt, id, sie ist Primary Key und besitzt ein auto_increment. Mit ihrer Hilfe kannst du später eindeutig auf News zugreifen.
Die Spalte title kann 50 Zeichen lang sein (Typ: varchar)
news kann nahezu unendlich viele Zeichen haben (Typ: text)

P.S.
Deine INSERT Abfrage muss mit der Spalte id so lauten:
Code:
mysql_query("INSERT INTO news (id, title,news) VALUES (NULL, '".mysql_real_escape_string($title)."', '".mysql_real_escape_string($news)."')");
(Habe noch die Funktion mysql_real_escape_string() eingebaut, damit du vor SQL-Injection sicher bist.)

Gruß
 
Diese "Hilfe" von den Webhostern habe ich ja genutzt, nur war mein Problem, dass ich nicht weiß, was ein Tabbelentyp ist usw.

Danke, werde es ausprobieren ;)
 
Kurze Frage:
Ich habe keine Zeit mehr um es auszutesten:
Wenn ich nun alle Beiträge veröffentlichen will, wird dann der neueste Beitrag oben angezeigt?
Wenn nicht, kann ich mittels ID das ganze Regeln?

Zweite Frage, (gehört zwar in PHP aber wenn hier shcon ein Thread ist ;P)
Eine Blätterfunktion. Wenn mehr als 3 beiträge sind, soll eine Blätterfunktion da sein.

Gedacht habe ich mir das so:

PHP:
if ($newsall > "3")
{
Mit Blätterfunktionen habe ich keine Erfahrung gemacht, morgen schau ich mal bei Google, vllt. hat ja jmd. Lust mir zu helfen.
Auch bei der $GET Variable werde ich wohl Hilfe in Anspruch nehmen müssen^^
 
select * from tabelle limit 0,3
zeigt die ersten drei Einträge aus der Datenbank an.

select * from tabelle limit 4,3
überspringt die vier ersten Einträge und zeigt Eintrag 5, 6 und 7 an.
 
Da ich momentan wenig Zeit habe, habe ich bei Google folgendes gefunden:
Und das Script Funktioniert wirklich wunderbar, allerdings, wird ja wie gesagt der älteste Beitrag ganz oben ausgegben, da ich mit dem zweiten Codeschnipsel von Asterixus nichts anfangen kann, bitte ich erneut um Hilfe :S

Hier der Code:
PHP:
<?php
$seite = $_GET["seite"];  //Abfrage auf welcher Seite man ist

//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite))
   {
   $seite = 1;
   }

//Verbindung zu Datenbank aufbauen

$link = mysql_connect("localhost","Kica","***********") or die ("Keine Verbindung moeglich");
mysql_select_db("Kica") or die ("Die Datenbank existiert nicht");


//Einträge pro Seite: Hier 15 pro Seite
$eintraege_pro_seite = 15;

//Ausrechen welche Spalte man zuerst ausgeben muss:

$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;


//Tabelle Abfragen
//Tabelle hei&szlig;t hier einfach: Tabelle
$abfrage = "SELECT * FROM news LIMIT $start, $eintraege_pro_seite";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
    {
   echo $row->title."<br>"; // Hier die Ausgabe der Einträge
   echo $row->news."<br><br>"; // Hier die Ausgabe der Einträge
   }

$result = mysql_query("SELECT id FROM news");
$menge = mysql_num_rows($result);
$wieviel_seiten = $menge / $eintraege_pro_seite;
echo "<div align=\"center\">";
echo "<b>Seite:</b> ";


//Ausgabe der Links zu den Seiten
for($a=0; $a < $wieviel_seiten; $a++)
   {
   $b = $a + 1;

   //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
   if($seite == $b)
      {
      echo "  <b>$b</b> ";
      }

   //Aus dieser Seite ist der User nicht, also einen Link ausgeben
   else
      {
      echo "  <a href=\"?seite=$b\">$b</a> ";
      }


   }
echo "</div>";
?>
 
Am besten du fügst noch eine Spalte mit dem Datentyp datetime ein, dann kannst du nach Datum und Zeit sortieren.
 
Zurück
Oben