PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Last id anzeigen


nitron
16.12.2005, 16:22:45
Hallo.
So also hab mir ein Newssystem geschrieben.
Nun will ich auf der 1. Seite meiner Homepage die news mit der letzten ID in gesamt anzeigen und von der 2. letzte 3. letzte und 4. letzte nur den topic
auf der gleichen Seite.
also hab für die großen news nen großes fenster und für die topics nen kleinen.

vom Grundgedanken ist das kein Problem. Also die Logik versteh ich.. nur der quellcode fehlt mir ein wenig...

vt1816
16.12.2005, 16:38:50
Hallo.
So also hab mir ein Newssystem geschrieben.
Nun will ich auf der 1. Seite meiner Homepage die news mit der letzten ID in gesamt anzeigen und von der 2. letzte 3. letzte und 4. letzte nur den topic
auf der gleichen Seite.
also hab für die großen news nen großes fenster und für die topics nen kleinen.

vom Grundgedanken ist das kein Problem. Also die Logik versteh ich.. nur der quellcode fehlt mir ein wenig...Was hast Du schon? Wie gehst Du ran?

nitron
16.12.2005, 19:53:53
also die newsseite sieht bisher so aus


<?php

include ('include.php');
$conn = mysql_connect ("localhost",$username,$passwortdb) or die ("Can't connect to db!");
mysql_select_db($datenbank,$conn);

$query = "SELECT * FROM $newstabelle ORDER BY id DESC";

$result = @mysql_query ($query,$conn);

while ($row = @mysql_fetch_array($result))
{

echo " <center><table width=\"70%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\">";
echo " <tr><td>";
echo " <b>$row[topic]</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row[datum]";
echo " </td></tr>";
echo " <tr valign=\"top\"><td>";
echo " <hr color=\"#000000\">";
echo " $row[news]";
echo " <br><br>";
echo " </td></tr></table>";
echo " <br><br><br><br></center>";
}
mysql_close ($conn);
?>

hab die ganzen variablen der db in einer include.php definiert.
funktionieren tut das so auch alles wunderbar..

vt1816
16.12.2005, 21:59:47
Zur Zeit zeigts Du alle Datensätze an. Wenn ich Dein Problem richtig verstanden haben, heißt das gesuchte Zauberwort "LIMIT 0,4". So werden nur die letzten (ersten) vier Datensätze angezeigt.
Die Aufteilung der Sätze sollte jetzt ein Selbstläufer sein.

nitron
17.12.2005, 00:01:09
naja möchte aber halt das die letzte news groß und die 3 davor nur mit topic angezeigt werden

vt1816
17.12.2005, 00:40:30
naja möchte aber halt das die letzte news groß und die 3 davor nur mit topic angezeigt werdenWo ist dabei das Problem?
$n = 1;
while ($row = @mysql_fetch_array($result))
{
echo " <center><table width=\"70%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\">";
echo " <tr><td>";
echo " <b>$row[topic]</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row[datum]";
echo " </td></tr>";
if ($n == 1){
echo " <tr valign=\"top\"><td>";
echo " <hr color=\"#000000\">";
echo " $row[news]";
echo " <br><br>";
echo " </td></tr>";}
echo " </table>";
echo " <br><br><br><br></center>";
$n = $n +1;
}

Crooklyn
17.12.2005, 00:49:47
Das Problem liegt hier:
SELECT * FROM $newstabelle ORDER BY id DESC
Mache daraus:
SELECT * FROM $newstabelle ORDER BY id DESC LIMIT 0, 1

Mit LIMIT limitierst du die ausgabeergebnisse!
Sag bescheid wenn es funktioniert! :D
Mfg

UPS ^^ GUT ICH SAH grad das schriebtetetete schon jemand :D sry

nitron
17.12.2005, 01:07:36
achso also nimmt der bei id 1 dann nicht die id wert 1 sonder die letzte ?
Dann okay.. Danke soweit.
Und die andern beiden dann einfach mit row[topic] und limit 2 3 und 4 oder wie?

vt1816
17.12.2005, 02:41:20
Hast Du den oben geposteten Code schon mal getestet? Wie schauts?

nitron
17.12.2005, 12:44:37
<?php

include ('include.php');
$conn = mysql_connect ("localhost",$username,$passwortdb) or die ("Can't connect to db!");
mysql_select_db($datenbank,$conn);

$query = "SELECT * FROM $newstabelle ORDER BY id DESC LIMIT 0, 1";

$result = @mysql_query ($query,$conn);
$n = 1;
while ($row = @mysql_fetch_array($result))
{
echo " <center><table width=\"70%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\">";
echo " <tr><td>";
echo " <b>$row[topic]</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row[datum]";
echo " </td></tr>";
if ($n == 1){
echo " <tr valign=\"top\"><td>";
echo " <hr color=\"#000000\">";
echo " $row[news]";
echo " <br><br>";
echo " </td></tr>";}
echo " </table>";
echo " <br><br><br><br></center>";
$n = $n +1;
}
mysql_close ($conn);
?>


so funktionierts nicht.. Macht aber auch kein error .. sql connect funktioniert wohl, Zeigt nur die news nicht an. Also liest sie nicht aus.
Und noch ein Problem hab ich. Wenn ich eintrage trägt der immer eine leerzeile mit ein. also id1 ist leer id2 die eingetragene news



EDIT:
also hab nochn bissl rumprobiert.. so gehts nun:


<?php

include ('include.php');
$conn = mysql_connect ("localhost",$username,$passwortdb) or die ("Can't connect to db!");
mysql_select_db($datenbank,$conn);

$query = "SELECT * FROM $newstabelle ORDER BY id DESC LIMIT 0, 1";

$result = @mysql_query ($query,$conn);
$num = 1;

while ($row = @mysql_fetch_array($result))
{

echo " <center><table width=\"70%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\">";
echo " <tr><td>";
echo " <b>$row[topic]</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row[datum]";
echo " </td></tr>";

if ($num==1)
{
echo " <tr valign=\"top\"><td>";
echo " <hr color=\"#000000\">";
echo " $row[news]";
echo " <br><br>";
echo " </td></tr>";
}

echo "</table>";
echo " <br><br><br><br></center>";

$num++;
}
mysql_close ($conn);
?>


allerdings halt nur die letzte. Nun will ich halt noch die 3 davor als topic angezeigt kriegen
Und noch ein Problem hab ich. Wenn ich eintrage trägt der immer eine leerzeile mit ein. also id1 ist leer id2 die eingetragene news

und das problem besteht weiterhin

vt1816
17.12.2005, 14:24:45
Wer lesen kann ist klar im Vorteil.
$query = "SELECT * FROM $newstabelle ORDER BY id DESC LIMIT 0, 1"; muss heißen$query = "SELECT * FROM $newstabelle ORDER BY id DESC LIMIT 0, 4"; sonst macht die anschließende Schleife ja keinen Sinn.

nitron
17.12.2005, 14:40:36
ja habd as con crooklyn übernommen. kk.. haste denn für meine andern probs nochne lösung parat?

vt1816
17.12.2005, 16:43:51
Formuliere die Frage / das Problem bitte deutlicher? Was hast Du, was nicht geht? Die Anzeige funktioniert mittlerweile?

nitron
17.12.2005, 17:10:18
also.
so soll das ca. aussehen

klick (http://www.fairplay-hosting.de/screen.jpg)


und das 2. wenn ich ne news schreibe macht der immer eine leernews.. also ohne topic und ohne news.. einfach nur datum und sonst nur leer..
macht der bei jedem eintragen
so als würd ich nach der normalen news noch einmal leer die news abschicken

vt1816
17.12.2005, 19:06:30
Das Eintragen der Informationen in die beiden Bereiche dürfte doch nun keine Hürde mehr darstellen - oder ?

Wie sieht der Code für der Erfassung der Einträgen denn aus - meine Glaskugel hat heute frei ;-)

nitron
17.12.2005, 19:46:34
hehe lol.. :D sry bin heute etwas daneben,,


<html>
<head>
<meta http-equiv="Content-Language" content="de">

<link rel="stylesheet" href="rssstyle.css" type="text/css">
<base target="_self">
</head>
<body text="#cfcfcf" alink="#cfcfcf" vlink="#cfcfcf" link="#cfcfcf">
<font color="#ffffff">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000000" width="100%" id="AutoNumber1" height="100%">
<tr>
<td width="100%" valign="top" align="center">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000000" width="450" id="AutoNumber2">
<tr>
<td width="100%">
<form method="POST" action="<? echo $PHP_SELF ?>">
<table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#000000" width="100%" id="AutoNumber3">
<tr>
<td width="33%">&nbsp;</td>
<td width="37%" colspan="2">&nbsp;</td>
<td width="30%">&nbsp;</td>
</tr>
<tr>
<td width="33%"><font color="#cccccc">Topic</font></td>
<td width="37%" colspan="2">
<input type="text" name="topic" size="30" value="<? echo $topic; ?>"</td>
<td width="30%">&nbsp;</td>
</tr>
<tr>
<td width="33%"><font color="#cccccc">News</font></td>
<td width="37%" colspan="2">
<textarea rows="7" name="news" cols="33" value="<? echo $news; ?>"></textarea></td>
<input type="hidden" name="datum" value="<? $datum=date("d.m.Y | H:i");echo $datum; ?>">
<td width="30%">&nbsp;</td>
</tr>
<tr>
<td width="33%">&nbsp;</td>
<td width="21%"><input type="submit" value="Abschicken" name="B1"></td>
<td width="16%">
<input type="reset" value="Zurücksetzen" name="B2"></td>
<td width="30%"></td>
</tr>
</table>
<p align="center"><?
include ('include.php');


$db = mysql_connect("localhost", $username,$passwortdb);
mysql_select_db($datenbank,$db);

$sql = "INSERT INTO $newstabelle (id,news,datum,topic) VALUES ('$id','$news','$datum','$topic')";

$result = mysql_query($sql,$db);
mysql_close ($db);
?></p>
</form>
<p>&nbsp;</td>
</tr>
</table>
</td>
</tr>
</table>
</font>
</body>
</html>