php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.08.2005, 12:05  
Gast
 
Beiträge: n/a
Standard [erledigt] Abfrage langer Listen und deren Anzeige

Hat zwar mit MySQL und Html Formularen zu tun, aber ich denke es gehört ins Anfängerforum.
Mein Programm läuft schon ganz gut.
Nun folgendes: Ich will eine SQL Abfrage ggf. auf mehreren Seiten anzeigen, wegen deren Länge.
Das ich das mit LIMIT mache ist klar.
Das Problem ist eher grundlegender Struktur.

Aufbau des Scriptes.

1. Funktionen z.B
PHP-Code:
<?php
anzeigen
() //hier wird die SQL select Abfrage durchgeführt.
?>
2. Html Formular mit Auswahlmöglichkeiten der Suchkriterien.
Poste ich mal nicht, ist standard.
3. Bei einem Klick auf Submitbutton1 werden die Daten eingelesen und an
PHP-Code:
<?php
anzeigen
()
?>
übergeben.
4. Mit einem weiteren Submitbutton2 will ich nun die weiteren Ergebnisse anzeigen. also LIMIT 10 bis 20 oder so.
Das Problem ist, das mein Formular nach dem Aufruf Submitbutton1 die Daten wieder vergisst. (Das Script ruft sich selbst auf, ist nicht anders zu lösen, sry).

Mögliche Lösung: ???
Müsste ich die Suchanfrage von Submitbutton1 bzw anzeige() in ein Array speichern ? Oder wie.
Erstmal genug, ich denke ihr wisst was ich meine. Wenn nicht kurz Fragen bitte.
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 26.08.2005, 12:18  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Du könntest einfach die zur Suche notwendigen Daten aus dem ersten Aufruf in einem hidden-Feld im neuen Formular wieder angeben.

Einfaches Speichern in einem Array bringt ja nix, weil das Array bei einem erneuten Aufruf natürlich auch weg ist.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 26.08.2005, 12:19  
Gast
 
Beiträge: n/a
Standard

Stimmt damit deine Funktion weis wo Sie grad ist brauchts Du sessions dann Kannst Du den Satzzeiger in einer Session Variablen speichern und beim nächsten von da aufrufen.
Gruß
Peterkh
 
Alt 26.08.2005, 12:24  
Gast
 
Beiträge: n/a
Standard

Hier mal ein Teil des Codes:

PHP-Code:
<?php
if (isset($_POST['subm2']))    // Der SubmitButton1 ->Normale anzeige
{
    
$orderby=$_POST['bedingung'];
    
$laenge=$_POST['laenge'];
    
$search=$_POST['fsearch'];
    
$reihenfolge=$_POST['reihenfolge'];
    
$orderby=$_POST['action'];
    
$kategorie=$_POST['kategorie'];
/* Verbindung aufbauen, auswählen einer Datenbank */

    
$link mysql_connect("localhost""root""GRAU_7")
    or die(
"Keine Verbindung möglich: " mysql_error());
    echo 
"Verbindung zum Datenbankserver erfolgreich
"
;
    
mysql_select_db("t3_2005") or die("Auswahl der Datenbank fehlgeschlagen
"
);


/* Ausgabe der Ergebnisse in HTML */

    
anzeigen($reihenfolge,$search,$orderby,$laenge,$xxx[1],$xxx[2]);
}

if (isset(
$_POST['subm3'])) {$laenge="2"// Der Submitbutton 2
anzeigen($reihenfolge,$search,$orderby,$laenge);} // Hier fehlen logischerweise die Daten, werden ja nur in SubmitButton1 gesetzt
else { echo "nicht";}

/* schliessen der Verbinung */
    
mysql_close$link);

?>
?>
Lese ich die Daten vor den Submitbuttons ein stehen ja nur Standardwerte drin.
Bringt also nix
 
Alt 26.08.2005, 12:24  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

@peterkh:
Wolltest Du jetzt sagen "Stimmt" oder "brauchst Du sessons"?

Wenn im neuen Formular die notwendigen Daten stehen und natürlich auch ein Feld für die aktuelle Position für die Anzeige, sollte das doch auch ohne Sessions gehen.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 26.08.2005, 12:25  
Gast
 
Beiträge: n/a
Standard

Gut, dann mach ich mich mal über Sessions schlau.
Danke.
 
Alt 26.08.2005, 12:32  
Gast
 
Beiträge: n/a
Standard

Sorry @Der_Gerhard hatte deinen Post übersehen.

Brauche im Moment keine Sessions.
Das mit dem Hidden Feld verstehe ich nicht ganz. Würden die Felder nicht auch überschrieben ? Wie gesagt das Script ruft sich jedes mal selbst auf. Dann würden doch auch die Hiddenfelder neu initialisiert. Oder sehe ich das Falsch. Muss wohl noch ein bisschen grübeln.
Trotzdem danke für den Denkanstoß.
 
Alt 26.08.2005, 12:45  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Meine Frage ging eigentlich an peterkh. Du hattest Dein Posting nur noch davor gequetscht.

Du erzeugst doch jedesmal ein neues Formular, wo der zweite Submit-Button drinsteht.

Dabei kannst Du auch die anderen nötigen Felder dynamisch erzeugen. Die müssen natürlich auch in dem <form> stehen, wo der submit-Button 2 steht.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 26.08.2005, 12:58  
Gast
 
Beiträge: n/a
Standard

Ich hab den Code vorher nciht gesehen aber ich brauche nicht mehrere submits wenn ich den Datensatzzeiger in einer Sessionvariablen aufbewahre.


Peterkh
 
Alt 26.08.2005, 13:09  
Gast
 
Beiträge: n/a
Standard

Ich werde beide Lösungsvorschläge mal probieren. Über Sessions mache ich mich gerade schlau !
Jetzt weiß ich was du meinst Gerhard. Bisher steht der SubmitButton2 (weitere Datensätze durchsuchen) immer im Formular. Das mit dem dynamisch erzeugen hatte ich bisher nicht bedacht. Packe ich das Forumular einfach in eine Funktion. Die kann ich dann ja immer aufrufen. Ich probiers mal.

Hier mal ein guter Einstieg zu Sessions

http://www.php-faq.de/q/q-sessions-wie.html


Wow, das mit Sessions funktioniert Super.
Einfach die Suchkriteriern für die Anfrage in Sessionvariablen speichern und
dann auf Wunsch Suchanfrage mit diesen Daten aufrufen.
Super easy. Ich bin stolz wie Oskar. :P
Daaaaaaaaaanke. Poste noch mal den korrigierten Code.
Vielleicht braucht ihn ja jemand.
Guckst du hier:



PHP-Code:
<?php
if (isset($_POST['subm2']))    
{
    
$laenge=$_POST['laenge'];
    
$search=$_POST['fsearch'];
    
$reihenfolge=$_POST['reihenfolge'];
    
$orderby=$_POST['action'];
    
$kategorie=$_POST['kategorie'];

    
$offset=0;
    
$xxx=uidtouser();
    echo 
"Rückgabewert:
"
;
    echo 
"$xxx[0], $xxx[1], $xxx[2]";

$_SESSION['laenge'] = $laenge;
$_SESSION['offset'] = $offset;
$_SESSION['search'] = $search;
$_SESSION['reihenfolge'] = $reihenfolge;
$_SESSION['orderby'] = $orderby;
$_SESSION['xxx1'] = $xxx[1];
$_SESSION['xxx2'] = $xxx[2];

/* Ausgabe der Ergebnisse in HTML */

    
anzeigen($reihenfolge,$search,$orderby,$offset,$laenge,$xxx[1],$xxx[2]);
}


if (isset(
$_POST['subm3'])) {

$_SESSION['offset']=$_SESSION['laenge']+$_SESSION['offset'];
$laenge=        $_SESSION['laenge'];
$offset=        $_SESSION['offset'];
$search=         $_SESSION['search'];
$reihenfolge=    $_SESSION['reihenfolge'];
$orderby=        $_SESSION['orderby'];
$xxx[1]=        $_SESSION['xxx1'];
$xxx[2]=        $_SESSION['xxx2'];

echo 
"$orderby $laenge $search $reihenfolge";
anzeigen($reihenfolge,$search,$orderby,$offset$laenge,$xxx[1],$xxx[2]);}
else { echo 
"nicht";}
?>
Sorry für die xxx Variablen. Der Code ist noch nicht ganz sauber. Mach ich am WE.
Code ist nur ein Ausschnitt.
LIMIT gemacht mit $offset, $laenge.
Und am Anfang auch nicht session_start(); vergessen

So keep on Coding....
 
 


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
[Erledigt] Wie mach ich am geschicktesten die Abfrage Multiplex PHP Tipps 2008 13 15.07.2008 16:51
[Erledigt] MySql Frage: Problem mit einer etwas lomplexeren Abfrage tomtaz Datenbanken 5 24.06.2008 22:36
[Erledigt] Abfrage Datenbank+ Schleifenprobleme safi20 PHP Tipps 2008 5 17.06.2008 18:15
[Erledigt] Datenbank abfrage Potterfans PHP Tipps 2008 4 12.06.2008 22:37
[Erledigt] MySQL Abfrage über mehrere Tabellen [Erledigt] Datenbanken 2 14.10.2005 13:37
[Erledigt] IF() abfrage in variable packen PHP Tipps 2005 14 01.04.2005 17:23
[Erledigt] DIV´s wollen nicht wie ich das will :-) HTML, Usability und Barrierefreiheit 22 28.03.2005 18:36
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
Abfrage aus DB noch mal ausgeben und Abfrage aus mehrern Tab PHP Tipps 2004 4 12.07.2004 15:00

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mysql satzzeiger an anfang stellen, ein langer query oder mehrere kleine, php mysql satzzeiger anfang

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:34 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.