auto_increment mit buchstaben -> computed field
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 18.08.2010 - 20:10 Uhr in
Hallo,
ich würde mir gern per http://drupal.org/project/computed_field ein auto-increment-Feld erstellen. Allerdings sollen der hochzuzählenden Nummer 3 Buchstaben vorangestellt sein (abc1234567).
Kann mir jemand sagen, wie ich dazu das in der Doku gezeigte Codeschnipsel ändern muss?
if (!empty($node_field[0]['value'])) { // the node is not new
return $node_field[0]['value'];
}
else { // the node is new
$count = db_result(db_query("SELECT COUNT(*) from {node} WHERE type = 'transaction'"));
$node_field[0]['value'] = $count;
}
Ich wüsste auch gern noch, wie ich den Anfangswert festlegen kann. Per Datenbankeingriff habe ich das gerade versucht - erfolglos.
Vielen Dank schon mal fürs Lesen.
- Anmelden oder Registrieren um Kommentare zu schreiben
Zähler
am 19.08.2010 - 09:36 Uhr
Hallo.
Kann mir jemand sagen, wie ich dazu das in der Doku gezeigte Codeschnipsel ändern muss?
<?php
if (!empty($node_field[0]['value'])) { // the node is not new
return $node_field[0]['value'];
}
else { // the node is new
$count = db_result(db_query("SELECT COUNT(*) from {node} WHERE type = 'transaction'"));
$node_field[0]['value'] = 'abc'. $count;
}
?>
Ich wüsste auch gern noch, wie ich den Anfangswert festlegen kann.
<?php
$count += 1000; // Startwert
$node_field[0]['value'] = 'abc'. $count;
?>
hth,
Stefan
Vielen Dank Stefan, eine
am 19.08.2010 - 10:57 Uhr
Vielen Dank Stefan,
eine Frage habe ich noch vorab.
Wird der Code für den Anfangswert nur einmalig angewendet, um den Wert hochzuzählen, oder bleibt der immer drin?
Entschuldige bitte, dass ich frage, bevor ich probiere. Ich möchte mir nur nicht irgendwelche Werte in die DB schreiben, die ich dann nicht mehr benötige. Leider bin ich auch nicht in der Lage, die Anwendung anhand des Codes zu erkennen.
So: if
am 19.08.2010 - 11:22 Uhr
So:
if (!empty($node_field[0]['value'])) { // the node is not new
return $node_field[0]['value'];
}
else { // the node is new
$count = db_result(db_query("SELECT COUNT(*) from {node} WHERE type = 'wohnung_miete'"));
$count += 10020020; // Startwert
$node_field[0]['value'] = 'mww'.$count;
}$node_field[0]['value'] = 'mww'. $count;
funktioniert es erstmal wie gewünscht.
Allerdings werden IDs, welche gelöscht werden, wieder verwendet. Es handelt sich bei der Lösung also nicht um eindeutige IDs. Kann man das auch noch irgendwie hinbekommen?
Zähler
am 19.08.2010 - 11:43 Uhr
Wird der Code für den Anfangswert nur einmalig angewendet, um den Wert hochzuzählen, oder bleibt der immer drin?
Der bleibt dann drin, da ja der Startwert immer zum eigentilchen Zähler hinzugefügt wird.
Der Zähler beinhaltet ja nur die Anzahl der vorhandenen Nodes. Mehr macht der nicht.
Stefan
Zitat: Der Zähler beinhaltet
am 19.08.2010 - 12:16 Uhr
Der Zähler beinhaltet ja nur die Anzahl der vorhandenen Nodes.
Danke für die Erklärung. Das hilft dem Verständnis sehr.
Also brauche ich eine Funktion, die sich die zuletzt erstellte ID ansieht und +1 rechnet.
Kann mir da auch geholfen werden?