Moin Moin
Ich bin schon am verzweifeln.
Also, ich habe eine Datenbankabfrage (MySQL) und das Ergebnis stimmt nicht mit dem Datensatz überein.
Im Datensatz sind folgende Daten gespeichertBeispieldatensatz)
id = 1
titel = Sozialraummanagement - Stadtteilentwicklung
text = Blablabla
rubrik = Koordination Bezirksamt
user = 2
stand = 1168508390
seite = stadtteilentwicklung.php?rubrik=Koordination Bezirksamt
Die Ausgabe ist wie folgt geschrieben:
Wobei fast alles korrekt angezeigt wird. Aber nur fast, den im unteren Bereich steht die Zeile :
Auf der Website kommt dann folgendes: stadtteilentwicklung.php?rubrik=Koordination%20Bezirid=4&suche=Lurup
es sollte aber eigendlich
stadtteilentwicklung.php?rubrik=Koordination%20Bezirksamt&id=4&suche=Lurup
stehen.
Das Problem ist also, das "$row[seite]" nicht vollständig eingefügt wird, sondern nach genau 50 Zeichen abgebrochen wird. In der DB sind aber "varchar(200)" für die Spalte eingegeben. In der Anzeige von PhpMyAdmin (wo alle Datensätze dieser Tabelle aufgelistet sind) wird auch nach 50 Zeichen mit ... abgebrochen. Wenn man auf bearbeiten des Datensatzes geht, wird der Inhalt aber korrekt mit mehr als 50 Zeichen dargestellt.
Es sind alle Datensätze betroffen die länger als 50 Zeichen in der Spalte "seite" haben.
Und die Abfrage kürzt meiner Meinung nach nicht die Ergebnisse.
Was ist also da los?
Zur Information: vor kurzem wurde der Server auf php5 umgestellt. Bis dahin funktionierte alles.
dank im voraus für Eure Hilfe
zdek
PS: trotz suche hab ich nichts der gleichen gefunden...
Ich bin schon am verzweifeln.
Also, ich habe eine Datenbankabfrage (MySQL) und das Ergebnis stimmt nicht mit dem Datensatz überein.
Im Datensatz sind folgende Daten gespeichertBeispieldatensatz)
id = 1
titel = Sozialraummanagement - Stadtteilentwicklung
text = Blablabla
rubrik = Koordination Bezirksamt
user = 2
stand = 1168508390
seite = stadtteilentwicklung.php?rubrik=Koordination Bezirksamt
Die Ausgabe ist wie folgt geschrieben:
PHP:
if($_POST[tabelle] == "alles") {
// DB-Abfrage über alle tabellen ohne autor
if($_POST[autor] == "") {
$sql ="SELECT id,titel,text,seite FROM aktuelles WHERE text LIKE '% $suche%'
UNION
SELECT id,titel,text,seite FROM content WHERE text LIKE '%$suche%'
UNION
SELECT id,titel,text,seite FROM l_forum WHERE text LIKE '%$suche%'
UNION
SELECT id,titel,text,seite FROM einrichtungen WHERE text LIKE '%$suche%'
UNION
SELECT id,titel,text,seite FROM politik WHERE text LIKE '%$suche%'
UNION
SELECT id,titel,text,seite FROM wohnen WHERE text LIKE '%$suche%'
UNION
SELECT id,titel,text,seite FROM stadtteilentwicklung WHERE text LIKE '%$suche%'
";
} else {
// DB-Abfrage über alle Tabellen mit autor
$sql =" SELECT id,titel,text,seite FROM aktuelles WHERE text LIKE '%$suche%' AND user='$autor'
UNION
SELECT id,titel,text,seite FROM content WHERE text LIKE '%$suche%' AND user='$autor'
UNION
SELECT id,titel,text,seite FROM l_forum WHERE text LIKE '%$suche%' AND user='$autor'
UNION
SELECT id,titel,text,seite FROM einrichtungen WHERE text LIKE '%$suche%' AND user='$autor'
UNION
SELECT id,titel,text,seite FROM politik WHERE text LIKE '%$suche%' AND user='$autor'
UNION
SELECT id,titel,text,seite FROM wohnen WHERE text LIKE '%$suche%' AND user='$autor'
UNION
SELECT id,titel,text,seite FROM stadtteilentwicklung WHERE text LIKE '%$suche%' AND user='$autor'
";
}
} else {
if($_POST[autor] == "") {
$sql = "SELECT id,titel,text,seite FROM $tabelle WHERE text LIKE '%$suche%' ";
} else {
$sql ="SELECT id,titel,text,seite FROM $tabelle WHERE text LIKE '%$suche%' AND user='$autor' ";
}
}
$z = 1;
$result=mysql_query($sql) OR die(mysql_error());
?>
<div class="content1">
<span class="uschrift">Die Suche hat folgendes Ergeben:</span><br />
Es gibt <strong>"<? echo mysql_Num_Rows($result); ?>"</strong> Treffer zum Suchbegriff <strong>"<?php echo $suche;?>"</strong>
<br /><br />
</div>
<br />
<?php
if (mysql_Num_Rows($result) > 0 ) {
while ($row = mysql_fetch_array ($result)) {
// Suchergebnis anzeigen
echo"<div class=\"content1\">
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"50\" align=\"center\"><strong>$z.)</strong></td>
<td><strong>$row[titel]</strong> $row[seite]</td>
</tr>
<tr>
<td width=\"50\"> </td>
<td>";
$text = $row[text];
// Textformatierung wird geladen
include("inc/bbcode.inc.php");
// Text kürzen
$laenge = strlen($text);
if($laenge >= 200) {
$rest = substr("$text", 0, 200);
$rest = eregi_replace("$suche", "<strong>$suche</strong>", $rest);
echo "$rest ...";
} else {
$text = eregi_replace("$suche", "<strong>$suche</strong>", $text);
echo "$text<br>";
}
echo "<div align=\"right\"><a href=\"$row[seite]id=$row[id]&suche=$suche \"> .... mehr lesen</a> </div></td>
</tr>
</table>
</div><br />";
$z++ ;
}
Wobei fast alles korrekt angezeigt wird. Aber nur fast, den im unteren Bereich steht die Zeile :
Code:
<div align=\"right\"><a href=\"$row[seite]id=$row[id]&suche=$suche \"> .... mehr lesen</a> </div>
es sollte aber eigendlich
stadtteilentwicklung.php?rubrik=Koordination%20Bezirksamt&id=4&suche=Lurup
stehen.
Das Problem ist also, das "$row[seite]" nicht vollständig eingefügt wird, sondern nach genau 50 Zeichen abgebrochen wird. In der DB sind aber "varchar(200)" für die Spalte eingegeben. In der Anzeige von PhpMyAdmin (wo alle Datensätze dieser Tabelle aufgelistet sind) wird auch nach 50 Zeichen mit ... abgebrochen. Wenn man auf bearbeiten des Datensatzes geht, wird der Inhalt aber korrekt mit mehr als 50 Zeichen dargestellt.
Es sind alle Datensätze betroffen die länger als 50 Zeichen in der Spalte "seite" haben.
Und die Abfrage kürzt meiner Meinung nach nicht die Ergebnisse.
Was ist also da los?
Zur Information: vor kurzem wurde der Server auf php5 umgestellt. Bis dahin funktionierte alles.
dank im voraus für Eure Hilfe
zdek
PS: trotz suche hab ich nichts der gleichen gefunden...