...die folgendes kann: ab einem Bestimmten zeichen (string), nicht Position, wie z.b. SUBSTR oder MID, eine bestimmte Anzahl von weiteren Strings liest. also sowas der art:
XXX(string, positionsbegin, länge)
Homepage selbermachen 7.852 Themen, 35.619 Beiträge
geht doch mit SELECT SUBSTRING(string, start, länge)
oder willst du ab einem suchwort das du selbst definierst die zeichen zurückgeben?
das ginge dann so:
SELECT SUBSTRING(string,INSTR(string,suchstring),länge)
wenn du erst nach der suchzeichenkette die zeichen zurückgeben willst:
SELECT SUBSTRING(string,INSTR(string,suchstring)+LENGTH(suchstring)+1,länge);
wenn du alles bis zum ende des string ab dem ende des suchstring haben willst:
SELECT SUBSTRING(string,INSTR(string,suchstring)+LENGTH(suchstring)+1,LENGTH(string)-INSTR(string,suchstring)+1);
um es noch konkreter zu machen, das problem
ich habe 50 Sätze:
Satz 1.
Satz 2.
Satz 3.
.
.
.
Und jetzt will ich immer nur einen Satz auf jeder Seite zeigen, per Mausklick soll der user dann den nächsten gezeigt bekommen, hier das script:
Also nach dem Punkt jedes Satzes soll getrennt werden, der nächste soll dann gezeigt werden, habe das schon so versucht, dass ich alles in einen array geschmissen habe, aber das ist weitaus umstänglicher und ich würde es lieber sql-seitig lösen
<?
$db=mysql_connect("localhost","","");
mysql_select_db("daten",$db);
$maxmenge = "1";
$gesamt=mysql_query("select LENGTH(eintrag) as eintrag from test");
$gesamt_zeile=mysql_fetch_object($gesamt);
$gesamt = $gesamt_zeile->eintrag;
echo $gesamt_zeile->eintrag;
if(!$begin || !$end){
$begin = 0;
$end=$maxmenge;
}
$result=mysql_query("select SELECT SUBSTRING(eintrag,INSTR(eintrag,.)+LENGTH(eintrag)+1) as eintrag from test");
$zeile=mysql_fetch_object($result);
echo "$zeile->eintrag";
if($nextpage)
{
$begin = $begin + $end;
$end = $maxmenge;
}
if(!$nextpage)
{
$begin = 1;
$end = 100;
}
if($begin <= $maxmenge)
{
echo"<a href='$PHP_SELF?begin=$begin&end=$end&gesamt=$gesamt&nextpage=true'>Mehr Lesen</a>";
}
?>
aha, du willst also immer den nächsten satz. dann muß das ganze etwas umstrukturiert werden:
du definierst ja schon einen zähler, diesen brauchen wir dann. ich hposte hier nur den teil mit der sql-anfage mit der annahme, daß $begin dein zähler ist.
if(empty($begin)){$begin=0;}
$sql="SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(string,'.',-$begin),'.',1)";
$begin+=1;
damit wird zuerst alles nach dem $begin-ten auftreten eines punktes zurückgegeben, damit hast du den text ab dem $begin-ten punkt, dann wird alles vor dem ersten auftreten eines punktes zurückgegeben.