News - gekürzt, Problem bei ausgabe!!!

MediaPlanet

Gesperrt
Hi, ich habe mir ein Newsscript programmiert!!

Ich habe es so das auf der Hauptseite die News gepostet werden,
und gekürzt werden. Bis dahin funktioniert alles. Nun möchte
ich nach dem kürzen einen Link hinsetzten der auf die komplette
ungekürzte News verweisen soll.

Wie muss ich das machen das wenn ich auf den Link nur die eine
spezielle news geöffnet wird. Bin ein noob, kann nicht alles
mit PHP, habe auch schon 3 Stunden nach einer Lösung in diesem
Forum gesucht, doch leider nichts gefunden, es war immer so
undurchsichtig!!

Also bitte helft mir!!

Was muss ich dort für den Link einsetzten und wie muss die extra
Ausgabe-Datei aussehen!! THX im Voraus!!

Hier der Code der Ausgabe:
PHP:
<?php
$dbserver = "xxx";
$dbuser = "xxx";
$dbpass = "xxx";
$dbname = "xxx";
$db_table ="newswwwdb";
$proseite=10;
$db = mysql_connect ($dbserver,$dbuser,$dbpass);
mysql_select_db ($dbname);
$sql = "SELECT * FROM $db_table";
$result = mysql_query($sql,$db);
$number = mysql_num_rows($result);
$seiten=floor($number/$proseite);
$start=$page * $proseite;
$sql="SELECT * FROM newswwwdb ORDER BY id DESC LIMIT $start,$proseite" ;
$result = mysql_query($sql,$db);
$ende = $start + $proseite;
$timestamp = time();
$datum = date("d.m.Y H:i",$timestamp);
$uhrzeit = date("H:i",$timestamp);

while ($ausgabe = mysql_fetch_array($result))
{ 
$text = "".$ausgabe['artikel']."";
$text2 = substr($text,0,300); // den Text auf 200 Zeichen kürzen
$cut  = strrpos($text2,' '); // die Position des letzten Leerzeichens übermitteln
$text3 = substr($text2,0,$cut); // den Text um so viee Zeichen kürzen,
das nach dem letzten Leerzeichen nichts mehr kommt
$text5 = "... <p><a target='_self' href='hier muss der Link rein, weiß
net welcher!!!!'><img src='http://www.mp-world.org/Grafiken/HP-Grafiken/news.gif'> mehr</a></p>";
$text4 = "$text3 $text5";

$datestring = date("d.m.Y", $ausgabe["time"]);
echo "<table width'100%' border='1' cellpadding='0' cellspacing='0' 
style='border-collapse: collapse' bordercolor='#111111'>";
echo "<tr><td align='left' 
background='http://www.mp-world.org/images/style/grayrat/navinews.gif'
border='1' bordercolor='#000000'><font color='#FFFFFF' size='1' 
face='Verdana'><span style='font-family: Verdana; font-weight: 
700'>$datestring&nbsp<img 
src='http://www.mp-world.org/Grafiken/HP-Grafiken/news.gif'>&nbsp".$ausgabe['kategorie']."&nbsp
<img src='http://www.mp-world.org/Grafiken/HP-Grafiken/news.gif'>&nbsp".$ausgabe['thema']."</td></tr>";
echo "</table>";
echo "<table width'100%'>";
echo "<tr><td align='justify' width='70%'><font color='#FFFFFF' size='1' face='Verdana'><span style='font-family: Verdana; 
font-weight: 100'><p align='justify'>$text4</p></td></tr></font>";
echo "</table>";
echo "<br>";

}
?>

[Kommentar]
Bitte bitte bitte, es gibt etwas das nennt man Umbruch
und daß kann einem das Layout der Seite so übelst zerreissen.

Also bitte das nächste Mal Enter drücken nach jeder geschriebenen
Zeile. Und ein "!" reicht :-)

Danke,
Jonathan
[/Kommentar]
 
Hi,

also, dein link sieht zum beispiel so aus:
Du erstellst für die vollen news eine neue php seite und lässt auf
diese linken. Das einzige, was du mit übergeben musst, ist eben die
newsid. $ausgabe['id']. Hier im Beispiel nenn ich die neue php seite
mal fullnews.php.

PHP:
$text5 = "... <p><a target='_self' 
href='fullnews.php?id=$ausgabe['id']'><img 
src='http://www.mp-world.org/Grafiken/HP-Grafiken/news.gif'> 
mehr</a></p>";

und nun in der fullnews.php einfach eine mysql abfrage nach der id.

PHP:
$sql="SELECT * FROM newswwwdb WHERE id = '$id' LIMIT $start,$proseite" ;

das wars eigentlich schon :)

hoffe es hilft.
bye
 
Hab so gemacht, doch geht irgendwie net!!

Hier mal die fullnews.php:

PHP:
<?php
$dbserver = "xxx";
$dbuser = "xxx";
$dbpass = "xxx";
$dbname = "xxx";
$db_table ="newswwwdb";
$proseite=10;
$db = mysql_connect ($dbserver,$dbuser,$dbpass);
mysql_select_db ($dbname);
$sql="SELECT * FROM newswwwdb WHERE id = '$id'" ;
echo "".$ausgabe['thema']."";
echo "".$ausgabe['time']."";
echo "".$ausgabe['autor']."";
echo "".$ausgabe['kategorie']."";
echo "".$ausgabe['artikel']."";
?>

Das ist die komplette Datei!!! So müßte doch alle daten von einer ID
z.b 4 ausgegeben werden!!!
So den Link hab ich auch eingefügt wie du gesagt hast!! Doch leider
passiert nichts!! Bleibt weiß!!! Axo beim Link wir auch nicht die id
übergeben!! Der link wird geöffnet doch id steht net dahinter!! Wenn
ich irgendeine Id z.b. 4 mache, kommt nichts!!! Was mache ich falsch!!
 
Hi,

also zuerst mal fehlt die zeile für dein array:

PHP:
<?php
$dbserver = "xxx";
$dbuser = "xxx";
$dbpass = "xxx";
$dbname = "xxx";

$db = mysql_connect ($dbserver,$dbuser,$dbpass) or die ("Keine Verbindung!");
mysql_select_db ($dbname, $db) or die ("Konnte Datenbank nicht ansprechen");

$daten1 = mysql_query("SELECT * FROM newswwwdb WHERE id='$id'");
$daten = mysql_fetch_array($daten1);

echo "$daten['thema']<br>";
echo "$daten['time']<br>";
echo "$daten['autor']<br>";
echo "$daten['kategorie']<br>";
echo "$daten['artikel']<br>";

?>

und die id wird nicht übergeben sagst du?
hast du die spalte der newstabelle denn auch "id" gennant? wenn die z.B. newsid heisst muss dein link natürlich so aussehn:
fullnews.php?id=$ausgabe['newsid']
Die array's $ausgabe['time'] oder $ausgabe['artikel'] in deiner news.php enthalten ja korrekte werte, somit muss auch in irgend nem array deine newsid enthalten sein.

bye
 
Zuletzt bearbeitet:
er zeigt in der fullnews.php dann nur
PHP:
<br><br><br><br>

Also ich hab mal nachgedacht. ich sag doch hier:
PHP:
$daten1 = mysql_query("SELECT * FROM newswwwdb WHERE 
id='$id'",$db);

PHP:
$id
, aber muss das nicht vorher wo festgelegt werden!! Axo
hab mal zu dem Befehl das
PHP:
$db
hinzugefügt, da ich das an dieser Stelle überall habe,
hat aber nix genützt.

hier der aktuelle code der fullnews.php:

PHP:
<?php
$dbserver = "xxx";
$dbuser = "xxx";
$dbpass = "xxx";
$dbname = "xxx";
$db_table ="newswwwdb";

$db = mysql_connect ($dbserver,$dbuser,$dbpass) or die ("Keine Verbindung!");
mysql_select_db ($dbname, $db) or die ("Konnte Datenbank nicht ansprechen");

$daten1 = mysql_query("SELECT * FROM newswwwdb WHERE id='$id'",$db);
$daten = mysql_fetch_array($daten1);

echo "$daten['thema']<br>";
echo "$daten['time']<br>";
echo "$daten['autor']<br>";
echo "$daten['kategorie']<br>";
echo "$daten['artikel']<br>";
?>

Da muss doch irgendwi ein Fehler sein. Axo und die id gibt er immer
noch nicht weiter! In meiner Datenbank ist doch bei jeder Tabelle
eine "ID" spalte, die nehme ich!! Habe keine extra gemacht, die heißt
auch "id", aber trotzdem gibt er die nicht weiter!!

Hier mal der Code der Ausgabe in der die News gekürzt werden!!

PHP:
<?php
$dbserver = "xxx";
$dbuser = "xxx";
$dbpass = "xxx";
$dbname = "xxx";
$db_table ="newswwwdb";
$proseite=10;
$db = mysql_connect ($dbserver,$dbuser,$dbpass);
mysql_select_db ($dbname);
$sql = "SELECT * FROM $db_table";
$result = mysql_query($sql,$db);
$number = mysql_num_rows($result);
$seiten=floor($number/$proseite);
$start=$page * $proseite;
$sql="SELECT * FROM newswwwdb ORDER BY id DESC LIMIT $start,$proseite" ;
$result = mysql_query($sql,$db);
$ende = $start + $proseite;
$timestamp = time();
$datum = date("d.m.Y H:i",$timestamp);
$uhrzeit = date("H:i",$timestamp);

while ($ausgabe = mysql_fetch_array($result))
{ 
$text = "".$ausgabe['artikel']."";
$text2 = substr($text,0,300); // den Text auf 200 Zeichen kürzen
$cut  = strrpos($text2,' '); // die Position des letzten Leerzeichens ermitteln
$text3 = substr($text2,0,$cut); // den Text um so viee Zeichen kürzen, das nach dem letzten Leerzeichen nichts mehr kommt
$text5 = "... <p><a target='_self' href='fullnews.php?id=$ausgabe['id']'><img src='http://www.mp-world.org/Grafiken/HP-Grafiken/news.gif'> mehr</a></p>";
$text4 = "$text3 $text5";

$datestring = date("d.m.Y", $ausgabe["time"]);
echo "<table width'100%' border='1' cellpadding='0' cellspacing='0' 
style='border-collapse: collapse' bordercolor='#111111'>";
echo "<tr><td align='left' 
background='http://www.mp-world.org/images/style/grayrat/navinews.gif'
border='1' bordercolor='#000000'><font color='#FFFFFF' size='1' 
face='Verdana'><span style='font-family: Verdana; font-weight: 
700'>$datestring&nbsp<img 
src='http://www.mp-world.org/Grafiken/HP-Grafiken/news.gif'>&nbsp".$ausgabe['kategorie']."&nbsp<img
src='http://www.mp-world.org/Grafiken/HP-Grafiken/news.gif'>&nbsp".$ausgabe['thema']."</td></tr>";
echo "</table>";
echo "<table width'100%'>";
echo "<tr><td align='justify' width='70%'><font color='#FFFFFF' size='1' face='Verdana'><span style='font-family: Verdana; font-weight: 100'><p align='justify'>$text4</p></td></tr></font>";
echo "</table>";
echo "<br>";

}
?>
 
mach einfach mal bevor du deine ganzen sachen ausgibst nen test
->
$result = mysql_query("select * from newswwwdb") or die(mysql_error());
while($row = mysql_fetch_array($result)){
foreach($row as $type => $value){
echo $type . " - " . $value ."<br>";
}
}

wenn das klappt dann haste deine gross kleinschreibung nicht beachtet!
achso und vergiss nie das -> or die mysql_error() <-
das ist wichtig denn sonst passiert genau das was du hast
 
Ok,

schreib mal die eine zeile in der news.php so:

PHP:
$text5 = "... <p><a target='_self' href='fullnews.php?id=$ausgabe[id]'><img src='http://www.mp-world.org/Grafiken/HP-Grafiken/news.gif'> mehr</a></p>";

Dass bei der Fullnews.php nix ausgegeben wird ist klar, wenn keine id übergeben wird. Hast du mal probiert, einfach von Hand die id im Browser einzutragen?

Naja, versuchs jetzt mal mit der neuen Zeile in der news.php

bye
 
So die IDs werden weiter gegeben!! Genauso werden auch alle Sachen von der id in der fullnews.php angezeigt!! Doch da ist noch ein Problem!! Er zeigt jedes Doppelt:

7
7
SteffenBla
SteffenBla
WWW-News
WWW-News
1.dt Tauschbörsen-Nutzer Verklagt
1.dt Tauschbörsen-Nutzer Verklagt
Nach dem, aus Vergangenheit schon öfters Anzeigen gegen Tauschbörsen Nutzer im Ausland erhoben wurden . Wird jetzt ein Informatikstudent aus Fürth Angeklagt. Er soll beim längst angeschlagenen Tauschbörsen Programm Napster Tausende Musikdatein angeboten haben. Der Kläger ist die International Federation of the Phonographic Industry die nach eigenen Angaben durch Weiterverfolgung der IP-Adresse den Benutzer ausfindig machen konnte. Dem Angeklagten wurde der Computer beschlagnahmt. Es drohen ihm jetzt eine Geld- oder Haftstrafe sowie Schadenseratzforderungen.
Nach dem, aus Vergangenheit schon öfters Anzeigen gegen Tauschbörsen Nutzer im Ausland erhoben wurden . Wird jetzt ein Informatikstudent aus Fürth Angeklagt. Er soll beim längst angeschlagenen Tauschbörsen Programm Napster Tausende Musikdatein angeboten haben. Der Kläger ist die International Federation of the Phonographic Industry die nach eigenen Angaben durch Weiterverfolgung der IP-Adresse den Benutzer ausfindig machen konnte. Dem Angeklagten wurde der Computer beschlagnahmt. Es drohen ihm jetzt eine Geld- oder Haftstrafe sowie Schadenseratzforderungen.


1053279915
1053279915


Wie kann ich nun sagen das er es einzeln ausgibt, z.b. das ich nur den Text und die Überschrift will!!! Und es soll nicht doppelt angezeigt werden!!

Aktuelle fullnews.php
PHP:
<?php
$dbserver = "xxx";
$dbuser = "xxx";
$dbpass = "xxx";
$dbname = "xxx";
$db_table ="newswwwdb";

$db = mysql_connect ($dbserver,$dbuser,$dbpass) or die ("Keine Verbindung!");
mysql_select_db ($dbname, $db) or die ("Konnte Datenbank nicht ansprechen");

$result = mysql_query("select * from newswwwdb WHERE id='$id'") or die(mysql_error());
while($row = mysql_fetch_array($result)){
foreach($row as $type => $value){
echo $value ."<br>";
}
}
?>
 
Wieso machst dus denn so kompliziert?
Meine erste fullnews.php die ich dir geschrieben hab, die funzt doch oder? Da sollte nix doppelt angezeigt werden.
Dann mach doch da jetzt deine Newstabelle, und plazier die array's an den entsprechenden Tabellen.

bye
 
PHP:
<?
$dbserver = "xxx";
$dbuser = "xxx";
$dbpass = "xxx";
$dbname = "xxx";
$db_table ="newswwwdb";

$db = mysql_connect ($dbserver,$dbuser,$dbpass) or die ("Keine Verbindung!");
mysql_select_db ($dbname, $db) or die ("Konnte Datenbank nicht ansprechen");

$result = mysql_query("select * from newswwwdb WHERE id='$id'") or die(mysql_error());
while($row = mysql_fetch_array($result)){
foreach($row as $type => $value){
echo $value ."<br>";
}
}
?>
so wie du es nun hast passt das ja fast ;)
das problem ist kein problem ;) das ist bewust so!
dein mysql_fetch_array() gibt dir ein array zurück welches du einmal meinArray[0] oder eben meinArray[Id] zugreifen kannst
das foreach macht nun genau das selbe
er schaut auf den index[0] und finden ausserdem noch den index[Id]
er gibt nun beides aus
um das zu unterbinden kannste nun statt dem mysql_fetch_array einfach ein mysql_fetch_row() benutzen
den dann gibt es kein asoziatives array sondern nur eins mit normalen indicis
beachte mal den unterschied zwischen dem fetch_row und dem fetch_array und schau dir mal type an dann wirste merken das der erste wert [0] geschrieben und der zweite dann mit dem namen der mysql table geschrieben wird [Id]
PHP:
while($row = mysql_fetch_array($result)){
foreach($row as $type => $value){
echo "$type - $value<br>";
}
}

das type brauchste ausserdem nicht du kannst wenn du willst es einfach auch nur so schreiben
PHP:
while($row = mysql_fetch_row($result)){
foreach($row as $value){
echo "$value<br>";
}
}

wenn du nun aber mit dem fetch_array arbeitest dann müssteste entweder dir das array zurrecht biegen oder eben du schreibst ohne foreach()
PHP:
while($row = mysql_fetch_row($result)){
$row['tableName1'];
$row['tableName2'];
$row['tableName3'];
$row['tableName4'];
}

achso und auf die antwort von blubber
Wieso machst dus denn so kompliziert?
Meine erste fullnews.php die ich dir geschrieben hab, die funzt doch oder? Da sollte nix doppelt angezeigt werden.
Dann mach doch da jetzt deine Newstabelle, und plazier die array's an den entsprechenden Tabellen.

bye

es gibt halt auch leute die mal was lernen wollen und nicht immer jedes beispiel oder script übernehmen!
was ich ziemlich zu schätzen finde !

und @Media
schreib ob du es nun verstanden hast ;)
 
Zurück