php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.11.2004, 08:59  
Gast
 
Beiträge: n/a
Standard auto increment

im php myadmin kann man ja leider nur ein feld als auto_increment definieren, das ist bei mir die 'ID'.
ich möchte aber, dass nicht nur bei 'ID', sondern auch bei 'Pos' immer automatisch eine Zahl höher als die höchste, bestehende Zahl eingefügt wird.

Sorry, etwas kompliziert erklärt, hoffe jemand hat es verstanden...
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.11.2004, 09:44  
Gast
 
Beiträge: n/a
Standard

also von myphpadmin aus gehts nicht.
da autoincrement einen primärschlüssel verlangt.
Primär geht aber wie der name schon sagt nur mal.

du kannst aber ne vorschleife basteln und denn den wert automatisch immer um 1 erhöhen.
ist also keine schwierigkeit
 
Alt 05.11.2004, 10:32  
Gast
 
Beiträge: n/a
Standard

Ich würde auch eine Schleife vorschalten:
PHP-Code:
$result mysql_query("select MAX(position) from table");
while(
$row mysql_fetch_array($result))
  
$max $row['position']
$max++;
$result $mysql_query("insert table set position=$max...."); 
 
Alt 05.11.2004, 10:56  
Gast
 
Beiträge: n/a
Standard

sorry, aber 2 auto_increment schlüssel machen keinen sinn .. weil die beide immer den
gleichen wert anzeigen werden ..

willst du pos immer id+1 haben? dann könntest du direkt nach dem insert nen update
durchführen. ist zwar wieder eine operation mehr .. aber anders wird's nicht laufen.
 
Alt 08.11.2004, 11:27  
Gast
 
Beiträge: n/a
Standard

> sorry, aber 2 auto_increment schlüssel machen keinen sinn .. weil die beide immer den
> gleichen wert anzeigen werden ..

doch das macht einen sinn, denn ich will die datensätze nach belieben verschieben können.
damit brauche ich die ID die immer gleich bleibt und die pos die sich dann an den verschiebenden datensätzen anpasst... auch etwas kompliziert erklärt...

okay versuche es mit der schleife.
 
Alt 08.11.2004, 11:32  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von jen
damit brauche ich die ID die immer gleich bleibt
Dafür bietet sich auto_increment an.

Zitat:
Zitat von jen
und die pos die sich dann an den verschiebenden datensätzen anpasst...
Dann pass sie eben an... wozu auto_increment?
__________________
mod = master of disaster
Waq ist offline  
Alt 08.11.2004, 11:58  
Gast
 
Beiträge: n/a
Standard

ich passe sie ja an, aber die positionen müssen zuerst einen wert erhalten...
 
Alt 08.11.2004, 13:58  
Gast
 
Beiträge: n/a
Standard

@Klabauter

warum funktioniert es nun nicht? bitte verständlich erklären, bin ein richtiger anfänger...

Code:
$db = MYSQL_CONNECT($db_server,$db_user,$db_passwort);
$result = mysql_query("SELECT Pos FROM $table ORDER BY Pos desc LIMIT 0,1"); 
while($row = mysql_fetch_array($result)) {
	$max = $row['Pos'];
	$max++; 
}
			
$insert = "INSERT INTO Notruf ( `ID` , `Pos` , `Notruf` , `Nummer` ) SET Pos = $max
VALUES ('', '$Pos', '$Notruf', '$Nummer');";
 
Alt 08.11.2004, 14:16  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Warum nimmst du nicht die Abfrage von Klabauter? Allerdings genügt dann ein einzelner fetch_*(), da max() immer nur eine Zeile zurück liefert:
PHP-Code:
$result mysql_query("select MAX(position) from table") or die(mysql_error());
$row mysql_fetch_array($result)
$max $row['position'] + 1;
$insert "INSERT INTO Notruf ( Pos , Notruf , Nummer) 
               VALUES ( $max, '$Notruf', '$Nummer')"

mysql_query($insert) or die(mysql_error()); 
Beim INSERT musst du entweder VALUES benutzen oder die Form SET attribut = wert, aber nicht beides. Ich bevorzuge die oben stehende Version, welche auch alle andern DBMS verstehen.
Denn Sinn des Ganzen verstehe ich allerdings immer noch nicht, du kannst ja die Attribute auch leer lassen, bis du sie benötigst.
__________________
Gruss
L
lazydog ist offline  
Alt 08.11.2004, 14:39  
Gast
 
Beiträge: n/a
Standard

nun kommt die fehlermeldung 'no database selected'... ich habe aber keine ahnung warum... ist doch alles definiert!?

PHP-Code:
$db MYSQL_CONNECT($db_server,$db_user,$db_passwort);
$result mysql_query("SELECT MAX(Pos) FROM $table"
    or die(
mysql_error()); 
$row mysql_fetch_array($result);
$max $row['Pos'] + 1;
$insert "INSERT INTO `Notruf` ( Pos , Notruf , Nummer) 
    VALUES ('$max', '$Notruf', '$Nummer')"

 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfage mit * im Wort "aut*" = auto, autos, autoha atoniusg Datenbanken 2 20.03.2008 18:58
Auto Increment spacedone PHP Tipps 2008 1 12.09.2007 09:47
auto increment synchronisieren /tmp Datenbanken 7 08.02.2006 23:09
[Erledigt] id mit auto increment -nummerierung neu starten Datenbanken 6 23.10.2005 22:32
Vorformartiertes Increment Datenbanken 3 10.10.2005 13:32
CSS -> margin:0 auto; GrU3nL!nG HTML, Usability und Barrierefreiheit 5 27.06.2005 21:41
Das [alte] Auto ist rot .... Das _____ Auto ist rot. janni PHP Tipps 2005 8 17.05.2005 08:37
auto increment zurücksetzen rocco Datenbanken 6 05.05.2005 19:20
AUTO INCREMENT mit Zeichen und Zahlen Datenbanken 1 25.02.2005 13:02
AUTO INCREMENT mit Zeichen und Zahlen PHP Tipps 2005 5 24.02.2005 16:07
Wie weit geht AUTO INCREMENT? socke Datenbanken 5 05.01.2005 15:14
[Erledigt] auto login PHP-Fortgeschrittene 2 05.10.2004 20:42
[Erledigt] Auto Increment über 2 Spalten Datenbanken 2 21.09.2004 19:52
[Erledigt] auto increment Wert Datenbanken 17 27.08.2004 12:32
Kleines problem mit ID auto Increment oder so :( PHP Tipps 2004 3 09.06.2004 19:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
myphpadmin auto_increment, myphpadmin autoincrement, wie auto-increment in myphpadmin, myphpadmin auto increment, increment php, php increment, auto_increment myphpadmin, auto_increment wiki, auto increment myphpadmin, wiki auto incrementing, id und position auto increment, php maximale auto_increment, myphp auto_increment, myphpadmin id mit buchstaben, auto increment id in myphpadmin, feld als auto_increment definieren php, php max increment ausgeben, myphpadmin verschieben, myphp for schleife, php autoincrement

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:55 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.