Newsscript Tutorial

Für Newsscripts direkt nicht, aber wenn du verstanden hast, wie du in eine SQL-Datenbank Daten einträgst, ausliest und diese anzeigst. Hast du eigentlich schon alles was du benötigst.

Gruß
Robert
 
japp was auch nicht schlächt wäre wenn du weißt wie du eine Blätterfunktion machst und BBcodes ausgibst! Dann hast du schon gewonnen.
 
ok, das kann man sich ja von anderen Tutorials durchlesen, Ich wüsste nur nicht, wie ich eine News mache mit [Weiterlesen], wenn die News zu groß ist.
 
das ist auch ganz einfach
ich habe auch eine HP und ein Newsscript.
Das mit dem klappen geht besser mit einem Javascript das du direct in die while schleife einbaust (die while schleife benutzt du zum ausgeben der beiträge).

Folgendes script ist das Klappmenu du musst es nur noch richtig einbauen.
es gibt da dann noch viel zu tun :D aber wie helfen ja nur und sagen nix vor ;)
ggf. musst du es erweitern mit einem kleinem + oder - davor musst du sehen schaffst du schon.
HTML:
        <style type="text/css" media="screen">
        div.klappmenushow {}
        div.klappmenuhidden {display:none;}
        </style>

         <script type="text/javascript">
            <!--
            function switchKlappMenu() {
                    if (document.getElementById('klappmenu').className == 'klappmenuhidden') {
                        document.getElementById('klappmenu').className = 'klappmenushow';
                    } else {
                        document.getElementById('klappmenu').className = 'klappmenuhidden';
                    }
            }
            -->
        </script>

<a href='javascript:switchKlappMenu()'>Klappen</a><br>
halli
<div class='klappmenuhidden' id='klappmenu'>
hallo
</div>
 
würde das so gehen:

Code:
<?php
 $mysql["host"] = "localhost";
 $mysql["user"] = "";
 $mysql["password"] = "";
 $mysql["database"] = "";
 mysql_connect($mysql["host"],$mysql["user"],$mysql["password"]);
 mysql_select_db($mysql["database"]);
 $sql = "SELECT title,autor,date,inhalt,inhalt_voll FROM news";
$ergebnis = mysql_query($sql);
	if($ergebnis) {
		$number = mysql_num_rows($ergebnis);
		echo "<TABLE border=1 width=800 bordercolor=black>";
        echo "";
		while ($row = mysql_fetch_array($ergebnis, MYSQL_ASSOC)) {
			echo "<Tr width=700>";
			echo "<td><b>Titel >".$row['title']."</b>";
			echo "<hr>";
			echo "".$row['inhalt']."";
			echo "</td>";
			echo "<td width=100 valign=top><b><div align=right><u>Autor</u><br>".$row['autor']."<br>".$row['date']."</div></b></td>";
			echo "</tr>";
			echo "<tr><td colspan=2></td></tr>";
			}
echo "</Table>";

			}
 ?>

oder ist das absoluter Schwachsinn?
 
also habe mir das mal angesehen und ich schätze das sollte gehen.
kann aber auch sein das es viel zu früh ist und ich mich irre.

Aber du musst nicht für jede Zeile ein echo machen:
PHP:
			echo "<Tr width=700>";
			echo "<td><b>Titel >".$row['title']."</b>";
			echo "<hr>";
			echo "".$row['inhalt']."";
			echo "</td>";
			echo "<td width=100 valign=top><b><div align=right><u>Autor</u><br>".$row['autor']."<br>".$row['date']."</div></b></td>";
			echo "</tr>";
			echo "<tr><td colspan=2></td></tr>";
Mach das doch so:
PHP:
echo "
  <Tr width=700>
  <td><b>Titel >".$row['title']."</b>
  <hr>
  ".$row['inhalt']."
  </td>
  <td width=100 valign=top><b><div align=right><u>Autor</u><br>".$row['autor']."<br>".$row['date']."</div></b></td>
  </tr>
  <tr><td colspan=2></td></tr>
";

Das sollte genau so gehen und erspart dir arbeit. aber was ich nicht kenne ich folgendes: MYSQL_ASSOC
was ist das? sorry aber das kenne ich net.
 
keine Ahnung, was es mit dem MYSQL_ASSOC auf sich hat. Ich hatte ein Seminar in PHP und da meinte er in meinem Script ich solle das einbauen. Naja. Wenn es überflüssig ist, dann lasse ich es weg. Ist das so richtig mit dem Einbauen des Klapptmenüs?

PHP:
<?php
$klappmenu = "0";
 $klappshow = "0";
 mysql_connect($mysql["host"],$mysql["user"],$mysql["password"]);
 mysql_select_db($mysql["database"]);
 $sql = "SELECT title,autor,date,inhalt,inhalt_voll FROM news";
$ergebnis = mysql_query($sql);
	if($ergebnis) {
		$number = mysql_num_rows($ergebnis);
		echo "<TABLE border=1 width=800 bordercolor=black>";
        echo "";
		while ($row = mysql_fetch_array($ergebnis)) {
		    $klappmenu =  $klappmenu + "1";
			$klappshow =  $klappshow + "1";

			echo "  <style type=text/css media=screen>
 div.klappmenushow {}
 div.klappmenuhidden {display:none;}
  </style>

         <script type=text/javascript>
            <!--
            function switchKlappMenu() {
                    if (document.getElementById('klappmenu').className == '".$klappmenu."') {
                        document.getElementById('klappmenu').className = '".$klappshow."';
                    } else {
                        document.getElementById('klappmenu').className = '".$klappmenu."';
                    }
            }
            -->
			
        </script>";
			echo "<Tr width=700>";
			echo "<td><b>Titel >".$row['title']."</b>";
			echo "<hr>";
			echo "<a href='javascript:switchKlappMenu()'>- Klappen</a><div class='".$klappmenu."' id='klappmenu'><br>".$row['inhalt']."</div>";
			echo "</td>";
			echo "<td width=100 valign=top><b><div align=right><u>Autor</u><br>".$row['autor']."<br>".$row['date']."</div></b></td>";
			echo "</tr>";
			echo "<tr><td colspan=2>leere zeile ".$klappmenu."</td></tr>";
			
			}
echo "</Table>";

			}
 ?>
 
ja nee ja nee :D
also ich erkläre dir mal wie ich das gemacht habe:
ich gebe das javascript IN der whileschleife aus richtig!
in meiener MYSQL tabelle ist es so das ich z.B. 3 felder habe: id,autor,text
in dem feld "text" gebe ich den Link und auch den div befehl ein: <div class='klappmenuhidden' id='klappmenu'> so wie auch den link dafür: <a href='javascript:switchKlappMenu()'>Klappen</a>. Dies wird dann also direct mit dem Text ausgegeben und hat die gewünschte funktion. das Problem ist wenn du jedesmal in der while schleife das gleiche javascript und auch die gleichen links (div's) ausgibst dan öffnen sich logischerweise alle aufeinmal wenn du 1 öffnen willst also musst du die namen der javafunktionen, links und div's ändern so das sie NIE identisch sind. und wie macht man das? ganz einfach du setzt hinter die namen jeweils die id des beitrags :D dann klappt das.

Hier mal ein script zu ausgabe:

PHP:
        <style type="text/css" media="screen">
        div.klappmenushow {}
        div.klappmenuhidden {display:none;}
        </style>

<?
//MYSQL datenbank
$server = "localhost";
$username = "root";
$password = "mammut";
$datebnak = "upload";


$db = mysql_connect( "$surver", "$username", "$password"); mysql_select_db("$datenbank");

$anfrage = mysql_query("SELECT * FROM news");

while($row = mysql_fetch_array ($anfrage)){

//Ausgabevariabeln
$id 			= $row['id'];
$autor			= $row['autor'];
$text 			= $row['text'];

echo"
  <script type=text/javascript>
            <!--
            function switchKlappMenu$id() {
                    if (document.getElementById('klappmenu$id').className == '".$klappmenu."') {
                        document.getElementById('klappmenu$id').className = '".$klappshow."';
                    } else {
                        document.getElementById('klappmenu$id').className = '".$klappmenu."';
                    }
            }
            -->

  </script>
";

echo $text;
}
?>

habe das script so auf die schnelle gezaubert aber sollte gehen teste es mal mach eine MYSQL tabelle auf und trag die richtig ein man 3-4 einträge in den stehen kann was du willst jedoch sollte im "text" in etwa sowas stehen:

<a href='javascript:switchKlappMenu$id()'>Klappen</a><br>
halli
<div class='klappmenuhidden' id='klappmenu$id'>
hallo
</div>

das sollte dann gehen :D viel spaß und problier mal rum.

P.s. habe auch einige zeit gedauert bis ich das rausgefunden habe. Das sieht alles soooo kompliziert aus weil man ja immer den link und den div in den text eingeben muss aber später wenn du dies kannst zeige ich dir wie BBCodes gehen und dann ist das auch ganz einfach!
 
Zuletzt bearbeitet:
Zurück