News Script
Oliver
- php
Ich wollte für meine webpage ein simplen news script erstellen.
Was ja ansich kein problem ist, mysql tabelle mit id, categorie, titel, datum, text.
mein problem ist es das ganze mehrfach auszulesen.
Ich lass die datensätze abfragen und von der grössten bis zur kleinsten id posten.
Jetzt das problem ich will es in einer tabelle machen bzw. 2 tabellen machen die so aussehen:
<table width="427" border="1">
<tr>
<td width="89" align="left" bgcolor="#000000" style="color:#CF6">Categorie</td>
<td width="185" align="center" style="color:#F00" bgcolor="#000000">Titel</td>
<td width="131" align="left" bgcolor="#000000" style="color:#0F0">Datum</td>
</tr>
</table>
<table width="427" height="186" border="1">
<tr>
<td> </td>
</tr>
</table>
Wie kann ich aber pro datensatz auch die 2 tabellen neu erstellen lassen??
Jetzt das problem ich will es in einer tabelle machen bzw. 2 tabellen machen die so aussehen:
dein problem ist, dass du dir noch keine gedanken über deinen inhalt gemacht hast - wie wärs denn mit etwas odentlichem?
<h2>News></h2>
<ul class="news>
<li>
<h3>Titel</h3>
<span class="category">Kategorie</span>
<span class="datetime">Datum/Zeit</span>
<p>lorem ipsum dolor</p>
<p>lorem ipsum dolor</p>
</li>
<li>
<h3>Titel 2</h3>
<span class="category">Kategorie</span>
<span class="datetime">Datum/Zeit</span>
<p>lorem ipsum dolor</p>
<p>lorem ipsum dolor</p>
</li>
</ul>
Wie kann ich aber pro datensatz auch die 2 tabellen neu erstellen lassen??
genauso als wurdeste eine tabelle, 5 tabellen, 3 divs, 4x den buchstaben A oder sonstwas mit php generieren - ich kann deiner frage nicht folgen
Hi,
Wie kann ich aber pro datensatz auch die 2 tabellen neu erstellen lassen??
Warum willst du das?
Wenn du die Datensaetze als tabellarische Daten betrachtest - dann gehoeren sie in *eine* Tabelle, je Datensatz eine Zeile.
Beschaeftige dich mit Schleifen.
MfG ChrisB
Beschaeftige dich mit Schleifen.
ich dachte bunte verpackung sei eine sache von css?
SCNR
Grundlage für Zitat #1348.
So das kam jetzt dabei raus.
Ist vielleicht nicht das beste aber es sollte gehen nur jetzt hab ich noch ein problem.
$row['titel'] wir in der tabelle nicht ausgegeben, warum nicht?
wenn ich sie normal über echo aufrufe bekomme ich den datensatz angezeigt.
<?php
include 'datenbank.php';
$db = mysql_connect($db_host, $db_user, $db_pw);
mysql_select_db($db_name);
$query = "SELECT * FROM news ";
$result = mysql_query($query);
echo mysql_error();
while ($row = mysql_fetch_array($result))
echo $row['text'];
echo "<table width=\'458\' border=\'1\'>";
echo "<tr>";
echo "<td width=\'100\'>Categorie:</td>";
echo "<td width=\'100\'>Titel:" .$row['titel'] ."</td>";
echo "<td width=\'100\'>Datum:</td>";
echo "</tr>";
echo "</table>";
echo "<table width=\'458\' height=\'300\' border=\'1\'>";
echo "<tr>";
echo "<td width=\'458\' height=\'200\'> </td>";
echo "</tr>";
echo "</table>";
?>
Sry ich bin blöde ohne klammern geht das ja wohl nicht :D
So jetzt hänge ich wieder :D.
Es passiert hier einfach nix. keine fehlermeldung kein garnichts, es kommt einfach das formular wieder, wieso?
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<?php
if ($gesendet)
{
include 'datenbank.php';
$db = mysql_connect($db_host, $db_user, $db_pw);
$sqlab = "insert news";
$sqlab .= "(cat, titel, datum, text) values ";
$sqlab .= "('$ca', '$ti', $da, '$te')";
mysql_db_query($db_name, $sqlab);
echo mysql_error();
$num = mysql_affected_rows();
if ($num>0)
echo "Es wurde 1 Datensatz hinzugefügt<p>";
else
{
echo "Es ist ein Fehler aufgetreten, ";
echo "es wurde kein Datensatz hinzugefügt<p>";
}
mysql_close($db);
}
?>
</head>
<body>
<form action = "newse.php" method = "post">
<table width="220" border="1">
<tr>
<td width="63">Titel:</td>
<td width="319"><input name="ti" /></td>
</tr>
<tr>
<td>Categorie</td>
<td><input name="ca" /></td>
</tr>
<tr>
<td>Text:</td>
<td><textarea name="te" rows="5" cols="40"></textarea> </td>
<input type="hidden" name="da" value="<?=time()?>">
</tr>
</table>
<table width="222" border="0">
<tr>
<td width="67"><input type="Reset" /></td>
<td width="139" align="center"><input type="Submit" name="gesendet" /></td>
</tr>
</table>
</form>
</body>
</html>
Hallo
include 'datenbank.php';
$db = mysql_connect($db_host, $db_user, $db_pw);
Du öffnest eine Verbindung zur DB.
$sqlab = "insert news";
$sqlab .= "(cat, titel, datum, text) values ";
$sqlab .= "('$ca', '$ti', $da, '$te')";
Ist das hinterher syntaktisch richtig? Meiner Meinung nach dürfte ein Leerzeichen zwischen Tabellennamen und der Liste der Tabellenfelder fehlen.
kleiner Tip nebenbei: Ich benutzte in diesem Fall folgende Syntax
INSERT INTO news SET
cat = 'bla',
titel = 'blubb',
datum = 'heute',
text = 'laber rhabarber'
Die funktioniert genauso wie die UPDATE-Syntax. Da brauch ich mir nur ein Schema zu merken. :-)
mysql_db_query($db_name, $sqlab);
Ist das eine selbstgeschriebene Funktion? Wo kommt $db_name
her? Und überhaupt: Wo wählst du die konkrete Datenbank aus? Da herinnen? Dann zeig uns auch die Funktion ansich.
Tschö, Auge
der db name kommt aus der datenbank.php
<?php
$db_name = 'test';
$db_user = 'root';
$db_host = 'localhost';
$db_pw = 'xxx';
?>
echo $begrüßung;
Es passiert hier einfach nix. keine fehlermeldung kein garnichts, es kommt einfach das formular wieder, wieso?
Du siehst sie nur nicht.
echo mysql_error();
[...]
</head>
Schau in den Quelltext, dann findest du sicher die Meldung. Fließtext gehört in den HTML-Body, nicht in den Head-Bereich.
$db = mysql_connect($db_host, $db_user, $db_pw);
Warum prüfst du nicht, ob der Verbindungsaufbau fehlerfrei stattgefunden hat? Die mysql_*-Funktionen liefern im Fehlerfall ein anderes Ergebnis als im Gutfall. Werte diese Rückgabewerte stets aus!
mysql_db_query($db_name, $sqlab);
Das ist eine missbilligte / veraltete Funktion. Verwende stattdessen mysql_select_db() und mysql_query() einzeln. Auch hier wieder: Rückgabeergebnis auswerten!
echo "$verabschiedung $name";
So der news script leuft so weit.
Jetzt wollte ich die ausgabe noch unterteilen mit einem kleinen auswahl menü so das ich es auf mehr seiten ausgeben kann.
Habe sschon ein fertigen script gefunden da ich aber kaum ahnung von php habe wie ihr sicher schon gemerkt habt weiss ich nicht warum das script sagt das es ein parse fehler in dieser zeile gibt:
if ($ende>$number) { $ende = $number }
gesamter code
$proseite=10;
$db = mysql_connect ($sqlhost,$username,$passwort);
mysql_select_db ($database);
$sql = "SELECT * FROM news";
$result = mysql_query($sql,$db);
$number = mysql_num_rows($result);
$seiten=floor($number/$proseite);
$start=$page * $proseite;
$sql="SELECT * FROM table LIMIT $start,$proseite";
$result = mysql_query($sql,$db);
$ende = $start + $proseite;
if ($ende>$number) { $ende = $number }
echo "Zur Zeit sind $number Einträge im Gästebuch <BR> \n";
echo "Seite $page - Einträge von $start bis $ende <BR> \n";
while ($row = mysql_fetch_row($result)) {
$date=$row['datum'];
echo "<table width=\'458\' border=\'1\'>";
echo "<tr>";
echo "<td width=\'100\'>Categorie:" .$row['cat'] ."</td>";
echo "<td width=\'100\'>Titel:" .$row['titel'] ."</td>";
echo "<td width=\'100\'>Datum:" .date("d.m.y", $date) ."</td>";
echo "</tr>";
echo "</table>";
echo "<table width=\'458\' border=\'1\'>";
echo "<tr>";
echo "<td width=\'458\'>" .nl2br($row['text'])."</td>";
echo "</tr>";
echo "</table>";
}
if ($page>0) {
$i=$page-1;
echo "<A HREF=\"news.php?page=$i\"><previous</A>";
}
for($i=0; $i<=$seiten; $i++) {
if ($i==$page) {
echo $i." ";
}
else {
echo "<A HREF=\"news.php?page=$i\">$i</A> ";
}
}
if ($page<$seiten) {
$i=$page+1;
echo "<A HREF=\"news.php?page=$i\">next></A>";
}
?>
Hi,
Habe sschon ein fertigen script gefunden da ich aber kaum ahnung von php habe wie ihr sicher schon gemerkt habt weiss ich nicht warum das script sagt das es ein parse fehler in dieser zeile gibt:
if ($ende>$number) { $ende = $number }
Weil da das Semikolon zum Abschluss des Zuweisungs-Ausdrucks fehlt.
MfG ChrisB