webForumDet fria alternativet

MySQL explode

3 svar · 1 135 visningar · startad av Inferis

InferisMedlem sedan sep. 2000669 inlägg
#1

Hej!
Har kört fast lite. Det funkar att hämta det jag vill så länge datan ser likadan ut i databasen.
Men hur gör jag för att bara hämta de två sista?

Det kan se ut så här i db och variera en del:
123 ccc, 234,345 aaa, bbb
ddd, ffff, 234,345 aaa, bbb
234, 345 aaa, bbb
345 aaa, bbb

I mitt fall vill jag bara hämta datan från två sista komma. Och helst utan siffror efter näst sista komma. Sista komma innehåller aldrig siffror.
Alltså -> aaa, bbb (och inte 345)
aaa, bbb, 345 är aldrig samma värde

$phoneChunks = explode(",", $phone);
echo "Hela = $phone <br />";
echo "Första = $phoneChunks[0]<br />";
echo "Andra = $phoneChunks[1]<br />";
echo "Tredje = $phoneChunks[2]";

Ovanstående kod fungerar bra om datan alltid innehåller två komma. Men det är ibland fler. Så det är de två sista jag vill ha.

@ndersMedlem sedan juni 200026 914 inlägg
#2

Fast det här har ju mycket lite med SQL att göra. Flyttar tråden till PHP-forumet istället.

mvh

prplxrMedlem sedan juni 2012557 inlägg
#3

Använd dig av count($phoneChunks) för att få reda på hur "lång" arrayen är och jobba dig därifrån.

InferisMedlem sedan sep. 2000669 inlägg
#4

Count hade jag inte en tanke på. Tack!
Jag löste det så här.

if (count($phoneChunks)>"2")
  {
  echo str_replace(array(1,2,3,4,5,6,7,8,9,0,' '),'', $phoneChunks[1]);
  }
	else
  {
  echo str_replace(array(1,2,3,4,5,6,7,8,9,0,' '),'', $phoneChunks[0]);
  }
Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb