Zeilenweises Durchkämmen einer Ergebnismenge
kirchmeyer
- php
hallo,
ich hab folgendes problem.
mit der unten stehenden syntax bekomme ich durch die abfrage ein ergebnis, welches mir eine reihe von schlüsselcodes wiedergibt.
Bsp.: 6a00001, 6a00002, 6a00003 usw.
mein ziel ist es nun, dass ich die ergebniszeile mit der größten nummer - in dem fall 6a00003 - in eine variable bekomme (also "zu fassen bekomme").
ich muss also irgendwie in die ergebnismenge eingreifen können, um mir einen teil, also die größte nummer, rausziehen zu können.
hat jemand ne idee?
danke
<?php
$liste = mysql_query("SELECT A1_ALL FROM haupt WHERE (A1_ALL LIKE '$schluessel%')");
while ($treffer = mysql_fetch_array($liste))
{
echo $treffer['A1_ALL'];
}
?>
$liste = mysql_query("SELECT A1_ALL FROM haupt WHERE (A1_ALL LIKE '$schluessel%')");
while ($treffer = mysql_fetch_array($liste))
{
$a[]=$treffer['A1_ALL'];
}
natsort($a);
reset($a);
echo $a[count($a)-1];
?>
Gruß aus Berlin!
eddi
super danke, hat geklappt!
nun häng' ich aber an folgender stelle:
hab nun in
$a[count($a)-1];
die größte nummer (Bsp.: 6a00008) stehen, muss die aber noch mit 1 addieren.
hab also n substring draus gamcht --> 00008 dann +1 und dann
kommt aber als ergebnis nicht 00009, sondern 9 :-(
wie bekomm ich denn das hin, dass die nullen davor bleiben?
danke für den tipp
gruss aus potsdam
dann sollte Dir str_pad() weiterhelfen
Link gefällig ;) http://de.php.net/manual/de/function.str-pad.php
Gruß aus Berlin!
eddi
hab also n substring draus gamcht --> 00008 dann +1 und dann
kommt aber als ergebnis nicht 00009, sondern 9 :-(
preg_match("/^([0]+)([1-9]+)$/", $substring, $matches);
$endVal = $matches[count($matches) - 2] . intval($matches[count($matches) - 1]) + 1;
andi
hi,
<?php
$liste = mysql_query("SELECT A1_ALL FROM haupt WHERE (A1_ALL LIKE '$schluessel%')");
while ($treffer = mysql_fetch_array($liste))
{
preg_match("/^([0-9]+)([a-zA-z]+)([0-9]+)$/", $treffer['A1_ALL'], $matches);
if(intval($matches[count($matches) - 1]) > $speicherWert){
$speicherWert = intval($matches[count($matches) - 1]);
}
}
?>
ahoi, andi
sorry, so isses glaube ich so, wie du willst:
<?php
$liste = mysql_query("SELECT A1_ALL FROM haupt WHERE (A1_ALL LIKE '$schluessel%')");
while ($treffer = mysql_fetch_array($liste))
{
preg_match("/^([0-9]+)([a-zA-z]+)([0-9]+)$/", $treffer['A1_ALL'], $matches);
if(intval($matches[count($matches) - 1]) > $speicherWert){
$speicherWert = $treffer['A1_ALL'];
}
}
?>ahoi, andi
oh no... da ergibt sich wieder ein fehler, also nochmal:
<?php
$speicherWert = array(0, "leer");
$liste = mysql_query("SELECT A1_ALL FROM haupt WHERE (A1_ALL LIKE '$schluessel%')");
while ($treffer = mysql_fetch_array($liste))
{
preg_match("/^([0-9]+)([a-zA-z]+)([0-9]+)$/", $treffer['A1_ALL'], $matches);
if(intval($matches[count($matches) - 1]) > $speicherWert[0]){
$speicherWert[0] = intval($matches[count($matches) - 1]);
$speicherWert[1] = $treffer['A1_ALL'];
}
}
?>
jetze aba ;)
andi