Ergebnis 1 bis 8 von 8

Thema: Immer nächsten Datensatz aus MySQL abfrage.

  1. #1
    cem
    cem ist offline
    TP-Junior
    Registriert seit
    Jun 2012
    Ort
    Deutschland
    Beiträge
    7

    Immer nächsten Datensatz aus MySQL abfrage.

    Hi Community.

    War mal vor langer Zeit hier mal Mitglied. Gutes Forum.
    Bin Hobby Entwickler. Habe eigentlich das Programmieren eine ganze Weile ausgesetzt und will nun doch ein neues Privates Programm entwerfen.

    Ich brauche Ans�tze f�r meinem Problem.
    Ich lese Datens�tze aus einer MqSQL-DB in verschiedene Formularfelder auf einer HTML Seite aus. Name, Nachname, Ort, Telefonnummer etc.- Die Datens�tze importiere ich manuell per CSV in die DB. Haben auch eine Durchnummerierung, sprich fortlaufende ID. Beim aufrufen der Seite wird der erste Eintrag direkt in die Formularfelder eingelesen und entsprechend in die Values eingetragen. Ich habe auf dieser Seite einen "n�chsten Datensatz abfragen" Button, der noch nicht aktive (bzw. noch nicht programmiert) ist. �ber diesen Aktionsbutton will ich einfach nur den n�chsten Datensatz abrufen und in die entsprechenden Formularfelder einlesen. M�chte auf alle f�lle die Aktionen (Select, Update, Insert ) �ber ein und die selbe Seite durchf�hren. Wie gehe ich da am geschicktesten ran. Problem ist eben "bitte n�chsten Datensatz abrufen" nachdem ich auf den Button gedr�ckt habe. Mir kommt da nur do{ }while irgendwie in den Sinn, weil die beim Anrufen der Seite die erste Reihe ausgelesen wird. danach soll dann nach Best�tigung des Submit Buttons der n�chste und dann der n�chste u.s.w. in die Formularfelder ausgelesen werden. Danke liebe Leute von heute.

    Mein Versuch:
    .
    .
    .
    $conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
    if ($conID)
    {
    mysql_select_db( $db_name, $conID );
    }

    $sqlone = "SELECT id FROM `kundendaten` ";
    $ab = mysql_query( $sqlone, $conID );
    $abfrage = mysql_fetch_array($ab);
    $aktuelleid = $abfrage['id'];
    $aktuelleid ++;
    echo $aktuelleid;

    $sql = "SELECT vorname, nachname, strasse, plz, ort, FROM `kundendaten` WHERE id > '$aktuelleid' ";
    .
    .
    .
    Beim bestätigen des Submit-Buttons "nächsten Kundensatz" einlesen scheitere ich leider.
    Hoffe das Grundprinzip ist verstanden worden.
    Vielen Dank!
    Geändert von cem (21.06.2012 um 20:20 Uhr)

  2. #2
    Relaunch-Super-Mod Avatar von Florian
    Registriert seit
    Mar 2010
    Ort
    Berlin
    Beiträge
    136
    **OFF-TOPIC**

    Name:  Unbenannt-1.jpg
Hits: 316
Größe:  348,6 KB

    Hey Chem,
    ich kann dir leider mit deinem mySQL-Problem nicht helfen, bin aber stattdessen auf der Suche nach der Ursache für unseren Umlaute-Bug. Wie man unschwer oben in deinem Posting erkennen, bist auch du dem zum Opfer gefallen. Ich würde mich sehr freuen, wenn du uns kurz verrätst welches Betriebssystem und welchen Browser in welcher Version du verwendest. Außerdem ist es natürlich interessant zu wissen, ob du die Umlautefehler auch siehst.

    Schon jetzt besten Dank und für das mySQL-Problem findet sich bestimmt auch noch jemand!
    Florian

    ******

  3. #3
    cem
    cem ist offline
    TP-Junior
    Registriert seit
    Jun 2012
    Ort
    Deutschland
    Beiträge
    7
    Benutze Windows XP Pro und Firefox.

  4. #4
    TP-Insider Avatar von chorn
    Registriert seit
    Apr 2008
    Ort
    Verden
    Beiträge
    513
    Wäre interessant, wie du das aktuelle löst, ich gehe mal davon aus, dass du den aktuellen Datensatz per URL raussuchst, in etwa

    Code:
    ?DatensatzID=123
    Code:
    SELECT * FROM kundendaten WHERE id = $_GET...
    Dann hast du doch in deinem rot markierten Statement alle nächsten Datensätze rausgesucht. Praktisch brauchst du ja nur den nächsten, kannst das also beschränken

    Code:
    SELECT * FROM kundendaten WHERE id > $aktuelleid LIMIT 0,1
    dann holst du dir den Datensatz

    Code:
    $naechster = mysql_fetch_object( $query );
    und baust dir die neue URL

    Code:
    <a href="?DatensatzID=$naechster->id">nächster

  5. #5
    TP-Senior Avatar von Irrbert
    Registriert seit
    Oct 2003
    Ort
    Berlin
    Beiträge
    139
    warum > und nicht = ?

    $sql = "SELECT vorname, nachname, strasse, plz, ort, FROM `kundendaten` WHERE id = '$aktuelleid' ";

    ~~~~~~~ oh da war jemand schneller
    Dieser Beitrag wurde maschinell erstellt und ist ohne Unterschrift gültig.

  6. #6
    Relaunch-Super-Mod Avatar von Florian
    Registriert seit
    Mar 2010
    Ort
    Berlin
    Beiträge
    136
    **OFF-TOPIC**
    @cem: Welche Version vom Firefox? Sollte unter "Hilfe/Über" bzw. Info stehen.
    ****

  7. #7
    cem
    cem ist offline
    TP-Junior
    Registriert seit
    Jun 2012
    Ort
    Deutschland
    Beiträge
    7
    Eigentlich hatte ich schon die L�sung und die L�sung wurde auch schon in diesem Thread gennant.
    Der Ansatz war der das ich keine automatisch vergebende ID in meiner MqSQL hatte und die zu incrementierende ID selbst vorgegeben habe. Also bei ID 1 startend und dann immer weiter ID 2, ID 3. Die Datens�tze habe ich per CSV in die Datenbank eingelesen und habe da schon die ID's drin gehabt.
    Ich wollte einen Datensatz auslesen aus der DB und wenn mann auf Submit gedr�ckt hat sollte einfach der n�chste Datensatz erscheinen. Hier war nat�rlich f�r mich wichtig die aktuelle ID auszulesen und sie dann nachdem Auslesen zu incrementieren.
    Die L�sung war einfach das ich mit der startelos.php meine erste ID ausgelesen habe und diese dann incrementiert �ber ein hidden Feld an die losweiter.php �bermittel habe. Die erste ausgew�hlte ID bei startelos.php war nat�rlich die ID '1'. Mit der ID '1'konnte ich alles m�glich anstellen auf der startelos.php und habe dann die ID '1' die ich selbstverst�ndlich als variable gespeichert habe �ber ein hidden Feld �ber action="losweiter.php" so �bergeben. Dort habe ich sie dann incrementiert ID++ und aus ID '1' wurde dann ID '2'! So kann ich mir den n�chsten Datensatz mit der ID '2' die Daten in mein Formular auslesen lassen. DAS IST MEINE KOMMENDE �BERLEGUG: Als n�chstes werde ich die ID '2' nun per action="undweiter.php" an die 3te seite �bergeben lassen. Da wird dann aus ID '2' dann ID '3'. DER SPRINGENDE PUNKT IST NUN DER DAS ICH 3 SEITEN HABE DIE VOM AUFBAU UND DESIGN GLEICH SIND ABBBBBER NUN SPRINGT DIE SEITE IMMER PER ACTION VON "UNDWEITER.PHP" WIEDER AUF "LOSWEITER.PHP" UND VON LOSWEITER.PHP WIEDER AUF "UNDWEITER.PHP" AAAALLLSSOOO IMMER HIN UND HER! Start.php war also nur der Antragspunkt (eine initialisierung) und nun springe ich von der seite 2 auf seite 3 und von seite 3 wieder auf seite 2 und so weiter. Und das wichtigste ist eben das die �bergeben ID immer erh�ht wird. L�sung noch mal als Code:
    (startelos.php)
    .
    .
    .
    $sqleins = "SELECT kennung FROM `kundenadressen` ";
    $ab = mysql_query( $sqleins);
    $abfrage = mysql_fetch_array($ab);
    $aktuelleid = $abfrage['kennung'];
    echo $aktuelleid; echo "<br />";

    $sqlzwei = "SELECT vorname, nachname, strasse, plz, ort, telefon FROM `kundenadressen` WHERE kennung = '$aktuelleid' ";
    .
    .
    .
    .
    <input type="hidden" name="laufid" value="<?php echo $aktuelleid; ?>" size="5" style="border: 1px solid #999999; background-color: #CCCCCC"/>
    .
    .
    .
    .
    .
    .
    (losweiter.php)
    .
    .
    .
    nowid = $_POST['laufid'];
    $nowid++;
    echo $nowid;
    .
    .
    .
    $sqlzwei = "SELECT vorname, nachname, strasse, plz, ort, studio, telefon FROM `kundenadressen` WHERE kennung = '$nowid' ";
    .
    .
    .
    usw.
    ANSATZ OK!
    L�SUNG OK!
    ABER Pustekuchen, weil was ist wenn ich ein Mehrbenutzersystem haben will. F�r einen Benutzen am PC ist diese L�sung schon ok, aber was ist wenn ich 10 Benutzer habe die �ber die eine DB arbeiten sollen?! Was w�rdet Ihr vorschlagen. Was sollte ich machen? Jeden einzelnen User eine separate DB mit Kundens�tzen zuweisen. Oder jeden User markieren lassen und nur seine ihm zugewiesenen Daten bearbeiten lassen. Was k�nnt ihr mir vorschlagen?

    Ps.: Ich bin zwar kein Koch aber Pommes mit Schnitzel kann ich auch. Programmieren ist f�r mich so �hnlich.

  8. #8
    TP-Newbie
    Registriert seit
    Sep 2012
    Ort
    Thüringen
    Beiträge
    3
    Zitat Zitat von cem Beitrag anzeigen
    Beim bestätigen des Submit-Buttons "nächsten Kundensatz" einlesen scheitere ich leider.
    Hoffe das Grundprinzip ist verstanden worden.
    Vielen Dank!
    Du brauchst du nur den aktuellen Datensatz in einer GET-Variable zu speichern, zum Beispiel:
    Code:
    "...php?datensatz=1"
    Anhand der Variable erstellst du dein SQL-Query und holst dir den (in diesem Fall) ersten Datensatz, den du dann auf der Seite ausgibst.

    Im Anschluss erhöhst du den GET-Wert um 1:
    Code:
    $iDatensatz = strtoint($_GET['datensatz']);
    $iDatensatz_next = $iDatensatz + 1;
    Und nun erstellst du ein Formular, mit Action auf den nachfolgenden Datensatz:
    Code:
    <form action="...php?datensatz=<?php echo $iDatensatz_next; ?>"><input type="submit" value="N&auml;chster Eintrag" /></form>
    Ende Gelände. Ich hoffe das meintest du damit.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Datensatz-Lock in MySQL 3.3.9 ??
    Von Flow09 im Forum Traum-Dynamik
    Antworten: 3
    Letzter Beitrag: 04.05.2005, 18:10
  2. Antworten: 3
    Letzter Beitrag: 06.03.2005, 17:34
  3. einen datensatz aus mysql auslesen
    Von jph im Forum Traum-Dynamik
    Antworten: 1
    Letzter Beitrag: 18.01.2002, 16:41
  4. mysql datensatz anzeigen
    Von Akira im Forum Traum-Dynamik
    Antworten: 4
    Letzter Beitrag: 14.01.2002, 07:33
  5. Gelöschter Datensatz in MySQL
    Von querelle im Forum Traum-Dynamik
    Antworten: 7
    Letzter Beitrag: 11.12.2001, 17:18

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51