Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit While-Schleife

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

  • Problem mit While-Schleife

    Hi zusammen!

    Mit folgendem Code generiere ich eine Kundennummer und überprüfe ob diese bereits vorhanden ist. Ist dies der Fall, sollte die Kundennummer erneut generiert werden. Wenn Sie nicht vorhanden ist soll sie in die Datenbank eingetragen werden:

    PHP-Code:
        // Kundennummer generieren
    function kundennummergenerator(){
        
    $number2 7;
        
    $zeichen2 "1234567890";

        
    srand((double)microtime()*1000000); 
        for(
    $i2 0$i2 $number2$i2++)
        {
          
    $kundennummer .= substr($zeichen2,(rand()%(strlen ($zeichen2))), 1);
        }
        return 
    $kundennummer;
    }


        
    // Überprüfen ob Kundennummer bereits vorhanden ist
    $isNum "0";

    while(
    $isNum "1") {
    $kundennummer kundennummergenerator();
    $query "Select count(id) as num from tab_members where kundennummer='$kundennummer'";
    $result mysql_query($query);
    if (
    mysql_errno()) die ("MySQL-Fehler: " mysql_error());
    $num mysql_result($result"num");
    if(!
    $num) {
    $isNum "1";
    $schreiben "INSERT INTO tab_members (kundennummer) VALUES ('$kundennummer')";
    $eintragen mysql_query($schreiben)
    or die(
    mysql_error());
    }

    Problem: Die Schleife läuft mehrere tausend mal durch, obwohl in der Datenbank von Anfang an erstmal keine Kundennummer eingetragen ist.
    Wer Rechtschreibfehler findet, darf sie behalten!

  • #2
    AW: Problem mit While-Schleife

    Hmm, so richtig verstehe ich es nicht, denn du sagst:
    PHP-Code:
    $isNum "0"
    Und dann:
    PHP-Code:
    while($isNum "1") { 
    Damit ist $isNum 1...
    Sonst müsstest du es so machen:
    PHP-Code:
    while($isNum == 1
    Was mich aber immer noch verwundert, denn dann dürft die Schleife gar nicht in Gang kommen, weil die Bedingung if, die $isNum umschreibt zu 1, in der Schleife ist...

    Kommentar


    • #3
      AW: Problem mit While-Schleife

      http://www.alexander-projects.de/?id=3&uid=18

      Wie mi-schi schon gesagt hat: in der Schleife muss eine Bedingung in den Klammern stehen, und keine Zuweisung...ich denke mal es handelt sich um nen Tippfehler.

      Aber die Zeile davor
      PHP-Code:
      $isNum "0"
      macht definitiv keinen Sinn?

      Dann wird ja die Schleife nie durchlaufen?

      Gruß
      Alex

      Kommentar


      • #4
        AW: Problem mit While-Schleife

        Zitat von Al3x Beitrag anzeigen
        http://www.alexander-projects.de/?id=3&uid=18

        Wie mi-schi schon gesagt hat: in der Schleife muss eine Bedingung in den Klammern stehen, und keine Zuweisung...ich denke mal es handelt sich um nen Tippfehler.

        Aber die Zeile davor
        PHP-Code:
        $isNum "0"
        macht definitiv keinen Sinn?

        Dann wird ja die Schleife nie durchlaufen?

        Gruß
        Alex
        natürlich wird die schleife durchlaufen, und zwar unendliche viele male. php weist zuerst der variablen $isNum=1 zu und wertet die variable $isNum dann aus. da der wert 1 als TRUE angesehen wird, läuft die schleife.

        aber mal ne andere frage: wenn die kundennummern sowieso aus zahlen bestehen, warum so schwer machen? wie wärs denn mit nem auto_increment bei mysql, dafür ists doch da. du musst nur temporär manuell einmal einen eintrag mit der start nummer vergeben. mysql erhöht ab diesem wert dann automatisch. dann brauchst du dich garnicht drum zu kümmern.
        AC/DC Fanpage www.ifyouwantblood.de
        Nein zur Zensur im Internet und anderswo - Anonymous

        Kommentar


        • #5
          AW: Problem mit While-Schleife

          aber mal ne andere frage: wenn die kundennummern sowieso aus zahlen bestehen, warum so schwer machen? wie wärs denn mit nem auto_increment bei mysql, dafür ists doch da. du musst nur temporär manuell einmal einen eintrag mit der start nummer vergeben. mysql erhöht ab diesem wert dann automatisch. dann brauchst du dich garnicht drum zu kümmern.
          Da hätte man aber eine (am Anfang) nur einstellige, dann zweistellige Zahlen. Das sieht doch nicht aus....
          So eine Kundennummer weißt auf Sicherheit hin:
          645465416316549120504145415048406
          und macht bestimmt Freude, anzusagen (bei Supportfällen)^^

          Kommentar


          • #6
            AW: Problem mit While-Schleife

            Außerdem wäre mit das als Verkäufer peinlich, wenn man als Käufer die Kunden-Nr. 1 bekommt ^^

            Kommentar


            • #7
              AW: Problem mit While-Schleife

              Zitat von Der Unbekannte Beitrag anzeigen
              Außerdem wäre mit das als Verkäufer peinlich, wenn man als Käufer die Kunden-Nr. 1 bekommt ^^
              ich sagte bereits, dass er temporär einen eintrag im feld kundennummer mit der startnummer machen soll. mysql speichert diesen wert dann als letzten autoincrement wert und erhöht diesen anschließend bei weiteren einträgen um eins.....somit kann er auch mit der kundennummer 10000000 anfangen....
              AC/DC Fanpage www.ifyouwantblood.de
              Nein zur Zensur im Internet und anderswo - Anonymous

              Kommentar


              • #8
                AW: Problem mit While-Schleife

                Hmm, stimmt, so geht es auch.

                Kommentar

                homepage-forum.de - Hilfe für Webmaster! Statistiken

                Einklappen

                Themen: 56.933   Beiträge: 431.211   Mitglieder: 28.702   Aktive Mitglieder: 44
                Willkommen an unser neuestes Mitglied, sukhdevscatering.

                Online-Benutzer

                Einklappen

                195 Benutzer sind jetzt online. Registrierte Benutzer: 3, Gäste: 192.

                Mit 3.502 Benutzern waren am 23.01.2020 um 17:20 die meisten Benutzer gleichzeitig online.

                Die neuesten Themen

                Einklappen

                • arnego2
                  Antwort auf mySQL ORDER BY mit Umlauten
                  Wenn das alles so klappt warum ist dir die Ordnung so wichtig?
                  Gestern, 17:18
                • Megabyte
                  Antwort auf mySQL ORDER BY mit Umlauten
                  Hallo Sempervivum

                  Danke für deinen Beitrag. Das wäre sicherlich ein begehbarer Weg. Fühlt sich aber immer noch irgendwie an wie "durch den Rücken in die Brust geschossen". Aber scheinbar lässt sich diese Aufgabe nicht mit einer einzigen Direktive elegant lösen. Wenn es daher...
                  Gestern, 16:38
                • Sempervivum
                  Antwort auf mySQL ORDER BY mit Umlauten
                  Wenn es nicht gerade hunderttausende von Datensätzen sind würde ich auf eine Sortierung mit PHP und einem Callback setzen, also usort. Dann kannst Du in der Vergleichsfunktion die Strings in eine Form bringen, die für den Vergleich geeignet ist und brauchst diese nirgends zu speichern, also die Redundanz...
                  Gestern, 16:18
                • Megabyte
                  Antwort auf mySQL ORDER BY mit Umlauten
                  Hallo arnego2

                  Danke für die Rückmeldung, aber hilft hier nicht :-)

                  Ich habe keinerlei Probleme mit der Darstellung von Umlauten. Alle Umlaute werden sowohl in phpMyAdmin als auch im Frontend exakt dargestellt. Dafür wurde mittels diversen utf-8 Direktiven gesorgt. Keine...
                  Gestern, 15:53
                • arnego2
                  Antwort auf mySQL ORDER BY mit Umlauten
                  Bei mir hat die .my.cnf Methode funktioniert.

                  https://stackoverflow.com/questions/...sql-phpmyadmin
                  Gestern, 14:41

                Die neuesten Beiträge

                Einklappen

                • Megabyte
                  mySQL ORDER BY mit Umlauten
                  Wenn man auf meiner Seite bei der Auswahl 'Suche' die Kategorie 'Land' auswählt und dort nach 'Deutschland' sucht erfolgt eine Auflistung der Filme die mindestens einen Drehort in Deutschland hatten. So weit do gut...

                  Wenn man nun bis ans Ende scrollt erscheint dort der Film "Zweiohrküken"...
                  Gestern, 00:50
                • arnego2
                  Antwort auf mySQL ORDER BY mit Umlauten
                  Wenn das alles so klappt warum ist dir die Ordnung so wichtig?
                  Gestern, 17:18
                • Megabyte
                  Antwort auf mySQL ORDER BY mit Umlauten
                  Hallo Sempervivum

                  Danke für deinen Beitrag. Das wäre sicherlich ein begehbarer Weg. Fühlt sich aber immer noch irgendwie an wie "durch den Rücken in die Brust geschossen". Aber scheinbar lässt sich diese Aufgabe nicht mit einer einzigen Direktive elegant lösen. Wenn es daher...
                  Gestern, 16:38
                • Sempervivum
                  Antwort auf mySQL ORDER BY mit Umlauten
                  Wenn es nicht gerade hunderttausende von Datensätzen sind würde ich auf eine Sortierung mit PHP und einem Callback setzen, also usort. Dann kannst Du in der Vergleichsfunktion die Strings in eine Form bringen, die für den Vergleich geeignet ist und brauchst diese nirgends zu speichern, also die Redundanz...
                  Gestern, 16:18
                • Megabyte
                  Antwort auf mySQL ORDER BY mit Umlauten
                  Hallo arnego2

                  Danke für die Rückmeldung, aber hilft hier nicht :-)

                  Ich habe keinerlei Probleme mit der Darstellung von Umlauten. Alle Umlaute werden sowohl in phpMyAdmin als auch im Frontend exakt dargestellt. Dafür wurde mittels diversen utf-8 Direktiven gesorgt. Keine...
                  Gestern, 15:53
                • arnego2
                  Antwort auf mySQL ORDER BY mit Umlauten
                  Bei mir hat die .my.cnf Methode funktioniert.

                  https://stackoverflow.com/questions/...sql-phpmyadmin
                  Gestern, 14:41
                • Dekson
                  Antwort auf Neuer Drucker?
                  Morgen

                  Hattest du dich denn entschieden zu einem Drucker?
                  Ich muss ja sagen, dass es wirklich unterschiedliche Hersteller und Modelle gibt, man sollte einfach schauen, welchen man gebrauchen kann bzw. welcher die Voraussetzungen erfüllt.
                  Ich zum Beispiel habe mich nach Zubehör...
                  Gestern, 05:58
                • Megabyte
                  Antwort auf Bitcoin-Board.de - Deutschsprachiges Bitcoin & Altcoin Forum
                  Ich mag Bitcoins ebenso wenig. Bitcoins öffnen dubiosen Machenschaften Tür und Tor. Außerdem sind wegen dem Schrott gute Grafikkarten exorbitant teuer geworden bzw. gar nicht mehr erhältlich :-)
                  27.09.2021, 22:09
                • Megabyte
                  Antwort auf HomeOffice
                  Bin bei Localfu (auch aus Erfahrung)

                  Die zu erwartende Arbeitsergebnisse sind vorab klar festzuhalten und mit einer realistischen Zeitschiene zu versehen. Wenn z.B. ein Konstrukteur zu Hause an einem CAD-System ein Bauteil entwickeln soll so erwartet man dann Ergebnisse in 14 Tage (Beispiel...
                  27.09.2021, 22:00
                • Nightland Driver
                  Mysql id anhand des nutzers auslesen und nächste/letzte erhalten?
                  Hey, ich habe ein kleines Logik Problem und wollte mal fragen ob mir jemand dabei helfen kann.

                  Ich mag aus meiner Datenbank eine Nachricht auslesen. Diese hat folgende werte [id, user_id, text].
                  Nun rufe ich anhand der id [5] die nachricht von dem Benutzer [2] auf. Dieser Benutzer...
                  23.09.2021, 17:00
                Lädt...
                X