Ankündigung

Einklappen
Keine Ankündigung bisher.

nächste ID anzeigen

Einklappen

Neue Werbung 2019

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

  • nächste ID anzeigen

    Hallo Leute ...

    Ich habe die erste Spalte id in Mysql als AUTO_INCREMENT
    nun will ich gerne dass mir bei meinem Formular die nächste id angezeigt wird also diese mit der sie abgespeichert wird.
    gibt es dazu eine Lösung?

    das ganze wird dann wenn es mal fertig wird im Netzwerk bleiben also nicht Online gestellt ...

    hier mein Formular
    Code:
    <?php
    mysql_connect('localhost', 'root', 'superpi') or die(mysql_error());
    mysql_select_db('fehlermeldungen') or die(mysql_error());
    echo "<body style=\"background-color: #A9BCF5; \">";
    ?>
    
    <h1><span style="color:darkgreen; font-size: 30px;">Felder ausfüllen und am Ende "Senden" drücken!</span></h1>
    <form method="POST">
    	1.Identnummer: <input type=text name="sapidentnummer" />
    	2.Materialbezeichnung: <input type=text name="sapmaterialtext" style="height: 23px; width: 350px; font-size: 12px;" /><br />
    	3.Bestellnummer: <input type=text name="bestnum" />
    	3.Pos: <input type=text name="sappos" /><br />
    	4.Lieferscheinnummer: <input type=text name="lieferscheinnummer" /> 5.Lieferscheinposition: <input type=text name="liefpos" />
    	6.Lieferant: <input type=text name="lieferant" /><br />
    	7.FehlerhafteMenge: <input type=text name="fehlerhaftemenge" /><br />
    	8.Abweichungsbeschreibung: <input type=text name="ursache" /><br />
    	9.Beschreibung: <textarea name="beschreibung" rows="5" cols="60"></textarea><br />
    	10.Bearbeiter:
        <select name="bearbeiter">
    	<option value="Auswahl">>Auswählen<</option>
        <option value="Pichlhofer Markus">Pichlhofer Markus</option>
        <option value="Pfeffer Oscar">Pfeffer Oscar</option>
        <option value="Supper Friedrich">Supper Friedrich</option>
              </select></p>
    	11.Bildpfad: <input type=text name="bildpfad" /><br />
    	<input type="submit" name="submit" />
    	</form>
    	<?php
    	if(isset($_POST['submit'])) {
    	$Identnummer = htmlentities($_POST['sapidentnummer']);
    	$Materialbezeichnung = htmlentities($_POST['sapmaterialtext']);
    	$Bestellnummer = htmlentities($_POST['bestnum']);
    	$Pos = htmlentities($_POST['sappos']);
    	$Lieferscheinnummer = htmlentities($_POST['lieferscheinnummer']);
    	$Lieferscheinposition = htmlentities($_POST['liefpos']);
    	$Lieferant = htmlentities($_POST['lieferant']);
    	$FehlerhafteMenge = htmlentities($_POST['fehlerhaftemenge']);
    	$Ursache = htmlentities($_POST['ursache']);
    	$Beschreibung = htmlentities($_POST['beschreibung']);
    	$Bearbeiter = htmlentities($_POST['bearbeiter']);
    	$Bildpfad = htmlentities($_POST['bildpfad']);
    	
    	$sql = "INSERT INTO feme VALUES(
    		NULL,
    		'$Identnummer',
    		'$Materialtext',
    		'$Bestellnummer',
    		'$Pos',
    		'$Lieferscheinnummer',
    		'$Lieferscheinposition',
    		'$Lieferant',
    		'$FehlerhafteMenge',
    		'$Ursache',
    		'$Beschreibung',
    		'$Bearbeiter',
    		'$Bildpfad'
    		)";
    		
    		$query = mysql_query($sql) or die(mysql_error());
    		
    		if($query == TRUE) {
    			echo "Feme wurde eingefügt.";
    			} else {
    			echo "Feme konnte nicht eingefügt werden.";
    			}
    	}
    	?>
    danke für die Mühen und schönen Tag noch


  • #2
    Es ist eine schlechte Idee, die ID vorgeben zu wollen. Lass das MySQL von alleine machen. Wenn du und dein Kollege jetzt einen Eintrag erstellen wollen, erscheint bei beiden die gleiche ID. Aber nur einer bekommt sie am Ende, der andere erhält einen Fehler.

    htmlentities ist überflüssig, htmlspecialchars reicht vollkommen.
    Windows Server gehören NICHT ins Internet!

    Dildo? Dildo!

    Kommentar


    • #3
      danke für die Mühen
      Wo hast du vorher schon geschaut?

      https://www.google.at/#q=mysql+next+id

      zB erster Treffer: http://stackoverflow.com/questions/1...=votes#tab-top
      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Zitat von Steampunk Beitrag anzeigen
        Hallo Leute ...

        Ich habe die erste Spalte id in Mysql als AUTO_INCREMENT
        nun will ich gerne dass mir bei meinem Formular die nächste id angezeigt wird also diese mit der sie abgespeichert wird.
        gibt es dazu eine Lösung?

        Trag einen neue, leeren Record ein, erfrage die vergebene ID. Mache dann ein Update darauf.
        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

        Kommentar


        • #5
          Zitat von akretschmer Beitrag anzeigen
          Trag einen neue, leeren Record ein, erfrage die vergebene ID. Mache dann ein Update darauf.
          Ich bin leider ein Anfänger und kann mit dem nichts anfangen

          Kommentar


          • #6
            Zitat von trollface Beitrag anzeigen
            Es ist eine schlechte Idee, die ID vorgeben zu wollen. Lass das MySQL von alleine machen. Wenn du und dein Kollege jetzt einen Eintrag erstellen wollen, erscheint bei beiden die gleiche ID. Aber nur einer bekommt sie am Ende, der andere erhält einen Fehler.

            htmlentities ist überflüssig, htmlspecialchars reicht vollkommen.
            da hast du recht, dann würde aber beim Formular absenden reichen wenn unten steht welche ID vergeben wurde ...
            So viele Fehlermeldungen werden nicht gleichzeitig eingetragen, es gibt halt Kollegen die stehen sich drauf dass sie die Nummer eingezeigt bekommen sonst werden sie Nervös und glauben etwas funktioniert nicht

            Kommentar


            • #7
              ... würde aber beim Formular absenden reichen wenn unten steht welche ID vergeben wurde ... es gibt halt Kollegen stehen sich drauf dass sie die Nummer eingezeigt bekommen ...
              "vergeben wurde" != "vergeben wird" bzw. "vergeben werden wird"

              Denn das ist dann ja danach und ein anderes Szenario als du oben geschildert hast. Da wolltest du es schon VOR dem INSERT wissen und jetzt reicht auch danach?! Dann sollte das tun was du brauchst: http://php.net/manual/de/function.mysql-insert-id.php

              ... sonst werden sie Nervös und glauben etwas funktioniert nicht
              Und das die mysql_ Erweiterung bald nicht mehr funktioniert macht die Kollegen nicht nervös?
              http://php.net/manual/en/migration55.deprecated.php

              LG
              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                Zitat von Steampunk Beitrag anzeigen
                Ich bin leider ein Anfänger und kann mit dem nichts anfangen
                Dann lass es sein.
                PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                Kommentar


                • #9
                  Entweder die ID im Formular ganz weglassen oder das Feld disablen, so daß nichts eingegeben werden kann.
                  Nach dem Absenden des Formulars und Einfügen in die Datenbank kann ja dann eine Meldung a.la. Datensatz mit ID=xx wurde zugefügt ausgegeben werden, sofern die ID irgendwo von Interesse ist bzw. eine Fehlerausschrift, wenn es gegen den Baum gegangen ist.
                  PHP-Klassen auf github

                  Kommentar


                  • #10
                    Und das die mysql_ Erweiterung bald nicht mehr funktioniert macht die Kollegen nicht nervös?
                    http://php.net/manual/en/migration55.deprecated.php
                    LG
                    der Server passt? es geht nur um den code von der "connection" ??
                    Angehängte Dateien

                    Kommentar


                    • #11
                      Ja und die "Schnittstelle" die PHP nutzt um auf die DB zuzugreifen, das sind im Grunde alle PHP-Funktionen die mit mysql_ beginnen http://php.net/manual/en/book.mysql.php

                      Stattdessen sollte man mysqli_ oder PDO verwenden -> google, da gibt es in php.net auch die Dokus dazu.
                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar


                      • #12
                        ich bekomme den Code nicht für das eintragen in die Datenbank nicht hin

                        PHP-Code:
                        $query mysql_query($sql) or die(mysql_error());
                                
                                if(
                        $query == TRUE) {
                                    echo 
                        "Feme wurde eingefügt.";
                                    } else {
                                    echo 
                        "Feme konnte nicht eingefügt werden.";
                                    }
                            }
                            
                        ?> 
                        war der alte Code

                        wie lautet der mit mysqli ??

                        Kommentar


                        • #13
                          http://php.net/manual/de/mysqli.query.php

                          Oder was ist genau das Problem bzw. meinst du die Variante mit den prepared Statements? Die findest du auch oben im PHP Handbuch.
                          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                          PHP.de Wissenssammlung | Kein Support per PN

                          Kommentar


                          • #14
                            Siehe http://de1.php.net/manual/de/class.mysqli.php
                            Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                            Kommentar


                            • #15
                              ich hatte alles mit mysql_ eingetragen weil ich aus einer Youtubevideoanleitung es eben so gemacht habe ...

                              nun hat man mir hier gesagt man solle es auf mysqli_ machen da das alte bald nicht mehr funktionieren wird ... (abgesehen davon wenn es mal steht so wie ich es brauch wird es sowieso nie ubgedated da wie oben schon geschrieben es im LAN bleibt)

                              jetzt funktioniert das eintragen in die Datenbank nicht mehr ...

                              PHP-Code:
                              $sql "INSERT INTO feme VALUES(
                                      NULL,
                                      '
                              $Identnummer',
                                      '
                              $Materialtext',
                                      '
                              $Bestellnummer',
                                      '
                              $Pos',
                                      '
                              $Lieferscheinnummer',
                                      '
                              $Lieferscheinposition',
                                      '
                              $Lieferant',
                                      '
                              $FehlerhafteMenge',
                                      '
                              $Ursache',
                                      '
                              $Beschreibung',
                                      '
                              $Bearbeiter',
                                      '
                              $Bildpfad'
                                      )"
                              ;
                                      
                                      
                              $query mysql_query($sql) or die(mysql_error());
                                      
                                      if(
                              $query == TRUE) {
                                          echo 
                              "Feme wurde eingefügt.";
                                          } else {
                                          echo 
                              "Feme konnte nicht eingefügt werden.";
                                          }
                                  }
                                  
                              ?> 

                              Kommentar

                              Lädt...
                              X