WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   PHP-Frage (http://www.wcm.at/forum/showthread.php?t=93668)

Take_Five 09.04.2003 18:57

PHP-Frage
 
Hallöchen. Ich hab eine PHP-SQL Frage. Ich möchte aus einem Datenbankfeld den höchsten Wert auslesen und 1 dazuzählen.

Ich hab das mal so gelöst (funkt aber leider nur von 0-9 alles über 10 schafft er nischt)

$query="Select MAX($field) from ".$table;
If(!$a=mysql_query($query))
{ echo mysql_error();
return NULL
}
$result=mysql_fetch_array($a);
$result[0]+=1;
return $result[0];

Es funktioniert bis 10. Dann krieg ich immer nur 10 10 10 10.

pong 09.04.2003 22:16

Wie schaut denn dein table aus?

Desweiteren hast du nen Syntaxfehler ein deinem Codestück (ist dir aber sicher schon aufgefallen ;) )

pong

>>$result[0]+=1;

bist du dir auch ganz sicher mit dieser Zeile und weisst genau welches Stück du damit änderst? (ein etwaige Wiederbenutzer wird dich auf jedenfall dafür hassen)

pong

Take_Five 14.04.2003 18:07

Naja im Table steht:

ID und Name. result[0] liefert mir somit die ID. Ich mein, ich habs jetzt mit einer Iteration gelöst also:

$max=0;
while($result=mysql_fetch_array($a))
{
If($max<$result[0])
{ $max=$result[0];
}
}
return $max+=1;


Mich würd trotzdem interessieren warum des mit der SQL Max Funktion ned funkt. weil mit der Schleife funktionierts, insofern kann des $result[0] nicht dran Schuld sein.

käptn 14.04.2003 18:32

Hm...

Was funkt nicht?

SQL: SELECT MAX(id)+1 as Maximum FROM ...

~

Take_Five 14.04.2003 19:14

"Select MAX(".$FIELD.") FROM tabproducts"; Wobei in $FIELD "ID" drin steht.

und des $result[0] geht aber nur bis 10 und nicht höher

_m3 14.04.2003 19:44

Was für ein Feldtyp ist denn "ID" ???
Numerisch oder Text?

Take_Five 14.04.2003 20:04

Numerisch

jonix 14.04.2003 20:28

klingt fuer mich danach, dass der query MAX() keinen array zurueckgibt, sondern einen string. versuch mal, was passiert, wenn du folgendes schreibst:
PHP-Code:

$query "Select MAX(" $field ") from " $table
if(!
$a=mysql_query($query))
{
  echo 
mysql_error(); 
  return 
NULL;

$result mysql_fetch_array($a); 
return(
$result 1); 

(nur ein schuss ins blaue)

käptn 14.04.2003 20:40

mysql_fetch_array gibt auf jeden Fall ein Array zurück.

Was ist denn der höchste Wert in deiner Tabelle.Spalte?

~

Take_Five 14.04.2003 20:41

na, funkt auch nicht

käptn 14.04.2003 20:47

Verwendest du MySQL?

Dann poste mal ein SHOW FIELDS FROM tabelle

~

jonix 14.04.2003 21:17

PHP-Code:

$table "includes";
$field "ID";

$query "Select MAX(" $field ") from " $table
$result mysql_query($query);
$row mysql_fetch_array($result,MYSQL_BOTH);
echo (
$row[0]+1); 

das funktioniert bei mir tadellos (zb mit dem wert 23) - ID ist vom typ int (laenge 8)...

ps: der kaeptn hat natuerlich mit dem rueckgabe-array recht.

Take_Five 14.04.2003 21:30

hmmmm! Komisch... Naja, is egal, ich hab eh schon das workaround geschriebn. Danke jedenfalls allen, die hier gepostet haben.
Mal sehn, vielleicht stimmt doch was mit dem Datentyp nicht.
Thx jedenfalls allen


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag