Re: nachträglich eine lfd. Nummer vergeben - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Sander (8133 Beiträge) am Montag, 3.Dezember.2001, 19:22.
    Re: nachträglich eine lfd. Nummer vergeben

      noch ein bischen präziser:
      $Nr++; benutzt erst den Wert von Nr und addiert danach, ++$Nr; addiert erst und benutzt dann den Wert an der Stelle im Code.
      

      Sander


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Oliver ;-) (439 Beiträge) am Montag, 3.Dezember.2001, 10:47.
    nachträglich eine lfd. Nummer vergeben

      Hallo,

      ich möchte in einer DB nachträglich den Datensätzen nachträglich eine lfd. Nummer vergeben bzw. die vorhandenen Nummern durch neue ersetzen.

      Ich habe es so versucht, aber es funktioniert nicht:

      $Nr="0";
      get "Id==*", "../register";
      while (get_next("../register"))
      {
      $Nr++;
      mod "Id==$_id", ["Nr",$Nr], "../register";
      }
      

      Grüße
      Oliver ;-)

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 3.Dezember.2001, 11:37.
    Re: nachträglich eine lfd. Nummer vergeben

      Wozu brauchst Du die laufende Nummer denn? Reichts nich, das nur bei der Ausgabe zu machen?

      <loop>
      Nr: $_loop
      Feld: $Feld
      
      ...etc.
      </loop>

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 3.Dezember.2001, 11:38.
    Re: nachträglich eine lfd. Nummer vergeben

      Du überschreibst dir die nummer immer mit dem holen

      $Nrneu="0";
      get "Id==*", "../register";
      while (get_next("../register"))
      {
      mod "Id==$_id", ["Nr",$Nrneu++], "../register";
      }
      

      Sander

     Antworten

    Beitrag von Olaf Mertgen (263 Beiträge) am Montag, 3.Dezember.2001, 17:25. WWW: www.shareware4u.de
    Re: nachträglich eine lfd. Nummer vergeben

      Müsste es nicht ++$Nrneu heißen?

      Gruß, Olaf

     Antworten

    Beitrag von fb (406 Beiträge) am Montag, 3.Dezember.2001, 17:30.
    Re: nachträglich eine lfd. Nummer vergeben

      nein
      ein doppeltes plus addiert 1 zu dem wert der vorangestellten variable.

      $Nr = 1;
      $Nr++;
      

      $Nr ist jetzt 2

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 3.Dezember.2001, 19:22.
    Re: nachträglich eine lfd. Nummer vergeben

      noch ein bischen präziser:
      $Nr++; benutzt erst den Wert von Nr und addiert danach, ++$Nr; addiert erst und benutzt dann den Wert an der Stelle im Code.
      

      Sander

     Antworten

    Beitrag von Oliver ;-) (500 Beiträge) am Montag, 3.Dezember.2001, 18:04.
    Re: nachträglich eine lfd. Nummer vergeben

      Hallo Sander,

      ich hab's mal ausprobiert. Wenn ich die Aktion starte wird offensichtlich nur die Nr des ersten Datensatzes hochgezählt.

      Nach einem Abruch meinerseits hatte der erste Ds die Nr. 259 - die anderen waren unverändert.

      Grüße
      Oliver ;-)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 3.Dezember.2001, 19:23.
    Re: nachträglich eine lfd. Nummer vergeben

      ist das auch bei netdirekt?

      Sander

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 3.Dezember.2001, 19:24.
    Re: nachträglich eine lfd. Nummer vergeben

      achso, wenn ja, dann probier mal mit range beim get und teil das umschreiben auf.

      Sander

     Antworten

    Beitrag von Oliver ;-) (439 Beiträge) am Montag, 3.Dezember.2001, 19:36.
    Re: nachträglich eine lfd. Nummer vergeben

      hmmm...

      kannst du mir das mal genauer erklären?

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 3.Dezember.2001, 19:56.
    Re: nachträglich eine lfd. Nummer vergeben

      also du änderst das etappenweise. Ist doch nur ne einmalige umschreibung, oder?

      $Nrneu="0";
      get "Id==* range=0,50", "../register";
      while (get_next("../register"))
      {
      mod "Id==$_id", ["Nr",$Nrneu++], "../register";
      }
      

      wenn es durchgelaufen ist nimmst du range=50,50 usw
      ich hab meine db auch mit 50er range geändert, 100 waren schon zuviel.

      Sander

     Antworten

    Beitrag von Oliver ;-) (439 Beiträge) am Montag, 3.Dezember.2001, 20:18.
    Re: nachträglich eine lfd. Nummer vergeben

      Ich hab's so eingebaut. Das Ergebnis sieht so aus:

      ----------------------------------------
      [ Fehler: Die vorige Aktion ist mitten in der Bearbeitung der Datenbank register abgebrochen worden, wahrscheinlich da diese zu lange dauerte oder zuviel Speicher beanspruchte. Die ursprüngliche Version der Datenbank ist wiederhergestellt worden.
      Bitte prüfen Sie unbedingt, was die Ursache für den Abbruch war!

      Möglichkeiten:

      Die Datenbank ist für die Aktion (z.B. Felder ändern/löschen) zu gross.
      Sie verwenden zu grosse Schleifen (u.U. Endlosschleife?) in Ihrem Code.
      Sie benötigen sehr viel Speicher, z.B. indem Sie grosse Datenbank komplett laden, statt nur die gewünschten Einträge auszuwählen.

      -------------------------------------------------

      Außerdem hat der erste Eintrag nun die Nummer 323

      Oliver ;-)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 3.Dezember.2001, 21:09.
    Re: nachträglich eine lfd. Nummer vergeben

      also muß der range noch weiter runter..

      Sander

     Antworten

    Beitrag von Oliver ;-) (49 Beiträge) am Dienstag, 4.Dezember.2001, 09:20.
    Re: nachträglich eine lfd. Nummer vergeben

      Moin, moin,

      ich habe range jetzt auf "0,5" gesetzt.

      Es rödelt immer noch! Und wenn ich es abbreche, ist nur der erste Datensatz verändert...

      Oliver ;-)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Dienstag, 4.Dezember.2001, 10:23.
    Re: nachträglich eine lfd. Nummer vergeben

      ach ja, da fällt mir ein, das bei einer änderung in der selben db im get_next unbedingt mit dem Ergebniss gearbeitet werden muß - warum weiß ich nicht. Ich bin auch schon an diesem Problem verzweifelt.

      $Nrneu="0";
      get "Id==*", "../register","holen";
      while (get_next("holen"))
      {
      mod "Id==$_id", ["Nr",$Nrneu++], "../register";
      }
      

      nun sollte es klappern, kannst es ja erst mal wieder ohne Range probieren.

      Sander

     Antworten

    Beitrag von Oliver ;-) (49 Beiträge) am Dienstag, 4.Dezember.2001, 11:07.
    Re: nachträglich eine lfd. Nummer vergeben

      Ohne range gab's einen Abbruch...

      Mit range bei 250 auch...

      Mit 200 hat's jetzt geklappt. Allerdings dauert das etwa 15 bis 20 Sekunden.

      Danke erstmal.

      Oliver ;-)

     Antworten

    Beitrag von Oliver ;-) (439 Beiträge) am Montag, 3.Dezember.2001, 19:35.
    Re: nachträglich eine lfd. Nummer vergeben

      Ja, bin am Donnerstag mit meiner Domain dorthin gezogen ...

      Toller telefonischer Support...
      Aber ich habe den Eindruck, dass die Scripte dort viel langsamer laufen als im kostenlosen Bereich...

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 3.Dezember.2001, 20:33.
    Re: nachträglich eine lfd. Nummer vergeben

      ...morgen ;-)

     Antworten


     
 Liste der Einträge von 53850 bis 54000:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.12s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!