Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Feld aus Liste selectieren MySQL - PHP (https://www.delphipraxis.net/129057-feld-aus-liste-selectieren-mysql-php.html)

Fritz01 11. Feb 2009 21:38


Feld aus Liste selectieren MySQL - PHP
 
Hallo guten Abend,
mit folgendem Code erstelle ich eine Liste aus einer AdressDatei.
Delphi-Quellcode:
<?php
  define('MYSQL_HOST', 'localhost');
  define('MYSQL_BENUTZER', 'root');
  define('MYSQL_KENNWORT', 'teste');
  define('MYSQL_DATENBANK', 'test');
  $db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);

  $db_sel = mysql_select_db( MYSQL_DATENBANK )
     or die('Auswahl der Datenbank fehlgeschlagen');

  $sql = "SELECT * FROM adressen ORDER BY nname LIMIT 20";

  $db_erg = mysql_query( $sql );
   if ( ! $db_erg )
   {
     die('Ungültige Abfrage: ' . mysql_error());
   }
   echo '<table width="200" border="0" cellspacing="1"
         cellpadding="3" align="right" bgcolor="#B0C4DE">';
    while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
    {
     echo '<tr bgcolor="#ffffee" >';
     echo '<td width="20%"><h6>'. $zeile['adnum'] . '</td>';
     echo '<td width="80%"><h6>'. $zeile['nname'] . '</td>';
     echo '</tr>' ;
    }
   echo '</table>';
   mysql_free_result( $db_erg );
?>
Nun meine Fragen:
1)Wie kann ich nun aus dieser Liste einen Datensatz selectieren, um dann zu diesem Satz weitere Anfragen zu starten?
2)In dieser Liste werden (wegen LIMIT 20) 20 Datensätze gelistet. Wie erreiche ich die nächsten 20 Datensätze?

Wer kann mir da helfen. Habe etliche Tutorials gelesen, aber genau dazu nichts gefunden.
Fritz

Florian H 11. Feb 2009 21:45

Re: Feld aus Liste selectieren MySQL - PHP
 
Zitat:

Zitat von Fritz01
Nun meine Fragen:
1)Wie kann ich nun aus dieser Liste einen Datensatz selectieren, um dann zu diesem Satz weitere Anfragen zu starten?
2)In dieser Liste werden (wegen LIMIT 20) 20 Datensätze gelistet. Wie erreiche ich die nächsten 20 Datensätze?

1) Ich verstehe die Frage nicht genau - was willst du tun? Ggf. geht das in Richtung JOINs, falls du zu jedem Eintrag aus der Adress-Tabelle z.B. noch die dazugehörigen Kundendaten haben willst?

2) Zeile 11:
Code:
$sql = "SELECT * FROM adressen ORDER BY nname LIMIT 20, 20";
Gibt dir 20 Einträge ab dem 20. Eintrag aus. Sprich: LIMIT X,Y: Y Einträge überspringen, dann Y Einträge anzeigen.

Fritz01 11. Feb 2009 22:14

Re: Feld aus Liste selectieren MySQL - PHP
 
Hallo Florian H,
dank dir für die schnelle Antwort.
Satz selectieren, mit click oder wie auch immer. Alle zu diesem Satz gehörigen Daten sollen dann in einem Formular dargestellt werden. Verbindung zu anderen DatenTabellen: Wann hat der welche Rechnung bekommen.
20, 20 hilft da auch nicht weiter. Da werden ebenfalls 20 Sätze gezeigt, beginnend mit dem 21.
20 Datensätze anzeigen ist ja OK. Was ist mit scrollen oder .... An dieser Stelle sitze ich schon seit Tagen fest :wall:
Vielleicht gibt es ja doch eine Lösung.
Danke
Fritz

Grolle 12. Feb 2009 07:19

Re: Feld aus Liste selectieren MySQL - PHP
 
Hallo Fritz01,

du musst die empfangenen Daten wieder in ein Formular (oder einen Link) einfügen, auf welche du dann weiter reagierst. Du könntest es über eine URL z. B. so machen:
Code:
echo '[url="http://www.deineseite.de/detailformular.php?userid='.$zeile['adnum'].'"]Details[/url]';
Du kannst dann in der Datei detailformular.php die Variable userid mit $_Get['userid'] oder mit $_REQUEST['userid']
Wenn du alle Datensätze ausgeben willst, lass das LIMIT doch einfach weg :gruebel:

Viele Grüße ....

Fritz01 12. Feb 2009 21:49

Re: Feld aus Liste selectieren MySQL - PHP
 
@Grolle,
ich hab's noch nicht getestet (zeitmangel) aber das WE steht ja vor der Tür.
zu 1)Die Daten werden in einer Schleife ermittelt und angezeigt. Sollte das wirklich so sein, daß zu jedem Datensatz ein solcher Verweis erforderlich ist?

Delphi-Quellcode:
echo '<table width="200" border="0" cellspacing="1"
         cellpadding="3" align="right" bgcolor="#B0C4DE">';
    while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
    { 
     echo '<tr bgcolor="#ffffee" >';

echo '[url="http://www.deineseite.de/detailformular.php?userid='.$zeile['adnum'].'"]Details[/url]';
 
     echo '<td width="20%"><h6>'. $zeile['adnum'] . '</td>';
     echo '<td width="80%"><h6>'. $zeile['nname'] . '</td>';
     echo '</tr>' ;
    } 
   echo '</table>';
   mysql_free_result( $db_erg );
zu 2) LIMIT einfach weglassen. Dann werden alle Datensätze gezeigt und die Seite wird dadurch "zerrissen" habe im Anzeigefeld hierfür aber nur ca. 20-25 Zeilen frei. Wie ist es möglich, oder geht das überhaupt?
Beste Grüße
Fritz

Grolle 12. Feb 2009 21:56

Re: Feld aus Liste selectieren MySQL - PHP
 
Hallo,
Zitat:

Zitat von Fritz01
1)Die Daten werden in einer Schleife ermittelt und angezeigt. Sollte das wirklich so sein, daß zu jedem Datensatz ein solcher Verweis erforderlich ist?

Ja, wie willst du sonst wissen, zu welchem Datensatz du die Details anzeigen willst?
Zitat:

Zitat von Fritz01
zu 2) LIMIT einfach weglassen. Dann werden alle Datensätze gezeigt und die Seite wird dadurch "zerrissen" habe im Anzeigefeld hierfür aber nur ca. 20-25 Zeilen frei. Wie ist es möglich, oder geht das überhaupt?

Vielleicht habe ich deine Frage nicht richtig verstanden. Wenn du nur immer ~25 Datensätze anzeigen willst, brachst du eine Blätterfunktion?!? Also LIMIT 0,25 auf der nächsten Seite LIMIT 25,25 ....

Viele Grüße ....


Edit: Hier findest du z. B. eine Blätterfunktion beschrieben: Klick

Fritz01 15. Feb 2009 16:06

Re: Feld aus Liste selectieren MySQL - PHP
 
@grolle,
danke für deine tipps. Habe es so gelöst:

Delphi-Quellcode:
// Spalte mit Auswahl-Link für Personentabelle
    $perstab .= '<td bgcolor="#ffffee"><h6>
   <a href="test.php';
    $perstab .= '?pname=' . urlencode($name);
    $perstab .= '&pid='. $zeile['adnum'];
    $perstab .= '">'. $zeile['adnum'] .' | '. $zeile['nname'] . '</a></td>';  
    $perstab .= '</tr>';
  }
  $perstab .= '</table>';
So steht also in dem Verweis adnum(ID) und der Name. Ist vielleicht nicht die eleganteste Lösung aber so geht es.

Zur Blätterfunktion: da dachte ich an eine Suchfunktion für den Namen, die bei jeder Eingabe eines Zeichens sofort reagiert und natürlich 'mitblättert'.
Beispiel: Eingabe 'M' , Ergebnis: Der erste Eintrag mit 'M' erscheint in der Mitte der Liste.
Vielleicht hast ja da auch einen Tipp wie man suchen und blättern kombinieren kann.
Schaun wir mal. Das wird dann meine nächste Aufgabe.
Nochmal danke
Fritz

Grolle 15. Feb 2009 16:30

Re: Feld aus Liste selectieren MySQL - PHP
 
Hi,
Zitat:

Zitat von Fritz01
Zur Blätterfunktion: da dachte ich an eine Suchfunktion für den Namen, die bei jeder Eingabe eines Zeichens sofort reagiert und natürlich 'mitblättert'.

das wird mit normalem PHP schwer (wegen dem Reload). Kann man aber mit AJAX relativ schnell umsetzen.

Viele Grüße ...

mkinzler 15. Feb 2009 16:34

Re: Feld aus Liste selectieren MySQL - PHP
 
Es würde sich auch eine Template-Engine anbieten

Fritz01 15. Feb 2009 18:25

Re: Feld aus Liste selectieren MySQL - PHP
 
Hallo ,
ach du großer Gott! Was ist bitte AJAX oder Template-Engine ?
Kann man HTML PHP und AJAX mischen? Wenn es nur so machbar ist, was solls.
Hat da jemand ein passendes Tutorial bzw Link zur Hand? Danke.
Fritz


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz