Anfänger benötigt Hilfe bei Functionen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Anfänger benötigt Hilfe bei Functionen

    Hallöle,

    ich habe da ein Verständigungsproblem, bei dem ich nicht mehr weiss wo ich den Fehler mache. Ich habe schon im Forum gesucht, bin aber nicht fündig geworden.
    Nun, ich habe folgendes Problem:
    Ich habe ein Eingabeformular, das mit einer ID aus einer Function vorbelegt wird. Hier meine Function:
    [COLOR=blue]
    function get_id($id)
    {
    static $x=1001;
    $x++;
    return $x;
    }[/COLOR]
    Auf meinem eingabeformular hole ich mir die ID mit der zeile:
    [COLOR=blue]<input name="neu_id" type="hidden" style="WIDTH: 30%" value="<? echo get_id($id); ?>">
    <? echo get_id($id);?> [/COLOR]
    Nun sollte eigentlich bei jedem Aufruf die ID um 1 erhöht werden (also 1002,1003,1004....) Leider steht bei mir immer nur 1003????
    Kann mir jemand bitte mal so von Profi zu Anfänger mal helfen wo und wie ich hier einen Fehler mache???
    Wäre Supi wenn mir das mal jemand so für Anfänger erklären könnte.
    Gruß
    Wombel
    Markus Schulz
    www.marbrilu.de

  • #2
    Hoffe ich habe dich verstanden
    PHP-Code:
    function get_id($id)
     {
     $id++; 
     return $id;
     } 
    if(!empty($_POST['id'])){ 
      $id = get_id($_POST['id']);
    } else {
      $id = get_id(1001); // oder $id = 1002;
    }
    <input name="neu_id" type="hidden" style="WIDTH: 30%" value="<? echo $id; ?>">
     <? echo $id;?>
    Du rufst die get_id zweimal auf und da wird es jedesmal erhöht, so es den funktioniert --> einmal und Variable setzen.

    EDIT:
    empty-Abfrage eingefügt


    Offe
    Zuletzt geändert von Offe1; 19.02.2004, 23:50.

    Kommentar


    • #3
      1. Parameter $id wird in der Funktion gar nicht gebraucht, wozu ist $id da

      2. die Funktion lebt nur, solang das Script auch lebt, daher hilft dir die Deklaration mit static gar nicht in diesem Fall

      3. was machst du wenn mehr als ein User auf die Seite zugreift ? Du wirst mehrfach die gleichen id's haben

      Lösung:
      Datenbank zur generierung der id nehmen. Entweder via auto increment Feld oder du schreibst selbst einen SQL-String, der die id generiert. Bei letzterem hast du den Vorteil, dass gelöschte id's wieder mit neuen Daten belegt werden kann.

      Kommentar

      Lädt...
      X