Falsche ID ausgelesen

Syntax:
SUBSTRING(zeichenkette,pos,laenge)

Angewandt:
SUBSTRING(bericht,0,15) AS bericht

würde die ersten 15 Zeichen des Feldes 'bericht' ausgeben

Bei PHP geht das auch mit der Funktion substr(); Syntax ist gleich, obwohl es da auch andere Varianten noch gibt.
 
Ah OK . Das mit dem Substring funktioniert jetzt auch.

Jetzt bleibt noch...

wie lese ich die beiden Datensätze in der Tabelle nebeneinander aus.....

Vielen Dank für eure schnelle Hilfe
 
Zuletzt bearbeitet:
Hallo!

Versuche es mal so:
PHP:
<table>
<tr>
<?php
// Dein Querry.....
 
$i=1;
while($row2 = mysql_fetch_object($sel2)) {
     echo "<td>".$row2->feldname."<td>";
     if($i%2==0) {
          echo "</tr><tr>";
     }
     $i++;
}
?>
</tr>
</table>
Gruss Dr Dau
 
So ich habe das mal gemacht und hab auch nen bisschen rumprobiert, aber irgendwie funktioniert das nicht recht.

So siehts jetzt aus:

PHP:
if($p = mysql_num_rows($sel2) > 0) {
		$i = 1;
		while($row2 = mysql_fetch_object($sel2)) {
		echo "
<tr>
<td>
	<table border=\"0\">
	<tr>
		<td align=\"center\" background=\"images/trennlinie3.gif\">&nbsp;</td>
		
		<td align=\"center\" >
			<b>".$row2->mannschaft."</b>
			<br \>
			".$row2->titel."
			<br \>
			<br \>";
			$text = $row2->bericht;
			echo substr($text,0,50) ;
			echo "
			<br \>
			<a href=\"index.php?move=18&id=$row2->news_id \">mehr...</a>  
		</td>
		
		<td align=\"center\" background=\"images/trennlinie3.gif\">&nbsp;</td>";

if($i%2==0) {
echo "
	</tr>
	</table>
</td>
</tr>
<tr>
<td background=\"images/trennlinie2.gif\">&nbsp;</td>
</tr>
<tr>
<td>";
		}
		$i++;
		}
	
	
}
	
	else {
		echo "Zurzeit befinden sich keine Newsdatensätze in der Datenbank";
	}

	?>
	
</td>
</tr>
	
</table>

Zur Erklärung, trennlinie2.gif ist waagerecht und trennlinie3.gif ist senkrecht.

So Soll die Tabelle aussehen:

###################
#datensatz#datensatz#
###################
#datensatz#datensatz#
###################

So sieht sie jetzt aus:


# # # # # # # # # # #datensatz#
##########################
#datensatz#
##########################

Die beiden Datensätze haben eine sehr große verschiebung untereinander, desweiteren wenn man im Quelltext schaut hat sich
PHP:
</td>
</tr>
<tr>
<td background=\"images/trennlinie2.gif\">&nbsp;</td>
</tr>
in
PHP:
<tr>
<td align="center" background="images/trennlinie2.gif">&nbsp;</td>
</tr>
	
</td>
</tr>
gedreht

Ich hoffe ihr könnt mir helfen
 
Also wenn ich dich richtig verstehe hast du sag ich mal z.B. 10 Datensätze in der Datenbank und die werden dann reintheoretisch in einer Tabelle mit 5 Zeilen und 2 Spalten ausgegeben?! (so möchtest du es haben)

Dein Resultat momentan ist aber, das die Datensätze bei diesem Beispiel in 10 Zeilen mit 1 Spalte ausgegeben werden?!
 
Zuletzt bearbeitet:
genau wenn ich 10 Datensätze habe, soll eine Tabelle mit 5 Zeilen und 2 Spalten erzeugt werden.

Die Spalten werden durch trennlinie2.gif und die zeilen durch trennlinie 3.gif geteilt. So soll es sein, aber leider weis ich nicht wie.
 
Also gehen wir mal davon aus ich hab das jetzt richtig verstanden solltest du vor allen dingen definieren wie breit die jeweiligen Spalten sein dürfen da ja sonst PHP das sozusagen selber macht und das ziemlich bescheiden ausschaut.
Der Zähler wird nicht hochgezählt wenn er die zweite If Anweisung durchläuft d.h. beim 3. Datensatz wäre dieser weiterhin bei 2 und würde erst beim 5. Datensatz wieder eine neue Zeile anfangen
und der <table> Tag muss auch aus der Schleife raus bzw. geändert werden da er für jeden Datensatz eine neue Tabelle macht aber ich er soll ja nur für jeweils 2 Datensätze 1 Tabelle erstellen.
hab jetzt mal die Sachen die mir aufgefallen sind soweit korrigiert. ich bin jetzt auch davon ausgegangen das du vor dem ganzen Code der hier dargestellt ist ein <table> vor stehen hast

PHP:
//also hier irgendwo vorher steht der <table> Tag

if($p = mysql_num_rows($sel2) > 0) { 
        $i = 1;

        while($row2 = mysql_fetch_object($sel2)) {       
//Hier hab ich nun was geändert das nun nur bei jedem 2. mal eine neue Splate mit Tabelle eröffnet wird
if($i%2 != 0) {
    echo "<tr><td>
<table border=\"0\">";
}
    echo " <tr> 
        <td align=\"center\" background=\"http://www.tutorials.de/forum/images/trennlinie3.gif\">&nbsp;</td> 
         
        <td align=\"center\" > 
            <b>".$row2->mannschaft."</b> 
            <br \> 
            ".$row2->titel." 
            <br \> 
            <br \>"; 
            $text = $row2->bericht; 
            echo substr($text,0,50) ; 
            echo " 
            <br \> 
            <a href=\"index.php?move=18&id=$row2->news_id \">mehr...</a>   
        </td> 
         
        <td align=\"center\" background=\"http://www.tutorials.de/forum/images/trennlinie3.gif\">&nbsp;</td>"; 

if($i%2==0) { 
echo " 
    </tr> 
    </table> 
</td> 
</tr> 
<tr> 
<td background=\"http://www.tutorials.de/forum/images/trennlinie2.gif\">&nbsp;</td> 
</tr> 
<tr> 
<td>";
//Hier den Zähler hochzählen eingefügt
$i++; 
        } 
        $i++; 
        } 
     
     
} 
     
    else { 
        echo "Zurzeit befinden sich keine Newsdatensätze in der Datenbank"; 
    } 

    ?>
Hier nochmal die entsprechenden Tags eingefügt zum schließen der Tabellen etc.
 
</tr>
</table>     
</td>
</tr>
</table>

Also mehr ist mir jetzt auf Anhieb erst mal nicht aufgefallen
 
Zuletzt bearbeitet:
Also ich habe das ausprobiert und noch einiges verändert. Von der Struktur müsste es jetzt stimmen, nur die Abfrage will noch nicht so recht funktionieren.

PHP:
$sel2 = mysql_query("SELECT 
					news.id AS news_id,
					news.mannschaft AS 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());
	$i = 1;
	if($p = mysql_num_rows($sel2) > 0) { 
        while($row2 = mysql_fetch_object($sel2)) {       
	
	
	if($i%2==1) {
	echo "
	
	
<tr>
<td>
	<table border=\"0\">
	 
	<tr>";
} 
	
	echo " 
	<td align=\"center\" > 
            <b>".$row2->mannschaft."</b> 
            <br \> 
            ".$row2->titel." 
            <br \> 
            <br \>"; 
            $text = $row2->bericht; 
            echo substr($text,0,50) ; 
            echo " 
            <br \> 
            <a href=\"index.php?move=18&id=$row2->news_id \">mehr...</a>   
        </td>";

	if($i%2==1) {
	echo "         
        <td align=\"center\" background=\"images/trennlinie3.gif\">&nbsp;</td>"; 
}
if($i%2==0) { 
echo " 
    </tr> 
    </table> 

<tr> 
<td background=\"images/trennlinie2.gif\">&nbsp;</td> 
</tr> 

</td> 
</tr> 

";
$i++; 
}
$i++; 
} 
}    
    else { 
        echo "Zurzeit befinden sich keine Newsdatensätze in der Datenbank"; 
    } 

    ?>

Die ersten beiden Datensätze werden wie gewollt nebeneinander ausgelesen. Der 3. Datensatz wird in der zweiten Zeile ausgelesen. Doch der 4. Datnsatz wird nicht etwa neben dem 3. Datensatz ausgelesen, sondern eine Zeile darunter. Woran kann das liegen?
 
Zuletzt bearbeitet:
Zurück