phpbar.de logo

Mailinglisten-Archive

[php] Re: id in mysql DB Eintragen

[php] Re: id in mysql DB Eintragen

Peter Karsten peter_(at)_paeffgen.com
Tue, 15 Feb 2000 11:17:51 +0100


hallo stefan,
erstmal danke für die antwort:

noch kurioseres problem, ich hab in der tabelle 9 Datensaetze, wenn ich
einen neuen Datensatz hinzufügen möchte fülle ich die felder in meinen
formular aus (lasse das id feld leer), der datensatz wird dann mit id 10
angelegt, (das feld id hat jetzt die "karakteristiken " die du mir genannt
hast , war vorher ein INT :)
so wenn ich nun versuche einen weiteren Datensatz anzulegen dann passiert
wieder nichts, sei denn ich vergeb die id per hand,
komisch oder?
wenn ich den datensatz mit id 10 lösche und dann einen DS anlegen möchte
dann wird die 10 wieder automatisch vergeben.......

tür steht auf für tips :)
falls es sich jemand angucken möchte kann er gerne den link per mail
anfordern wegen den username und passwort

folgende Funktion hinterlegt das formular was ich benötige um die
datensaetze zu aendern oder anzulegen, vielleicht ist da ja nen fehler drin
:) bei mir garantiert *g*

function manageData_submit( $cmd ) {
    global $link, $dbname, $tablename, $fieldname, $PHP_SELF, $queryStr,
$errMsg;

    $pResult = mysql_list_fields( $dbname, $tablename );
    $num = mysql_num_fields( $pResult );

    mysql_select_db( $dbname, $link );
    if( $cmd ==  "add" )
        $queryStr =  "INSERT INTO $tablename VALUES (";
    else if( $cmd ==  "edit" )
        $queryStr =  "REPLACE INTO $tablename VALUES (";
    for( $i = 0; $i < $num-1; $i++ ) {
        $field = mysql_fetch_field( $pResult );
        $func = $GLOBALS[$field->name. "_function"];
        if( $func !=  "" )
            $queryStr .=  " $func(";
        if( $field->numeric == 1 ) {
            $queryStr .= $GLOBALS[$field->name];
            if( $func !=  "" )
                $queryStr .=  "),";
            else
                $queryStr .=  ",";
        } else {
            $queryStr .=  "'" . $GLOBALS[$field->name];
            if( $func !=  "" )
                $queryStr .=  "'),";
            else
                $queryStr .=  "',";
        }
    }
    $field = mysql_fetch_field( $pResult );
    if( $field->numeric == 1 )
        $queryStr .= $GLOBALS[$field->name] .  ")";
    else
        $queryStr .=  "'" . $GLOBALS[$field->name] .  "')";

    mysql_query( $queryStr , $link );
    $errMsg = mysql_error();

    viewData(  "" );
}




> wie bewerkstelligt man das wenn man einen neuen datensatz
> anlegt das die id
> des jeweiligen DS sich automatisch eintraegt?
Ganz einfach, das erledigt mysql von alleine. Dazu mußt Du in der
Tabellendefinition den Parameter AUTO_INCREMENT in der Spalte mit angeben.

Etwa so:
CREATE TABLE Test(
  ID varchar(255) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY ( ID)
);

Gruß
Stefan





php::bar PHP Wiki   -   Listenarchive