php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.03.2009, 13:52  
Benutzer
 
Registriert seit: 17.03.2009
Beiträge: 30
BjoernSchmitt befindet sich auf einem aufstrebenden Ast
Standard Probleme mit PHP nach Formular Auswahl

So, ich hoffe das ist das letzte Problem meiner Seite.
Ich habe ein Formular erstellt (methode=get) in dem man bestimmte Flugzeuge auswählen kann. Nun klappt das auch soweit mit meinem PHP Script. Es sollen 12 Datensätze angezeigt werden. Sind nur 10 passende in der Datenbank ist alles in Ordnung. Sind es aber mehr als 12 erscheint ein Next Button (was zunächst super ist) klicke ich aber darauf erscheinen nicht die nächsten des Kriteriums sonder alle Datensätze die in der Datenbank sind nach ID nummern sortiert. Ich glaub da stimmt nur eine kleinigkeit nicht aber ich sitze irgenwie auf dem schlauch...

PHP-Code:
<?php

mysql_connect
("..."); 
mysql_select_db("..."); 
$trimmed trim($_GET['aircraft']); 

$limit=12

if (!isset(
$_GET['offset'])) {
    
$offset 0;
} else {
    
$offset $_GET['offset'];
}

 
$numresults=mysql_query("SELECT * FROM bilder WHERE type3 LIKE '%$trimmed%' ORDER BY id desc");
 
$numrows=mysql_num_rows($numresults);

 
$result mysql_query("SELECT * FROM bilder WHERE type3 LIKE '%$trimmed%' ORDER BY id desc");

$pages=intval($numrows/$limit);

if (
$numrows%$limit) {
    
$pages++;
}

for (
$i=1;$i<=$pages;$i++) { 
    
$newoffset=$limit*($i-1);
    print 
"<a href=\"$PHP_SELF?offset=$newoffset\" class=\"Stil97\" >$i</a> &nbsp; \n";
}

$count 0;

while (
$row mysql_fetch_array($result)) {

            
$title     $row["dateiname"];
            
$img       $row["vorschau"];
            
$description "Photo-ID: "$row["id"] ."<br /><br />
                            Airline: " 
$row["name"] . "<br />
                            Aircraft: " 
$row["type2"] . "<br /> 
                            Registration: " 
$row["reg"] . "<br /><br /> 
                            Date: " 
$row["datum"] . "<br /><br /> 
                            Location: " 
$row["ort"] . "<br /><br />
                            Views: " 
$row["views"] . "<br /><br />
                            Remarks: " 
htmlspecialchars($row["beschreibung"]) . "<br />"
;

            
$id        $row["id"];
            
            echo 
"<table ....

Anzeige Script der Bilder...
            
            .... echo "
</table>";          
}

$count++;

if ($offset > 0) {
    $offset_prev = $offset - $limit;
    echo "
&nbsp;<a href=""$_SERVER['PHP_SELF'] ."?offset=$offset_prev\"><img src=\"gfx/previous.gif\" border=\"0\" alt=\"previous photos\" /></a>"; }

if (
$offset < ($numrows $limit)) {
    
$offset_next $offset $limit;
    echo 
"&nbsp;<a href=\""$_SERVER['PHP_SELF'] ."?offset=$offset_next\"><img src=\"gfx/next.gif\" border=\"0\" alt=\"next photos\" /></a>"; }

?>
BjoernSchmitt ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.03.2009, 15:10  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

hmm.. soll das so eine art blätterfunktion werden?

das problem scheint einfach nur zu sein, das du beim auslesen aus der datenbank kein limit angibst

PHP-Code:
$sql_limit  = ($offset $limit $limit) . ', ' $limit;

$result mysql_query("SELECT * FROM bilder WHERE type3 LIKE '%$trimmed%' ORDER BY id desc LIMIT " $sql_limit); 
das ist jetzt geraten.

und die sql-abfrage zweimal auszuführen macht keinen sinn, du kannst auch mit nur einer abfrage die anzahl der zeilen mit mysql_num_rows() ermitteln.

du kannst dir auch hier mal zwei blätterfunktion von mir anschauen:

php4yourself.de - Einfache Blätterfunktion
und
php4yourself.de - Intelligente Seitennavigation

Geändert von Asipak (29.03.2009 um 15:17 Uhr).
Asipak ist offline  
Alt 29.03.2009, 15:45  
Benutzer
 
Registriert seit: 17.03.2009
Beiträge: 30
BjoernSchmitt befindet sich auf einem aufstrebenden Ast
Standard

oh mann, klar, das ich das nicht gesehen hab. Klar muss ich ein Limit angeben.
Das Problem ist nur das ich z.B. 2 Seiten angezeigt bekomme, dann ist die erste Seite korrekt und wenn ich die 2. Seite anwähle bzw. auf next klicke erscheint eine ganze andere Seite, als die, die ich als Seite 2 erwarte, nämlich die, die datensatz 13-24 enthält.
BjoernSchmitt ist offline  
Alt 29.03.2009, 15:48  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

aber 13-24 entspricht doch der seite 2?!!?

oder was ist dein problem, was/welche einträge wird/werden dir angezeigt?
Asipak ist offline  
Alt 29.03.2009, 15:57  
Benutzer
 
Registriert seit: 17.03.2009
Beiträge: 30
BjoernSchmitt befindet sich auf einem aufstrebenden Ast
Standard

nein es werden keine datensätze 13-24 ausgegeben, sondern die Suche springt einfach irgendwo anders hin...

Siehe hier:
WORLD-OF-AVIATION.DE - Bjoern Schmitt Aviation Photography - Most recent additions to Gallery

Klick dann einfach mal auf die kleine 2 über den Datensätzen.
Eigentlich sollten weitere Airbus A340 folgen...erscheinen aber nicht.
BjoernSchmitt ist offline  
Alt 29.03.2009, 16:00  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

der offset ist falsch (bzw. entweder offset oder limit, wie man möchte)

PHP-Code:
for ($i=1;$i<=$pages;$i++) { 
    
$newoffset=$limit*($i-1);
    print 
"<a href=\"$PHP_SELF?offset=$newoffset\" class=\"Stil97\" >$i</a> &nbsp; \n";

änder in

PHP-Code:
for ($i=1;$i<=$pages;$i++) { 
    print 
"<a href=\"$PHP_SELF?offset=$i\" class=\"Stil97\" >$i</a> &nbsp; \n";

und nochmal versuchen

Geändert von Asipak (29.03.2009 um 16:04 Uhr).
Asipak ist offline  
Alt 29.03.2009, 16:03  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Und Du musst Dich entscheiden, ob Du den Offset hier
PHP-Code:
for ($i=1;$i<=$pages;$i++) { 
    
$newoffset=$limit*($i-1); 
oder hier
PHP-Code:
$sql_limit  = ($offset $limit $limit) . ', ' $limit
ausrechnen lässt. Doppelt ist jedenfalls einmal zu viel.
David ist offline  
Alt 29.03.2009, 16:04  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

in der url fehlt zudem die angabe zum typ, das heißt du musst deine links anpassen: aircraft=A340 fehlt. woher diese angabe kommt, weist du sicher besser als wir und kannst sie noch hinzufügen, sonst sucht er in allen typen

Geändert von Asipak (29.03.2009 um 16:07 Uhr).
Asipak ist offline  
Alt 29.03.2009, 16:15  
Benutzer
 
Registriert seit: 17.03.2009
Beiträge: 30
BjoernSchmitt befindet sich auf einem aufstrebenden Ast
Standard

Danke schonmal für eure Bemühungen:
@Asipak (1): habs geändert, keine Änderungen...
@Asipak (2): welche Links? In der URL Zeile erscheint doch searchaircraft.php?aircraft=A340
erst wenn ich auf die 2 oder Next klicke erscheint searchaircraft.php?offset=2, und da steckt ja irgenwo der Fehler...warum offset=2 ????
@David: Hab deine Empfehlungen eingearbeitet, auch keine Veränderungen oder muss ich bei $result das LIMIT rausnehmen?

PHP-Code:
<?php

mysql_connect
("..."); 
mysql_select_db("..."); 
$trimmed trim($_GET['aircraft']); 

$limit=12

if (!isset(
$_GET['offset'])) {
    
$offset 0;
} else {
    
$offset $_GET['offset'];
}

 
$numresults=mysql_query("SELECT * FROM bilder WHERE type3 LIKE '%$trimmed%' ORDER BY id desc");
 
$numrows=mysql_num_rows($numresults);

 
$result mysql_query("SELECT * FROM bilder WHERE type3 LIKE '%$trimmed%' ORDER BY id desc Limit $offset, $limit") or die("Couldn't execute query");

$sql_limit  = ($offset $limit $limit) . ', ' $limit;

$pages=intval($numrows/$limit);

if (
$numrows%$limit) {
    
$pages++;
}

for (
$i=1;$i<=$pages;$i++) { 
    print 
"<a href=\"$PHP_SELF?offset=$i\" class=\"Stil97\" >$i</a> &nbsp; \n";
}

$count 0;

while (
$row mysql_fetch_array($result)) {

            
$title     $row["dateiname"];
            
$img       $row["vorschau"];
            
$description "Photo-ID: "$row["id"] ."<br /><br />
                            Airline: " 
$row["name"] . "<br />
                            Aircraft: " 
$row["type2"] . "<br /> 
                            Registration: " 
$row["reg"] . "<br /><br /> 
                            Date: " 
$row["datum"] . "<br /><br /> 
                            Location: " 
$row["ort"] . "<br /><br />
                            Views: " 
$row["views"] . "<br /><br />
                            Remarks: " 
htmlspecialchars($row["beschreibung"]) . "<br />"
;

            
$id        $row["id"];
            
            
Bild-Ausgabe...
$count++;

if (
$offset 0) {
    
$offset_prev $offset $limit;
    echo 
"&nbsp;<a href=\""$_SERVER['PHP_SELF'] ."?offset=$offset_prev\"><img src=\"gfx/previous.gif\" border=\"0\" alt=\"previous photos\" /></a>"; }

if (
$offset < ($numrows $limit)) {
    
$offset_next $offset $limit;
    echo 
"&nbsp;<a href=\""$_SERVER['PHP_SELF'] ."?offset=$offset_next\"><img src=\"gfx/next.gif\" border=\"0\" alt=\"next photos\" /></a>"; }

?>
BjoernSchmitt ist offline  
Alt 29.03.2009, 16:17  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von BjoernSchmitt Beitrag anzeigen
@Asipak (2): welche Links? In der URL Zeile erscheint doch searchaircraft.php?aircraft=A340
Und wenn ich auf die 2 klicke, steht da http://www.world-of-aviation.de/searchaircraft.php?offset=2
winke winke aircraft=A340
David ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP: Formular Generator Zergling-new Tutorials 16 06.07.2010 03:14
PHP Formular Probleme kobo2000 PHP Tipps 2009 20 25.01.2009 17:04
[Erledigt] Textfeld mit Auswahl Ramona86 JavaScript, Ajax und mehr 5 14.11.2008 11:15
[Erledigt] PHP Formular E-Mail macht Probleme[Code Richtig] mcavus PHP Tipps 2008 13 07.09.2008 14:58
[Erledigt] Datensätze löschen nach Auswahl aus Formular (checkboxen) asyoulikeit Datenbanken 3 13.06.2008 15:56
Wert aus Textfeld in neues Formular übernehmen (kein Submit) PsychoEagle HTML, Usability und Barrierefreiheit 9 02.01.2007 14:51
Probleme mit formular... skytrance PHP Tipps 2006 25 27.04.2006 16:21
[Erledigt] Formular in Formular HTML, Usability und Barrierefreiheit 4 19.10.2005 12:18
Probleme mit Formular PHP Tipps 2005-2 3 08.09.2005 16:00
Probleme mit sehr großem Formular PHP Tipps 2005-2 4 01.09.2005 09:52
Probleme mit Formular und Variablen PHP Tipps 2005 6 04.04.2005 14:58
Probleme mit Formular PHP Tipps 2005 8 15.02.2005 15:44
Probleme mit POST ohne Formular PHP-Fortgeschrittene 7 20.09.2004 21:52
[Erledigt] Probleme mit dem anzeigen von Daten in einem Formular PHP Tipps 2004 2 26.07.2004 19:29
Formular Probleme!! Boennchen PHP Tipps 2004 4 12.07.2004 12:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
formularauswahl mit bildern, formularauswahl, probleme bei php formular, http://www.php4yourself.de/project-intelligente-seitennavigation-2.html, php nach auswahl neue auswahl, php auswahl select geht nicht, auswahl formulare in php, formularauswahl datenbank php, php probleme mit offset, nach $row auswahl eines datensatzes php, php formular auswahlmöglichkeit

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum