Formularergebnisse seitenweise ausgeben
Sonja
- php
Hallo,
das soll eigentlich eine einfache Sache sein, aber ich packs nicht.
Ich habe zwei php.Dateien. Mit der ersten bestimme ich beliebig 7 Variablen. Mit einem "Submit"-Button erscheinen in der zweiten Datei die Ergebnisse (alle Variablenmöglichkeiten in if-Statements gefasst). Das folgende Skript zeigt die 2. Datei.
Es erscheint allerings nur der erste Eintrag, beim zweiten Eintrag bekomme ich den Fehler, dass die Variablen nicht definiert sind. was kann ich da tun ?
<?php
$start = (isset($start)) ? abs((int)$start) : 0;
$limit = 1;
mysql_connect("Server", "Nutzer", "Passwort") or die;
mysql_select_db("Datenbank") or die;
if ($variable1 == "alle" && $variable2 == "alle")
{
$resultID = @mysql_query("SELECT COUNT(*) FROM datenbank");
$total = @mysql_result($resultID,0);
$start = ($start >= $total)? $total - $limit : $start;
$query = "SELECT * FROM datenbank LIMIT ".$start.",".$limit;
$resultID = @mysql_query($query);
while ($dsatz = mysql_fetch_array($resultID))
{
echo "<tr>";
echo "<td>" . $dsatz["variable1"] ."</td>";
echo "<td>" . $dsatz["variable2"] ."</td></tr>";
}
if ($start > 0)
{
$newStart = ($start - $limit < 0) ? 0: ($start-$limit);
echo "<a href=".$_SERVER['PHP_SELF']."?start=".$newStart."><< zurück</a>";
}
if ($start + $limit < $total)
{
$newStart = $start + $limit;
echo "<a href=".$_SERVER['PHP_SELF']."?start=".$newStart.">vor >></a>";
}
echo "</table>";
}
else if ($variable1 != "alle" && $variable2 == "alle")
{
$query = "SELECT * FROM datenbank where variable1='$variable1' and LIMIT ".$start.",".$limit;
$resultID = @mysql_query($query);
...
Hello,
Ich habe zwei php.Dateien. Mit der ersten bestimme ich beliebig 7 Variablen. Mit einem "Submit"-Button erscheinen in der zweiten Datei die Ergebnisse (alle Variablenmöglichkeiten in if-Statements gefasst). Das folgende Skript zeigt die 2. Datei.
Es erscheint allerings nur der erste Eintrag, beim zweiten Eintrag bekomme ich den Fehler, dass die Variablen nicht definiert sind. was kann ich da tun ?
Bahnhof?
Und welche Fehler kommen wo und wie hast Du die Fehlerwerte (Status-Werte) z.B. von MySQL berücksichtigt?
Ist Register-Globals eingeschaltet? Sieht nämlich so aus?
Woher kommen $variable1 und $variable2?
Fragen über Fragen?
Was willst Du überhaupt erreichen?
Bitte im Klartext und für meine Oma verständlich. ;-))
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Und welche Fehler kommen wo und wie hast Du die Fehlerwerte (Status-Werte) z.B. von MySQL berücksichtigt?
Ich habe dem Skript "error_reporting(E_ALL); " angefügt. Dadurch wird der Fehler angezeigt: Notice: Undefined variable: variable1 in /skript.php on line 19 usw. (d.h. jede if-Zeile, welche die Variablen ausliest)
Ist Register-Globals eingeschaltet? Sieht nämlich so aus?
Bei dieser Sache habe ich nichts gemacht. Kannst du mir sagen, wie ich das nachschauen und gegebenenfalls ändern kann ?
Woher kommen $variable1 und $variable2?
Die Variablen kommen aus dem ersten Skript. Es ist ein Formular mit 7 AUswahlfeldern, welche die Varibalen bestimmne. Ich habe hier nur 2 varibalen genommen, damit das Skript übersichtlicher erscheint.
Fragen über Fragen?
Was willst Du überhaupt erreichen?
Ich will erreichen, dass die Ergebnisse bei der jeweiligen Varibalenkombination seitenweise angezeigt werden. Bisher habe ich die Ergebnisse immr komplett auf einer Seite angezeigt bekommen. Jetzt will ich, dass jeweils nur 1 aufeinmal angezeigt werden.
Das erste Ergebnis wird ja angezeigt, beim zweiten kommt ide genannte Fehlermeldung.
Bitte im Klartext und für meine Oma verständlich. ;-))
War das jetzt klar genug ?
Hi,
Ist Register-Globals eingeschaltet? Sieht nämlich so aus?
Bei dieser Sache habe ich nichts gemacht. Kannst du mir sagen, wie ich das nachschauen und gegebenenfalls ändern kann ?
nutze phpinfo().
Das erste Ergebnis wird ja angezeigt, beim zweiten kommt ide genannte Fehlermeldung.
Kann es sein, dass du von der ersten Seite einen Link zur zweiten Seite hast?
Wenn dem so ist, woher soll die zweite Seite denn wissen, welche Werte in welcher Variable stehen.
MfG Hopsel
Kann es sein, dass du von der ersten Seite einen Link zur zweiten Seite hast?
Wenn dem so ist, woher soll die zweite Seite denn wissen, welche Werte in welcher Variable stehen.
Der Link geht eigentlich zur selben Seite:
if ($start + $limit < $total)
{
$newStart = $start + $limit;
echo "<a href=".$_SERVER['PHP_SELF']."?start=".$newStart.">vor</a>";
Aber auch ich denke diese Seite benötigt durch die Aktivierung des Links die Informationen der Variablen. Ich dachte die gehen automatisch mit, aber erkennt keine Zuordnung von Werten zu den Variablen.
Hi,
Ich dachte die gehen automatisch mit, aber erkennt keine Zuordnung von Werten zu den Variablen.
das tun sie nicht. Du musst sie also nochmal mitschicken.
MfG Hopsel
das tun sie nicht. Du musst sie also nochmal mitschicken.
Geht das irgendwie mit $_GET oder muss ich vor dem Link noch etwas ergänzen ?
hi,
das tun sie nicht. Du musst sie also nochmal mitschicken.
Geht das irgendwie mit $_GET oder muss ich vor dem Link noch etwas ergänzen ?
per GET werden die parameter übergeben, die du im query-string des links drin stehen hast - du müsstest sie also in diesen mit hineinbringen.
da die (maximal)länge einer URL in den browsern aber unterschiedlich limitiert ist, tut man idR. nicht gut daran, allzu viele parameter per GET übergeben zu wollen.
du könntest die von der vorherigen seite stammenden parameter abermals per formular übergeben (mit methode POST), in dem du sie nochmals in versteckten formularfeldern mitgibst.
oder aber, du beschäftigst dich mit sessions, und schreibst die werte der ersten seite bei deren verarbeitung schon in die session, und liest sie bei der verarbeitung der zweiten seite von dort wieder aus.
gruß,
wahsaga
Hi,
oder aber, du beschäftigst dich mit sessions, und schreibst die werte der ersten seite bei deren verarbeitung schon in die session, und liest sie bei der verarbeitung der zweiten seite von dort wieder aus.
was IMHO die beste Lösung ist, da nicht schwer zu erlernen und vielseitig einsetzbar.
MfG Hopsel
Hello,
Bitte im Klartext und für meine Oma verständlich. ;-))
War das jetzt klar genug ?
Naja, geht so :-)
Mach mal folgendes:
Bau ein valides Dokument in reinem HTML, das ein Formualar enthält.
Das action-Attribut des Forumulars füllst Du mit der URL eines Scriptes.
in das besagte Script schreibst Du rein:
<?php ### info.php ###
phpinfo();
?>
oder auch
<?php ### parameter.php ###
echo "<pre>\n";
<h3>POST</h3>
print_r($_POST);
<h3>GET</h3>
print_r($_GET);
<h3>COOKIE</h3>
print_r($_COOKIE);
<h3>SERVER</h3>
print_r($_SERVER);
<h3>Variablen</h3>
$_vars = get_defined_vars();
print_r($_vars);
echo "</pre>\n";
?>
http://de3.php.net/manual/de/function.get-defined-vars.php
Das Ganze dient dann dazu, Dir erstmal ein Gefühl für die Übertragungsmethoden zu schaffen und Überblick übe die Möglichkeiten zu geben.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
schau doch nochmal unter http://selfhtml.bitworks.de --> Besucherzähler.
Da habe ich die seitenweise Ausgabe für ein Flat-File mit einem serialisierten Array durchgeführt. Das ist zwar nicht ganz das gleiche, aber ich habe mich bemüht, die Funktionen universell zu halten.
Der nächste Schritt wäre nun die Übertragung auf eine DB.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom