Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Zufallszahl in Datenbank schreiben und Lesen

  1. #1
    Azubi(ne)
    Registriert seit
    22.05.2006
    Ort
    Kiel
    Beiträge
    81
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Zufallszahl in Datenbank schreiben und Lesen

    Hallo zusammen!

    Ich habe folgendes Problem und hoffe ihr könnte mir helfen.

    Für eine Immobilien-Seite habe ich ein CMS mit einer Immobilienkomponente installiert. In dieser Komponente kann man beim Anlegen eines Objektes / einer Immobilie dem Objekt eine eigene ID bzw. Referenznummer vergeben. Das erfolgt über ein einfaches Input Textfeld und wird dann in die Datenbank geschrieben. Die Nummer kann man frei eintragen, ohne dass geprüft wird, ob es diese Nummer in der Datenbank schon gibt. Das Input-Feld soll jedoch weg und die Zahl soll nicht mehr frei vergeben, sondern automatisch generiert werden.

    Meine PHP Kenntnisse stecken leider noch in den Kinderschuhen, daher hier die Frage an euch:

    Mit welcher (ich denke mal einfachen Funktion) kann man eine Zufallszahl erzeugen (möglichst nicht mit "time"), die dann in die Datenbank geschrieben wird. (kann auch eine vordefinierte Zahl sein mit einem Präfix) Sobald dann ein Objekt hinzu kommt, soll in der Datenbank geprüft werden, ob es schon ein Objekt bzw. eine Nummer gibt. Gibt es eine, dann soll beim neuen Objekt diese Zahl einfach um 1 (eins) erweitert werden.

    Wie das Schreiben in die Datenbank und Lesen aus ihr funktioniert, weiß ich mittlerweile in etwa, jedoch hab ich kein Plan, wie man das mit einer automatisch generierten Nummer bewerkstelligen kann.

    Ich hoffe ihr versteht was ich meine und habt evtl. eine Idee oder vielleicht ein paar Anregungen?

    Würd mich freuen!
    Danke schon mal

    Gruß
    Heiko
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Wäre es nicht adäquat, den Usus nonetablierter Termini zu minimieren?

  2. #2

  3. #3
    Azubi(ne)
    Registriert seit
    24.06.2007
    Ort
    127.0.0.1
    Beiträge
    78
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Um es nochmal kurz zu fassen,

    int mt_rand ( [int $min, int $max] )
    Das int vor den einzelnen Variablen, heisst übersetzt integer und gibt der Variable einfach den Typ Zahl. In den Klammern gibt der erste Parameter die neidrigste, der 2. Parameter die höchste Zahl an. Die Ausgabe wird also irgendeine Zahl zwischen den beiden Werten ergeben.

    Gruß Spacefish | Spacefish.eu - Webdesign

  4. #4
    Azubi(ne)
    Themenstarter

    Registriert seit
    22.05.2006
    Ort
    Kiel
    Beiträge
    81
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Schon mal nicht schlecht!

    Wie könnte denn eine Funktion aussehen, bei der ich eine Zahl vorgebe?

    Gut wäre sowas:

    immo-1234501
    immo-1234502
    immo-1234503
    immo-1234504
    immo-1234505

    immo = Präfix + Fortlaufende Zahl

    Wird die erste Immobilie eingetrage, bekommt das erste Objekt die Nummer immo-1234501, wird ein weiteres Objekt hinzugefügt, soll in der Datenbank geprüft werden ob es schon eine Nummer gibt, wenn ja, dann einfach die Zahl +1 und dem neuen Objekt zuordnen.
    Wäre es nicht adäquat, den Usus nonetablierter Termini zu minimieren?

  5. #5
    Kaiserliche Hoheit Avatar von No0ob
    Registriert seit
    02.01.2006
    Ort
    Nähe Frankfurt
    Beiträge
    1.500
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    So eine ID kannst du aber nicht in INT speichern
    Code:
    function createNewID(){
       $highest_id_query = mysql_query("SELECT MAX(ID) as high_id FROM tabelle LIMIT 1";);
       $highest_id = mysql_fetch_assoc($highest_id_query);
       $newid = $highest_id['high_id']+1;
       return 'immo-'.$newid;
    }
    Mal on-the-run, ich garantiere für nix

  6. #6
    Azubi(ne)
    Themenstarter

    Registriert seit
    22.05.2006
    Ort
    Kiel
    Beiträge
    81
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Warum nicht als INT? Funktioniert auto_increment nur bei einem Feld?
    Schon mal vielen dank!!!

    Das probier ich gleich mal aus.
    Wäre es nicht adäquat, den Usus nonetablierter Termini zu minimieren?

  7. #7
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ein Integerwert besteht nur aus ganzzahlingen Zahlen (in einem gewissen wertebereich) , deine ID trägt aber noch die Chars "immo-" davor, daher kannst du sie auch nicht als Int abpeichern...
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  8. #8
    phpfan
    Gast

    Standard

    Zitat Zitat von mr.scruff
    Mit welcher kann man eine Zufallszahl erzeugen
    Zitat Zitat von mr.scruff
    immo = Präfix + Fortlaufende Zahl
    Ja was denn nu???

  9. #9
    Azubi(ne)
    Themenstarter

    Registriert seit
    22.05.2006
    Ort
    Kiel
    Beiträge
    81
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Sorry!
    Eine fortlaufenden Zahl.
    Wäre es nicht adäquat, den Usus nonetablierter Termini zu minimieren?

  10. #10
    Azubi(ne)
    Themenstarter

    Registriert seit
    22.05.2006
    Ort
    Kiel
    Beiträge
    81
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von No0ob
    Code:
    function createNewID(){
       $highest_id_query = mysql_query("SELECT MAX(ID) as high_id FROM tabelle LIMIT 1";);
       $highest_id = mysql_fetch_assoc($highest_id_query);
       $newid = $highest_id['high_id']+1;
       return 'immo-'.$newid;
    }
    Damit bekomm ich irgendwie nix hin. Liegt aber vielleicht daran, dass ich es mit Joomal probiere.

    Meine Abfrage sieht jetzt so aus:
    Code:
    function createNewID(){
       $highest_id_query = mysql_query("SELECT MAX(ID) as high_id FROM #__estateagen LIMIT 1");
       $highest_id = mysql_fetch_assoc($highest_id_query);
       $newid = $highest_id['high_id']+1;
       return 'immo-'.$newid;
    In der Datenbank habe ich zuvor ein neues Feld "high_id" angelegt und einen Startwert (1000) eingetragen. Aber irgendwie passiert nix, wenn ich die Seite aufrufe.

    Bei Joomla sieht eine Datenbankabfrage bspw. so aus:


    Code:
    $query = "SELECT id, cat, type, title, description, rent, rooms, space"
    	. " FROM #__estateagent"
    	. " WHERE hot=1 AND publish=1 ORDER BY id DESC LIMIT $limit";
    
    $database->setQuery( $query );
    $rows = $database->loadObjectList();
    Ich dachte ich käme da leichter rein.
    Wäre es nicht adäquat, den Usus nonetablierter Termini zu minimieren?

Ähnliche Themen

  1. Mitglieder daten aus datenbank lesen
    Von Xam im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 07.06.2007, 13:43
  2. [Tutorial] Datenbank lesen/schreiben mit MySQLi
    Von Mülla im Forum Script-Archiv
    Antworten: 3
    Letzter Beitrag: 19.11.2006, 22:22
  3. Lesen und schreiben
    Von Abdul im Forum Off Topic und Quasselbox
    Antworten: 3
    Letzter Beitrag: 27.04.2005, 20:49
  4. PHP: In Datenbank schreiben und auslesen
    Von Fabian im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 09.01.2005, 16:22
  5. Drop down Menü u.a. in Datenbank schreiben - WICHTIG! :/
    Von Hatework im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 10.12.2004, 10:45

Stichworte

Berechtigungen

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