webForumDet fria alternativet

Dela en sträng i 2 delar, ändra ena delen och sätta tillbaka till en???!

PHP

9 svar · 546 visningar · startad av Smurfina

Medlem sedan sep. 200914 inlägg
Frågan#1

Är det någon som kan hjälpa mig?
Jag vill plocka upp ett internt OrderNr från en mySQL databas till en php-sida, och öka det största OrderNr med 1.
När jag har kört min query har $RCOrderNr värdet 401. Problemet är att nummerserien för OrderNr alltid ska börja med 40 och därefter ska ett löpande nummer läggas på.

På något sätt måste jag plocka sönder $RCOrderNr för att se vilka siffror som kommer efter 40 och sedan öka den siffran med 1 och plocka ihop allt i en ny variabel som kan läggas in i databasen, eller??! Hur??!

Jag bifogar koden som jag använder för att plocka upp det största RCOrderNr.

$query_RCOrderNR = "SELECT MAX( extra_RCOrderNr ) FROM web_entry";
$RCOrderNr = mysql_query($query_RCOrderNR) or die("Failed to get RCOrderNr");

Vore väldigt tacksam för tips hur jag kan få till resten av koden!

Medlem sedan juli 20023 617 inlägg
#2
<?
	function lopnr_inc($a)
	{
		$lopnr = "40".(substr($a,2) + 1);
		return $lopnr;
	}
	
	$lopnummer = 40338;
	$nytt_lopnummer = lopnr_inc("$lopnummer");
	print $nytt_lopnummer; //Ger 40339
?>
Medlem sedan sep. 200914 inlägg
#3

fiddler skrev:

<?
	function lopnr_inc($a)
	{
		$lopnr = "40".(substr($a,2) + 1);
		return $lopnr;
	}
	
	$lopnummer = 40338;
	$nytt_lopnummer = lopnr_inc("$lopnummer");
	print $nytt_lopnummer; //Ger 40339
?>

Jag får inte RCOrderNr till att öka med 1. Jag använder din funktion... Kan någon se vad som är felet?
Här är koden:

$query_RCOrderNR = "SELECT MAX( extra_RCOrderNr ) FROM web_entry";
$RCOrderNr = mysql_query($query_RCOrderNR) or die("Misslyckades att hämta det största RCOrderNr");

function lopnr_inc($a)
{
$lopnr = "40".(substr($a,2) + 1);
return $lopnr;
}

$nytt_lopnummer = lopnr_inc("$RCOrderNr");
print $nytt_lopnummer; //Ger RCOrderNr + 1

Medlem sedan juli 20023 617 inlägg
#4

Vad är $RCOrderNr från början och vad skrivs ut?

Medlem sedan sep. 200914 inlägg
#5

fiddler skrev:

Vad är $RCOrderNr från början och vad skrivs ut?

Från början är RCOrderNr 402. Och 401 skrivs ut!

Medlem sedan juli 20023 617 inlägg
#6

Vad märkligt. 401 får du om variabeln är tom eller har färre siffror än tre...

Testade du exemplet jag hade med 40338?

Medlem sedan sep. 200914 inlägg
#7

fiddler skrev:

Vad märkligt. 401 får du om variabeln är tom eller har färre siffror än tre...

Testade du exemplet jag hade med 40338?

Jag bytte ut 402 i databasen till 40338. Men får fortfarande 401 från funktionen. Om jag kör sql-queryn för sig får jag det högsta värdet tillbaka (alltså 40338), så queryn funkar. Vad har jag missat? Något förslag?

Medlem sedan jan. 2005953 inlägg
#8

mysql_query() returnerar inget värde från databasen. Du måste använda mysql_result() / mysql_fetch_assoc() eller liknande funktion för att få fram värdet.

Medlem sedan sep. 200914 inlägg
#9

metalboy skrev:

mysql_query() returnerar inget värde från databasen. Du måste använda mysql_result() / mysql_fetch_assoc() eller liknande funktion för att få fram värdet.

Tack! Det var det som var problemet! Nu fungerar fiddlers funktion precis som den ska! Stort tack för hjälpen!

Medlem sedan juli 20023 617 inlägg
#10

Vabra!! :)

251 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)