• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Suma elementów w tablicy - PHP

Object Storage Arubacloud
0 głosów
1,679 wizyt
pytanie zadane 4 grudnia 2016 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
zamknięte 6 grudnia 2016 przez hiper007
												while($wiersz=$rezultat2->fetch_assoc())
												{													

													$tytul=$wiersz['tytul'];
													$tresc=$wiersz['tresc'];
													
															 $ilosc=substr_count(strtoupper($tytul), strtoupper($fraza)).'<br>';
															$ilosc2=substr_count(strtoupper($tresc), strtoupper($fraza)).'<br>';
														
								
															$a = array($ilosc,$ilosc2); 


															$suma = array_sum($a); 


															echo $suma; 

 

Mam trzy posty. W pierwszym odszukano slowo kluczowe 4 razy w drugim 3 razy w trzecim 1 raz. Razem daje 8  razy wynik mi sie wyswietla 431 w jaki sposob sumowac te liczby aby dalo mi wynik 8;)

$ilosc - ilosc odnalezionych slow kluczowych w temacie pojedynczego posta

$ilosc2 - ilosc odnalezionych slow kluczowych w tresci pojedynczego posta

 

komentarz zamknięcia: Problem rozwiazany

1 odpowiedź

+1 głos
odpowiedź 4 grudnia 2016 przez grollajt Bywalec (2,860 p.)
wybrane 5 grudnia 2016 przez hiper007
 
Najlepsza

Moze cos takiego zadziala:
 

 $suma=array();
while($wiersz=$rezultat2->fetch_assoc())
{                                                   
 
    $tytul=$wiersz['tytul'];
    $tresc=$wiersz['tresc'];
     
             $ilosc=substr_count(strtoupper($tytul), strtoupper($fraza));
            $ilosc2=substr_count(strtoupper($tresc), strtoupper($fraza));
         
 
            $a = array($ilosc,$ilosc2); 
 

            $suma[] = array_sum($a); 
 
 }
            $sumaCalkowita=array_sum($suma);
 echo $sumaCalkowita;

Albo cos takiego:
 

$suma=0;
while($wiersz=$rezultat2->fetch_assoc())
{                                                   
  
    $tytul=$wiersz['tytul'];
    $tresc=$wiersz['tresc'];
      
             $ilosc=substr_count(strtoupper($tytul), strtoupper($fraza));
            $ilosc2=substr_count(strtoupper($tresc), strtoupper($fraza));
          
  
            $a = array($ilosc,$ilosc2); 
  

            $suma = $suma+ array_sum($a); 
  
 }

 echo $suma;

A najprosciej to chyba tak:
 

 $suma=0;
while($wiersz=$rezultat2->fetch_assoc())
{                                                   
  
    $tytul=$wiersz['tytul'];
    $tresc=$wiersz['tresc'];
      
             $ilosc=substr_count(strtoupper($tytul), strtoupper($fraza));
            $ilosc2=substr_count(strtoupper($tresc), strtoupper($fraza));
          
  

            $suma = $suma + $ilosc + $ilosc2; 
  
 }

 echo $suma;

 

komentarz 4 grudnia 2016 przez hiper007 Stary wyjadacz (11,270 p.)

Super działa dzieki za Pomoc;) Mam pytanko a co gdybym chciał pokolorować w tescie znalezioną frazę innym kolorem czcionki...

							$subject = $tresc;
							$pattern = "/$fraza/";
							$replacement = '<span style="color:black; background-color:lime;">' . trim($pattern,'/') .'</span>';
							$result3 = preg_replace($pattern,$replacement , $subject);

Ale problem w tym ze jak wpisze szukana fraze "kol" to pokoloruje mi tylko znalezioną fraze "kol" Jak znajdzie w tekscie "Kol" to samo tylko z duzej litery to ominie ta fraze... Jak zrobić zeby kolorowalo bez wzgledu na wielkość liter?

$tresc to np. tresc postu a $fraza to szukana fraza

1
komentarz 4 grudnia 2016 przez grollajt Bywalec (2,860 p.)

Nie jestem dobry w wyrazeniach regularnych ale sprobuj zmienic $patern na : 
 

$pattern = '/'.$fraza.'/i';

chyba pomoze

komentarz 4 grudnia 2016 przez hiper007 Stary wyjadacz (11,270 p.)
edycja 4 grudnia 2016 przez hiper007
Pomogło z tym ze np. "Kol" robi mi sie "kol/i" zmienia mi tresc wiadomości na mala literę i wstawia /i . A funkcja ma zaznaczać nawet jak bedzie duża litera i kolorowac frazę ale nie zmieniać na mała literę ;)
1
komentarz 4 grudnia 2016 przez grollajt Bywalec (2,860 p.)

mam tylko ze z Kol zrobi ci kol:
 

$subject = $tresc;
$pattern = $fraza;
$replacement = '<span style="color:black; background-color:lime;">' . trim($pattern,'/') .'</span>';
$result3 = preg_replace('/'.$fraza.'/i',$replacement , $subject);

 

komentarz 4 grudnia 2016 przez hiper007 Stary wyjadacz (11,270 p.)
Dokladnie ;)

taka  wersje tez mam ;) ale wlasnie tutaj ma zaznaczyc ale nie zmienic;) np.bedzie w tresci nazwisko Kolczyński ;) a zaznaczy mi i zmieni na kolczyński ;) tak niebardzo pewnie sa jakies metody zeby to zrobic a  nie zmieniac ;)ale mi sie pomysly wyczerpały ;)
1
komentarz 4 grudnia 2016 przez grollajt Bywalec (2,860 p.)
edycja 4 grudnia 2016 przez grollajt

Pewnie jest prostsze rozwiazenie ale nakombinowalem i powinno dzialac:

$fraza=trim($fraza);
$pattern = array(
    '/' . strtolower($fraza) . '/',
    '/' . strtoupper($fraza) . '/',
    '/' . ucfirst($fraza) . '/',
);


$fReplacement = '<span style="color:black; background-color:lime;">';
$endReplacement = '</span>';
$replacement = array(
    $fReplacement . strtolower($fraza) . $endReplacement,
    $fReplacement . strtoupper($fraza) . $endReplacement,
    $fReplacement . ucfirst($fraza) . $endReplacement,
);

$result3 = preg_replace($pattern, $replacement, $tresc);


 

komentarz 5 grudnia 2016 przez hiper007 Stary wyjadacz (11,270 p.)

Dzieki wszystko dziala jak powinno ;)

 Wyswietlam wyniki wyszukiwania

if($ilu_userow==1)
															
												{
																
															if($suma==1)	
															{
																
																echo'<p style="color:red; font-size:16px; font-weight:bold;"><span style="color:#7CFC00;">Rezultat wyszukiwania: <span style="color:gold; font-weight:bold;">'.$suma. '</span> <span style="color:red; font-weight:bold;"> wynik  </span> ( <span style="color:gold; font-weight:bold;">'.$ilu_userow.'</span><span style="color:red; font-weight:bold;"> temat</span> )</p><br>';
																
															}elseif (($suma==2)||($suma==3)||($suma==4))
															{
																
																echo'<p style="color:red; font-size:16px; font-weight:bold;"><span style="color:#7CFC00;">Rezultat wyszukiwania: <span style="color:gold; font-weight:bold;">'.$suma. '</span> <span style="color:red; font-weight:bold;"> wyniki  </span> ( <span style="color:gold; font-weight:bold;">'.$ilu_userow.'</span><span style="color:red; font-weight:bold;"> temat</span> )</p><br>';
																
															}else{
																
																echo'<p style="color:red; font-size:16px; font-weight:bold;"><span style="color:#7CFC00;">Rezultat wyszukiwania: <span style="color:gold; font-weight:bold;">'.$suma. '</span> <span style="color:red; font-weight:bold;"> wyników </span> ( <span style="color:gold; font-weight:bold;">'.$ilu_userow.'</span><span style="color:red; font-weight:bold;"> temat</span> )</p><br>';
																
															}
																
	
																
													}elseif (($ilu_userow==2)||($ilu_userow==3)||($ilu_userow==4))
													{
																
															if($suma==1)	
															{
																
																echo'<p style="color:red; font-size:16px; font-weight:bold;"><span style="color:#7CFC00;">Rezultat wyszukiwania: <span style="color:gold; font-weight:bold;">'.$suma. '</span> <span style="color:red; font-weight:bold;"> wynik  </span> ( <span style="color:gold; font-weight:bold;">'.$ilu_userow.'</span><span style="color:red; font-weight:bold;"> tematy</span> )</p><br>';
																
															}elseif (($suma==2)||($suma==3)||($suma==4))
															{
																
																echo'<p style="color:red; font-size:16px; font-weight:bold;"><span style="color:#7CFC00;">Rezultat wyszukiwania: <span style="color:gold; font-weight:bold;">'.$suma. '</span> <span style="color:red; font-weight:bold;"> wyniki  </span> ( <span style="color:gold; font-weight:bold;">'.$ilu_userow.'</span><span style="color:red; font-weight:bold;"> tematy</span> )</p><br>';
																
															}else{
																
																echo'<p style="color:red; font-size:16px; font-weight:bold;"><span style="color:#7CFC00;">Rezultat wyszukiwania: <span style="color:gold; font-weight:bold;">'.$suma. '</span> <span style="color:red; font-weight:bold;"> wyników </span> ( <span style="color:gold; font-weight:bold;">'.$ilu_userow.'</span><span style="color:red; font-weight:bold;"> tematy</span> )</p><br>';
																
															}
																
		
														
													}else
													{
																
																
															if($suma==1)	
															{
																
																echo'<p style="color:red; font-size:16px; font-weight:bold;"><span style="color:#7CFC00;">Rezultat wyszukiwania: <span style="color:gold; font-weight:bold;">'.$suma. '</span> <span style="color:red; font-weight:bold;"> wynik  </span> ( <span style="color:gold; font-weight:bold;">'.$ilu_userow.'</span><span style="color:red; font-weight:bold;"> tematów</span> )</p><br>';
																
															}elseif (($suma==2)||($suma==3)||($suma==4))
															{
																
																echo'<p style="color:red; font-size:16px; font-weight:bold;"><span style="color:#7CFC00;">Rezultat wyszukiwania: <span style="color:gold; font-weight:bold;">'.$suma. '</span> <span style="color:red; font-weight:bold;"> wyniki  </span> ( <span style="color:gold; font-weight:bold;">'.$ilu_userow.'</span><span style="color:red; font-weight:bold;"> tematów</span> )</p><br>';
																
															}else{
																
																echo'<p style="color:red; font-size:16px; font-weight:bold;"><span style="color:#7CFC00;">Rezultat wyszukiwania: <span style="color:gold; font-weight:bold;">'.$suma. '</span> <span style="color:red; font-weight:bold;"> wyników </span> ( <span style="color:gold; font-weight:bold;">'.$ilu_userow.'</span><span style="color:red; font-weight:bold;"> tematów</span> )</p><br>';
																
															}
																
	
													}	

$suma - ilosc fraz odszukanych

$ilu_userow - to  ilosc odszukanych tematow w ktorych wystepuja frazy

zalozmy ze odszukano 

1 wyszukiwanie - 1 wynik

2 wyszukiwanie - 22 wyniki

3 wyszukiwanie - 33 wyniki

4 wyszukiwanie - 47 wyników

Jak by sie zastnowić to jest 1 "wynik" wszystkie wyniki z końcóka 0,1,5,6,7,8,9 maja  "wyników"  a końcowka  2,3,4 maja "wyniki"

															if($suma==1)	
															{
																
																echo'<p style="color:red; font-size:16px; font-weight:bold;"><span style="color:#7CFC00;">Rezultat wyszukiwania: <span style="color:gold; font-weight:bold;">'.$suma. '</span> <span style="color:red; font-weight:bold;"> wynik  </span> ( <span style="color:gold; font-weight:bold;">'.$ilu_userow.'</span><span style="color:red; font-weight:bold;"> tematów</span> )</p><br>';
																
															}elseif (($suma==2)||($suma==3)||($suma==4))
															{
																
																echo'<p style="color:red; font-size:16px; font-weight:bold;"><span style="color:#7CFC00;">Rezultat wyszukiwania: <span style="color:gold; font-weight:bold;">'.$suma. '</span> <span style="color:red; font-weight:bold;"> wyniki  </span> ( <span style="color:gold; font-weight:bold;">'.$ilu_userow.'</span><span style="color:red; font-weight:bold;"> tematów</span> )</p><br>';
																
															}else{
																
																echo'<p style="color:red; font-size:16px; font-weight:bold;"><span style="color:#7CFC00;">Rezultat wyszukiwania: <span style="color:gold; font-weight:bold;">'.$suma. '</span> <span style="color:red; font-weight:bold;"> wyników </span> ( <span style="color:gold; font-weight:bold;">'.$ilu_userow.'</span><span style="color:red; font-weight:bold;"> tematów</span> )</p><br>';
																
															}

Jak by to poprawić zeby pokazywało poprawnie bo np. jak wylosuje 22 wyniki to wyswietli mi 22 "wyników"

1
komentarz 5 grudnia 2016 przez grollajt Bywalec (2,860 p.)

Moze cos takiego($q to chyba u ciebie bedzie $suma) znowu nakombinowalem ale powinno dziac:

$arrayWynikow=array(0,1,5,6,7,8,9);
$arrayWyniki=array(2,3,4);
$q=14658979127;
$var = strlen($q);
$qTemp=str_split($q,1);
$varCorect=$qTemp[$var-1];

if($q===1){
echo 'wynik';
}
elseif(in_array($varCorect, $arrayWyniki)){
    echo 'wyniki';
}
elseif(in_array($varCorect, $arrayWynikow)){
    echo 'wynikow';
}

 

komentarz 5 grudnia 2016 przez hiper007 Stary wyjadacz (11,270 p.)
edycja 6 grudnia 2016 przez hiper007
haha ;) dzieki ziomek ;) Masz głowe do kombinowania ;)

Oto do czego było mi to potrzebne ;)

http://silent-hill.pl/forum-silent-hill-history-szukaj
komentarz 6 grudnia 2016 przez hiper007 Stary wyjadacz (11,270 p.)

Problem  jest w tym ze: jak wpisze np. kor

to mi rozwala linka ktorego tworze w  taki sposob:

							$subject = $trescp;
							$pattern = '#(https?://[^ ]*)#';
							$replacement = '<a style="font-weight:normal; text-decoration:underline;" target="_blank" href="\\1" class="login13">\\1</a>';
							$result = preg_replace($pattern, $replacement, $subject);

a takwyglada w przegladarce:

i wpisujac fraze ktora znajduje sie  w linku rozwala mi calkowicie linka ;) 

 

1
komentarz 6 grudnia 2016 przez grollajt Bywalec (2,860 p.)
Musisz zmienic wyrazenie regularne ale niestety jak pisalem wczesniej jestem w tym slaby. Wiec raczej tu nie pomoge. Sprobuj zadac pytanie na forum to ktos ci powinien pomoc.
komentarz 6 grudnia 2016 przez hiper007 Stary wyjadacz (11,270 p.)
I tak wielkie dzieki za pomoc ;)

Podobne pytania

+1 głos
2 odpowiedzi 1,903 wizyt
pytanie zadane 7 listopada 2018 w C i C++ przez Młody programista Obywatel (1,200 p.)
0 głosów
1 odpowiedź 1,239 wizyt
pytanie zadane 2 czerwca 2017 w C# przez Szymek_sw Początkujący (420 p.)
0 głosów
2 odpowiedzi 226 wizyt

92,617 zapytań

141,467 odpowiedzi

319,784 komentarzy

61,999 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...