Falsche ID ausgelesen

dodge11

Mitglied
Hallo,

ich möchte mir auf meiner Homepage eine Newsübersicht ausgeben lassen.

Das habe ich so gemacht:
PHP:
<table width=80%" border="0">

<?php
	$sel2 = mysql_query("SELECT 
					news.id, 
					news.mannschaft,
					titel, 
					bericht,
					intern_mannschaft.id, 
					intern_mannschaft.mannschaft 
					FROM
					news
					LEFT JOIN intern_mannschaft ON (intern_mannschaft.id=news.mannschaft)
					ORDER BY 
					news.id
					DESC")
					or die (mysql_error());


	if($p = mysql_num_rows($sel2) > 0) {

		while($row2 = mysql_fetch_object($sel2)) {
		echo "
<tr>
<td>
	<table border=\"0\">
	<tr>

		<td align=\"center\" >
			<b>".$row2->mannschaft."</b>
			<br \>
			".$row2->titel."
			<br \>
			<br \>
			".$row2->bericht."
			<br \>
			<a href=\"index.php?move=18&id=$row2->id \">mehr...</a> 
		</td>
		
		<td align=\"center\" background=\"http://www.tutorials.de/forum/images/trennlinie3.gif\">&nbsp;</td>

		<td align=\"center\" >
			<b></b>
			<br \>
			
			<br \>
			
			<br \>
			<a href=\"\">mehr...</a> 
		</td>	
	</tr>
	</table>
<tr>
    		<td background=\"http://www.tutorials.de/forum/images/trennlinie2.gif\">&nbsp;</td>
</tr>";
}
	}
	else {
		echo "Zurzeit befinden sich keine Newsdatensätze in der Datenbank";
	}

	?>
</table>

Nun habe ich einige Probleme:

- Mit dem Link "weiter" wird man auf die Ausgabeseite des Datensatzes gebracht. Die Datensatz ID möchte ich per URL übertragen. Das Problem ist nun, dass hinter "index.php?move=18&id=" nur die ID der mannschaft und nicht die ID des Datensatzes gehängt wird.

- Ich möchte die Ausgabe des Berichts auf 100 Zeichen einschränken, wie mache ich das am besten

- Die Newsübersicht soll in einer Tabelle ausgegeben werden. Die Tabelle soll folgender Maßen aussehen:

Datensatz # Datensatz
###################
Datensatz # Datensatz
###################

Der zweite Datensatz soll hier ausgelesen werden:

PHP:
<td align=\"center\" >
			<b></b>
			<br \>
			
			<br \>
			
			<br \>
			<a href=\"\">mehr...</a> 
		</td>

Leider habe ich keinen Schimmer wie man das am besten macht.

Ich hoffe Ihr könnt mir helfen

gruß
Christian
 
PHP:
<a href=\"index.php?move=18&id=".$row2->id."\">mehr...</a>

Auf Zeichen beschränken: substr() oder wordwrap()
 
Vielen Dank für deine schnelle Antwort

Aber leider wird immer noch die ID der Mannschaft angehängt.

Wie wird das substr() denn eingebunden Ich habe das mal so gemacht, aber so funktioniert es nicht.

PHP:
<?php
	$sel2 = mysql_query("SELECT 
					news.id, 
					news.mannschaft,
					titel, 
					substring( bericht, 0, 15 ) AS bericht,
					intern_mannschaft.id, 
					intern_mannschaft.mannschaft 
					FROM
					news
					LEFT JOIN intern_mannschaft ON (intern_mannschaft.id=news.mannschaft)
					ORDER BY 
					news.id
					DESC")
					or die (mysql_error());
 
Zuletzt bearbeitet:
Du hast doch gar kein MySQL-Feld was id heißt oder seh ich das falsch? versuchs mal mit

PHP:
<a href="index.php?move=18&id=".$row2->news.id."\">mehr...</a>


gruß soyo
 
Ich würd von vornherein schon MySql-Felder nicht so benennen, das Sonderzeichen enthalten sind. Damit wirst du immer wieder auf Probleme stoßen.

Mich wundert es eh das nicht schon davor eine Fehlermeldung ausgegeben wird. Die ersten Anführungsstriche müssten auch escaped werden.
 
Zuletzt bearbeitet:
Das ist kein Sonderzeichen, sondern die Deffinition für den LEFT JOIN. Wenn ich nur id schreiben würde käme ein Fehler, denn durch den LEFT JOIN gibt es in zweites Feld id, allerdings in einer anderen Tabelle.
 
Hallo,

gib den entsprechenden Feldern am besten einen Alias:
Code:
SELECT 
    news.id AS news_id
    news.mannschaft AS news_mannschaft
…
PHP bezieht den Tabellennamen hier nicht mit ein, sodass gleichnamige Feldnamen sich gegenseitig überschreiben.

Grüße,
Matthias
 
Ah OK so gehts danke.

Aber wie binde ich den substring richtig ein und wie mache ich das mit dem Auslesen der Datensätze nebeneinander
 
Zurück