mysql-ből kiolvasás/módosítás kicsit bonyolultabban
sziasztok!
lenne egy eléggé bonyolult kérdésem, remélem valaki azért majd tud segíteni!
ugy néz ki hogy van két ürlap
egyik: gar_darab
másik: gar_serial
és az a lényeg, hogy amit ezekbe az ürlap mezőkbe beírnak azt keresse meg adatbázisba és szedje ki belőle és anélkül írja vissza..
A darab mezőben a számok csak így simán vannak mint pl.: 1,2,3 stb..
A serial mezőben a serialok viszont így vannak: [123131][12312321]
és egy sorban lehet hogy csak egy serialvan pl: [asdasdas] de lehet hogy több:
[132312323][575675765]...
erre a következő programot írtam, ami valoszinü nem a legjobb de máshogy nem nagyon tudtam megoldani..nost végeredményben a kód nem rossz, de ezt a hibát kapom:
Fatal error: Maximum execution time of 15 seconds exceeded....
vagy tölt 3 évig és nem csinál semmit
nemtudom mit kéne csinálni, remélem tudtok segíteni,
előre is köszönöm!
■ lenne egy eléggé bonyolult kérdésem, remélem valaki azért majd tud segíteni!
ugy néz ki hogy van két ürlap
egyik: gar_darab
másik: gar_serial
és az a lényeg, hogy amit ezekbe az ürlap mezőkbe beírnak azt keresse meg adatbázisba és szedje ki belőle és anélkül írja vissza..
A darab mezőben a számok csak így simán vannak mint pl.: 1,2,3 stb..
A serial mezőben a serialok viszont így vannak: [123131][12312321]
és egy sorban lehet hogy csak egy serialvan pl: [asdasdas] de lehet hogy több:
[132312323][575675765]...
erre a következő programot írtam, ami valoszinü nem a legjobb de máshogy nem nagyon tudtam megoldani..
function kiszed($mibol,$mit)
{
$hossz_mibol = strlen($mibol);
$hossz_mit = strlen($mit);
$kezdodik = strpos($mibol,$mit);
$eleje = substr($mibol,0,$kezdodik);
$vege = substr($mibol,$kezdodik+$hossz_mit,$hossz_mibol);
return $eleje . $vege;
}
$lekerdez = $db->sql_query("SELECT * FROM `szamlak` WHERE `termek`='{$_SESSION['termek']}'");
// lekérdezzük az esedékes termékeket
for($i=0;$i<$db->sql_numrows($lekerdez);$i++) // ez a ciklus azért kell hogy bejárjuk az adatbázist
{
$sor = $db->sql_fetchrow($lekerdez); // a tartalmát beletesszük a sor változóba
preg_match_all("/([^\[\]]+)/", $sor['sorozat_elad'], $sn_db, PREG_SET_ORDER);
preg_match_all("/([^\[\]]+)/", $_POST['gar_serial'], $sn_in, PREG_SET_ORDER);
for($z=0;$z<count($sn_db);$z++) // ez a ciklus azért kell hogy bejárjuk a sorozat_elad oszlopot és minden egyes []-ban lévő cuccot egyesével listázunk ki
{
for($y=0;$z<count($sn_in);$y++) // ez a ciklus azért kell hogy bejárjuk a gar_serial ürlapot
{
if ($sn_db[$z][0] == $sn_in[$y][0]) // meg keressük a párjáaikat (ürlap vs database)
{
$vissza_ir = kiszed($sor['sorozat_elad'],"[".$sn_in[$y][0]."]"); // kivonjuk az eladott sn-t az adatbázisban lévőből
$kivon = ($sor['darab_elad'] - 1); // az éppen aktuális sorban darab_elad oszlopbol is kivonunk egyet
$db->sql_query("UPDATE `szamlak` SET `sorozat_elad` = '{$vissza_ir}' LIMIT 1"); // vissza írjuk a megmaradt sorozat számokat
$db->sql_query("UPDATE `szamlak` SET `darab_elad` = '{$kivon}' LIMIT 1"); // vissza írjuk az egyel kevesebbb terméket
}
}
}
}
Fatal error: Maximum execution time of 15 seconds exceeded....
vagy tölt 3 évig és nem csinál semmit
nemtudom mit kéne csinálni, remélem tudtok segíteni,
előre is köszönöm!
Végtelen ciklus
Szerencsésebb lenne a lekérdezésen while ciklussal végigmenni:
jajj
bocsi az új témáért.... figyelmetlen voltam...
Mail
jaja
köszi mégegyszer!