phpbar.de logo

Mailinglisten-Archive

[php] Re: id in mysql DB Eintragen

[php] Re: id in mysql DB Eintragen

Chris Hoppe hoppe_(at)_hwsw-service.de
Tue, 15 Feb 2000 12:00:38 +0100


Hallo,

versuch doch mal folgendes:

CREATE TABLE Test (ID meduimint(9) DEFAULT'0' NOT NULL auto_increment,
PRIMARY KEY(ID));

Eventuell solltest du das Feld ID nicht leer lassen, sondern den Wert "null"
(ohne Anführungszeichen) übergeben.

So funktioniert es zumindest bei mir ausgezeichnet. Zu sehen unter
http://www.mlcom.de in der Rubrik Handies -> z.B. D1-Handies.

Gruß
Chris

-----Ursprüngliche Nachricht-----
Von: php-admin_(at)_solix.wiso.Uni-Koeln.DE
[mailto:php-admin_(at)_solix.wiso.Uni-Koeln.DE]Im Auftrag von Peter Karsten
Gesendet: Dienstag, 15. Februar 2000 11:18
An: Stefan.Engelhardt_(at)_stud.fh-hannover.de; php_(at)_solix.wiso.Uni-Koeln.DE
Betreff: [php] Re: id in mysql DB Eintragen


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




--
** Durchgehend geöffnet: http://www.php-center.de **
Die PHP-Liste: mailto:php_(at)_infosoc.uni-koeln.de
http://infosoc.uni-koeln.de/mailman/listinfo/php



php::bar PHP Wiki   -   Listenarchive