mit php in mysql höchste id auslesen

04/12/2012 19:30 SuGGl#1
Hallo ich habe ein kleines Problem undzwar habe ich mir in pbp so ne art gästebuch gecodet, dieser code soll die größte id aus der spalte id ausgeben und +1 nehmen d.h die höchste id ist z.b 15 und dann +1 also 16.

PHP Code:
$abfrage "SELECT id FROM gästebuch ORDER BY id DESC LIMIT 0,1";
$result mysql_query($abfrage);
$id2 mysql_result($result,0,0);
$endid $id2 "1"
nunja wenn ich aber in dem gästebuch mehr als 10 einträge habe wird die id immer 10 haben und nicht +1 gezählt könnte mir einer sagen wo der fehler ist?
04/12/2012 19:41 Project Rivalry#2
ich nehme an das die id bei 0 startet oder irre ich mich ? hab das noch nie beobachtet aber vieles fängt im programmieren ja bei 0 an ( z.b. arrays) d.h. du müsstest einfach +2 nehmen
04/12/2012 19:50 JPGaming#3
Versuch mal
PHP Code:
$abfrage "SELECT `id` FROM `gästebuch` ORDER BY id DESC LIMIT 0,1"
$result mysql_query($abfrage); 
$id2 mysql_result($result,0); 
$endid $id2 1
Oder
PHP Code:
$abfrage "SELECT `id` FROM `gästebuch` ORDER BY id DESC LIMIT 0,1"
$result mysql_query($abfrage); 
$id2 mysql_fetch_array($result); 
$endid $id2[0] + 1
04/12/2012 19:59 SuGGl#4
Quote:
Originally Posted by JPGaming View Post
Versuch mal
PHP Code:
$abfrage "SELECT `id` FROM `gästebuch` ORDER BY id DESC LIMIT 0,1"
$result mysql_query($abfrage); 
$id2 mysql_result($result,0); 
$endid $id2 1
Oder
PHP Code:
$abfrage "SELECT `id` FROM `gästebuch` ORDER BY id DESC LIMIT 0,1"
$result mysql_query($abfrage); 
$id2 mysql_fetch_array($result); 
$endid $id2[0] + 1
funktioniert nicht

Falls ihr mich falsch versteht so siehts in der db aus
[Only registered and activated users can see links. Click Here To Register...]
04/12/2012 20:06 NotEnoughForYou#5
PHP Code:
$abfrage mysql_fetch_assoc(mysql_query("SELECT id FROM 'gästebuch' ORDER BY id DESC LIMIT 1"));

$neueID $abfrage['id'] + 1
wenn das nicht klappt, müsstest du mal die Tabellenstruktur zeigen ( also mit den typen der Felder )
04/12/2012 20:20 SuGGl#6
Es hat doch dein erster vorschlag gepasst habe nur bei dem feld id nicht den typ int gehabt vielen dank
#done
04/13/2012 06:12 .Marcel'#7
id = A_I aktivieren, und typ auf int setzen.

*A_I: Auto_Increment
04/13/2012 08:31 Whoknowsit#8
Wie .Marcel' schon sagte, solltest du AI aktivieren. Da das aber nicht "mal eben" zu machen ist, hier die einfachste Lösung (auszuführen beispielsweise über phpMyAdmin):

Code:
ALTER TABLE `gästebuch` DROP `id`;
ALTER TABLE  `gästebuch` ADD  `id` INT(11) NOT NULL AUTO_INCREMENT FIRST ,
ADD PRIMARY KEY (`id`);
Hier wird dein derzeitiges Feld "id" entfernt und ein neues Feld "id" angelegt, welches wiederum als Indexspalte mit AI deklariert ist.

Dadurch wird automatisch eine fortlaufende Nummer bei jedem Insert generiert, mit der wir arbeiten können:

Code:
SELECT MAX(`id`)+1 FROM `gästebuch`;
04/13/2012 09:20 JPGaming#9
PHP Code:
SELECT MAX(`id`)+AS `MaximumFROM `gästebuch`; 
04/13/2012 10:59 Whoknowsit#10
Das dürfte die Sache etwas erleichtern.