PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   SQL / Datenbanken (https://www.php-resource.de/forum/sql-datenbanken/)
-   -   Nächsten AutoIncrement Wert herausfinden? (https://www.php-resource.de/forum/sql-datenbanken/43495-naechsten-autoincrement-wert-herausfinden.html)

christianpfeil 26-08-2004 14:39

Re: Re: Nächsten AutoIncrement Wert herausfinden?
 
Zitat:

Original geschrieben von mrhappiness
dann erkläre mir bitte nochmal was gegen SHOW TABLE STATUS spricht?
Das spricht dagegen:

Warning: Supplied argument is not a valid MySQL result resource in /mnt/am2/08/220/00000005/htdocs/webedit/admin/neuer_artikel.php on line 24

;-)

Ich muss eine andere Lösung dafür finden.

Gruß Christian

Abraxax 26-08-2004 14:40

Re: Re: Re: Nächsten AutoIncrement Wert herausfinden?
 
Zitat:

Original geschrieben von christianpfeil
Das spricht dagegen:
und aufgrund welcher umsetzung deinerseits spricht dies dagegen?

was hast du an code dafür verwendet?

christianpfeil 26-08-2004 14:45

Diesen Code habe ich verwendet:

PHP-Code:

$id=mysql_query("SHOW TABLE STATUS LIKE 'artikel'");
$zeile0=mysql_fetch_array($id);
echo 
$zeile0[0]; 

An stelle "0" oder "auto_increment" soll der AutoIncrement Wert stehn.

So sieht die Tabelle dazu aus:

CREATE TABLE artikel (
id int(11) DEFAULT '0' NOT NULL auto_increment,
ueberschrift text NOT NULL,
sub_uberschrift text NOT NULL,
datum text NOT NULL,
autor_id int(11) DEFAULT '0' NOT NULL,
teaser text NOT NULL,
text text NOT NULL,
kategorie_id int(11),
keywords text NOT NULL,
PRIMARY KEY (id)
);

Auf einem anderen Server lief alles einwandfrei. Liegt wahrscheinlich an der DB Version also muss ich ne andere Lösung dafür finden.

Gruß Christian

mrhappiness 26-08-2004 14:46

PHP-Code:

$id=mysql_query("SHOW TABLE STATUS LIKE 'artikel'") or die(mysql_error()); 

das gibt was aus?

christianpfeil 26-08-2004 14:47

Zitat:

Original geschrieben von mrhappiness
PHP-Code:

$id=mysql_query("SHOW TABLE STATUS LIKE 'artikel'") or die(mysql_error()); 

das gibt was aus?

Array ( [0] => 0 [id] => 0 ) You have an error in your SQL syntax near 'TABLE STATUS LIKE 'artikel'' at line 1

Danke

goth 26-08-2004 14:48

Schon mal überlegt das der Auto_increment-Wert vielleicht gar nicht im RowIndex 0 steckt ... ?!

mrhappiness 26-08-2004 14:49

dann hast du also eine version < 3.23?
SHOW TABLE STATUS gibt's nämlich erst ab 3.23

armer kerl

schau mal in phpmyadmin, wenn der dir den nächsten auto_increment wert nicht anzeigt, dann wird's wohl nicht gehen

christianpfeil 26-08-2004 14:50

Bei php.net unter http://www.php.net/manual/de/functio...-insert-id.php steht:

Zitat:

To get the NEXT insert id use the mysql query SHOW TABLE STATUS LIKE 'tablename' and get the field auto_increment...
Funktionierte auch bei meinem anderen Server wie schon gesagt. Also dann nicht INDEX 0 sondern auto_increment - geht trotzdem nicht.

mrhappiness 26-08-2004 14:52

Code:

SELECT VERSION()
und mit meinem post oben abgleichen

goth 26-08-2004 14:52

Und das ganze auch noch Case sensitive ... wenn möglich ... !

christianpfeil 26-08-2004 14:52

k.A. welche Version, müsste erstmal nachschauen:

In phpMyAdmin steht

Name: PRIMARY
Typ : PRIMARY
Kardinalität: 10

Demnach müsste es doch gehn!
Welche Lösung schlägst du vor wenn es die Version nicht zulässt?

Gruß Christian

mrhappiness 26-08-2004 14:55

Zitat:

Original geschrieben von christianpfeil
k.A. welche Version, müsste erstmal nachschauen:
tu das

Zitat:

In phpMyAdmin steht

Name: PRIMARY
Typ : PRIMARY
Kardinalität: 10

Demnach müsste es doch gehn!
muss nicht

christianpfeil 26-08-2004 14:56

Und was hat es mit "SELECT VERSION()" auf sich?

Weißt du vielleicht eine andere Lösung wenn das nicht funktioniert. Bei den früheren Versionen muss es doch auch funktioniert haben!?

mrhappiness 26-08-2004 14:58

Zitat:

Original geschrieben von christianpfeil
Und was hat es mit "SELECT VERSION()" auf sich?
Versionsnummer von mysql erfragen

Zitat:

Weißt du vielleicht eine andere Lösung wenn das nicht funktioniert
so aus dem stehgreif nicht

Quickborner 26-08-2004 16:51

SHOW VARIABLES LIKE 'version'
 
so, bin mal gerade kurz aus dem Keller gekommen :p

christianpfeil !

ist es in deinem CMS möglich, daß mehrere Redakteure gleichzeitig Artikel einpflegen?

Ja ? hmm, ach so, dann ist vielleicht so eine Glaskugel-Funktion 'welches wird der nächste a_i-Wert sein' doch nicht das richtige ?

Wenn 2 Artikel-Uploads zeitnah passieren, erhalten beide Threads als Info zB '15'.

Der 1. trägt den Artikel ein, während dann die zugehörigen Daten/Bilder unter Referenz auf 15 gespeichert werden, trägt der 2. Thread einen weiteren Artikel ein: Dieser bekommt wegen Toller a_i Technik 16, während dieser 2.Thread aber Bilder/Daten mit Zeiger auf 15 speichert. boom.
Es sei denn, du verwendest bullet-proof Semaphoren/Locking Mechanismen. Aber das tust du nicht.

Glaub mir, bei Web-Projekten ist die Wahrscheinlichkeit _deutlich_ höher als Du vermutlich denkst.

Ich verstehe nicht, wieso man Minuten/Stunden/Manpower in etwas fragwürdiges investiert,um etwas zu erzwingen,
anstatt in dieser Zeit etwas vernünftiges, wiederverwendbares zu schreiben... naja, ich geh' mal wieder in den Keller.

im Betreff ist die Antwort auf die Versions-Frage, die bei allen mySql-Versionen funktionieren sollte(case sensitive).

Quickborner

Zitat:

Original geschrieben von goth
... und deshalb verwende ich (meistens) Autowerte und Ihre Derivate weil ich weder Zeit noch Lust habe mir was eigenes zu entwickeln, was sicherlich auch nicht ansatzweise so genial wäre wie Du ... !
-Danke-


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:51 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG