Moin,
ich bin anscheinend mal wieder blind.
Also hoffe ich auf gnädige Hilfe, ohne geköpft zu werden.
Folgendes Szenario:
Adressdatenbank. 2 Ausgabe-Möglichkeiten:
a) Alle Daten sortiert nach Name. Inkl. Seitenweise Anzeige. Funzt.
b) Suche nach mehreren Variablen, Seitenweise Ausgabe, Funzt nur bis zur ersten Seite.
Jetzt kommt das, was ich nicht ganz verstehe:
Als Ergebnis zu b) kommen 131 Adressen heraus (wenn man also nur einen Faktor wählt und sucht).
Ohne seitenweise Ausgabe müssten die eigentlich ausgegeben werden, es werden aber nur 25 angezeigt, danach kommen 2 verkrüppelte, leere Ausgabe-Tabellen, das wars (im Quelltext sind alle Adressen vorhanden, wahrscheinlich zu groß mit 245 Kb).
Also, Script fürs seitenweise blättern eingefügt, was ja unter a) läuft.
Hiernach folgt nur noch die Formatierung der Ausgabe.
Während die erste Seite korrekt angezeigt wird (Anzahl der Seiten, Ergebniss-Summe, Ergebnisse selbst),
wird ab der 2. Seite nichts mehr dargestellt.
Die Variablen [COLOR=red]$sqlstrg, $Anzahl und $result[/COLOR] scheinen leer zu sein.
Versuche ich diese auf der 2ten Seite mal mit <? echo ?> anzuzeigen, ist alles leer.
Nun gut, versuche ich das in den Link zu übergeben.
Also übergebe ich folgend:
Die Seitenlinks ändere ich z.B. so ab:
Funzt natürlich nicht, da $suche nun "\" vor jedem Hochkomma enthält.
Sollte der richtige SQLstrg [COLOR=green]"LAND LIKE 'DE' AND GRP LIKE 'XYZ'[/COLOR] heissen (und tut es auch), ergibt die Übergabe in der Adresszeile [COLOR=green]LAND LIKE \ 'DE\ ' AND GRP LIKE \ 'XYZ\ ' [/COLOR]
Er meckert dann an den Zeilen
herum.
Ergo: Entweder werden die benötigten Parameter gar nicht oder falsch übergeben....
Nicht das seitenweise blättern, sondern die Übergabe mislingt.
Was ich nicht verstehe, da er ja jedesmal die Abfrage neu erstellt, und eine Übergabe ja nicht nötig ist. Eigentlich.
Ich gehe von der Richtigkeit des restlichen Codes aus, da die Ausgabe auf der 1. Seite funzt.
Any ideas?
ich bin anscheinend mal wieder blind.
Also hoffe ich auf gnädige Hilfe, ohne geköpft zu werden.
Folgendes Szenario:
Adressdatenbank. 2 Ausgabe-Möglichkeiten:
a) Alle Daten sortiert nach Name. Inkl. Seitenweise Anzeige. Funzt.
b) Suche nach mehreren Variablen, Seitenweise Ausgabe, Funzt nur bis zur ersten Seite.
Jetzt kommt das, was ich nicht ganz verstehe:
Als Ergebnis zu b) kommen 131 Adressen heraus (wenn man also nur einen Faktor wählt und sucht).
Ohne seitenweise Ausgabe müssten die eigentlich ausgegeben werden, es werden aber nur 25 angezeigt, danach kommen 2 verkrüppelte, leere Ausgabe-Tabellen, das wars (im Quelltext sind alle Adressen vorhanden, wahrscheinlich zu groß mit 245 Kb).
Also, Script fürs seitenweise blättern eingefügt, was ja unter a) läuft.
PHP-Code:
<?
$Zeilen_pro_Seite = 15;
?>
//es folgt ein Suchstring, der beim Select hinzugefügt wird
<?
IF ($VName<>""):
$sqlstrg.="VName LIKE ";
$sqlstrg.="'%";
$sqlstrg.= $VName;
$sqlstrg.="%";
If ($Name <>"" OR $Str <>"" OR $Land <>"" OR $PLZ <>"" OR $Ort <>"" OR $Komm <>"" Or $Mail <>"" Or $Grp <>""):
$sqlstrg.="' AND ";
else:
$sqlstrg.="'";
endif;
endif;
IF ($Name<>""):
$sqlstrg.="Name LIKE ";
$sqlstrg.="'";
$sqlstrg.= $Name;
$sqlstrg.="%";
If ($Str <>"" OR $Land <>"" OR $PLZ <>"" OR $Ort <>"" OR $Komm <>"" Or $Mail <>"" Or $Grp <>""):
$sqlstrg.="' AND ";
else:
$sqlstrg.="'";
endif;
endif;
.
.
.
.
IF ($Grp<>""):
$sqlstrg.="Grp LIKE ";
$sqlstrg.="'";
$sqlstrg.= $Grp;
$sqlstrg.="%";
$sqlstrg.="'";
endif;
?>
//Anfangsposition auf "0", wenn Variable nicht gesetzt
<?php
if (!isset($Anfangsposition)) {
$Anfangsposition = 0;
}
?>
//HTML
<b class="header">Ergebnis der Suchanfrage: </b>
<br>
//Select-Abfrage incl. dem oben zusammengesetzten Suchstring
<?php
$sql1= "select VName, Name, Str, Land, PLZ, Ort, Komm, Grp, URL, Datum, Tel, Fax, Mail, Anr from addaten WHERE $sqlstrg AND check=1 ORDER BY Name LIMIT $Anfangsposition,$Zeilen_pro_Seite";
// Fürs eigentliche Ergebnis
$result=mysql_query($sql1);
// Für die Anzeige der Anzahl der gefundenen Treffer und der Seitenanzahl-Berechnung
$result1=mysql_query ("select VName, Name, Str, Land, PLZ, Ort, Komm, Grp, URL, Datum, Tel, Fax, Mail, Anr from addaten WHERE $sqlstrg AND check=1 ORDER BY Name");
//Hier beisst es sich nun
$Anzahl=mysql_num_rows($result1);
while ($zeile= mysql_fetch_array($result)) {
?>
Während die erste Seite korrekt angezeigt wird (Anzahl der Seiten, Ergebniss-Summe, Ergebnisse selbst),
wird ab der 2. Seite nichts mehr dargestellt.
Die Variablen [COLOR=red]$sqlstrg, $Anzahl und $result[/COLOR] scheinen leer zu sein.
Versuche ich diese auf der 2ten Seite mal mit <? echo ?> anzuzeigen, ist alles leer.
Nun gut, versuche ich das in den Link zu übergeben.
Also übergebe ich folgend:
PHP-Code:
$suche= $sqlstrg;
PHP-Code:
echo "<a href=\"adressen.php?dat=ergebnis.php&Anfangsposition=$fwd&sqlstrg=$suche\"><br>eine Seite weiter ></a>| ";
Sollte der richtige SQLstrg [COLOR=green]"LAND LIKE 'DE' AND GRP LIKE 'XYZ'[/COLOR] heissen (und tut es auch), ergibt die Übergabe in der Adresszeile [COLOR=green]LAND LIKE \ 'DE\ ' AND GRP LIKE \ 'XYZ\ ' [/COLOR]
Er meckert dann an den Zeilen
PHP-Code:
$Anzahl=mysql_num_rows($result1);
while ($zeile= mysql_fetch_array($result)) {
Ergo: Entweder werden die benötigten Parameter gar nicht oder falsch übergeben....
Nicht das seitenweise blättern, sondern die Übergabe mislingt.
Was ich nicht verstehe, da er ja jedesmal die Abfrage neu erstellt, und eine Übergabe ja nicht nötig ist. Eigentlich.
Ich gehe von der Richtigkeit des restlichen Codes aus, da die Ausgabe auf der 1. Seite funzt.
Any ideas?
Kommentar