Evidențiere cuvânt interogat

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
bvlucretiu
Mesaje:88

Evidențiere cuvânt interogat

Am acest cod pentru interogarea unei baze de date:

Cod: Selectaţi tot

<form action="http://localhost/enom_db/index.php?pagina=doi" method="post">
<br><b><i>Introduceti Interogarea:</i></b><br><br><input align="center" type="text" name="ceruta">
<input type="Submit" value="Cauta">
</form>
<?php
echo '<div id="select">';
$ceruta =($_POST['ceruta']);
// conecteaza la baza de date "tests" 
$conn = new mysqli('localhost', 'root', '3824', 'enom');

// verifica conexiunea
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}
$id = $ceruta;
$alias = $ceruta;
$nume = $ceruta;
$nume_initial = $ceruta;
$prenume = $ceruta;   

// interogare sql SELECT 
$sql = "SELECT `id`,
                         `nume`,
			 `nume_initial`,
			 `prenume` FROM `ronto`WHERE 
			 `prenume`='$prenume' OR
			 `prenume2`='$prenume2' OR 
			 `nume`='$nume' OR
			 `nume_initial`='$nume_initial' OR
			 `id`='$id'  "; 

$result = $conn->query($sql);

$result = $conn->query($sql);

// daca $result contine cel putin un rand
if ($result->num_rows > 0) {
  // afiseaza datele din fiecare rand din $result
  while($row = $result->fetch_assoc()) {
     echo '<br /> <div id="id"> Id: <br><b>'. $row['id']. '</b> </div> <div id="nume">Nume:<br><b>'
	 . $row['nume']. '</b>  <i>'
	 . $row['nume_initial']. ' </i><b> '
	 . $row['prenume'].'  ';
  }
}
else {
  echo '0 rezultate';
}

$conn->close();
echo '</div>';
?>
nu știu unde ar trebui să-i introduc un div sau ce ar trebui să fac pentru a evidenția cuvântul căutat, în interogare acel cuvânt să apară evidențiat (colorat, îngroșat, etc), în toate locurile unde apare?
Am făcut un rezumat al codului sper să nu fi omis ceva din greșală!
Vă mulțumesc!

steell Mesaje:190
poti sa inlocuiesti cuvantul dupa ce extragi datele din tabel cu <b>cuvant</b>
adaugi asta la inceputul acelui while()

Cod: Selectaţi tot

$row = str_ireplace($cuvantul, '<b>'.$cuvantul.'</b>', $row);
unde $cuvantul este cuvantul preluat prin $_GET sau $_POST

MarPlo Mesaje:4343
Daca vrei sa evidentiezi cu alta culoare, dupa interogarea Select adaugi coloana respectiva intre tag <span> cu "style".
Cam asa:

Cod: Selectaţi tot

echo '... <span style="color:#0001fe;">'. $row['nume_cloana'] .'</span> ...';
 

bvlucretiu Mesaje:88
Bună!
La căutarea unui cuvânt îmi apare toată înregistrarea de pe acel rând care conţine cuvântul respectiv din baza de date însă eu chiar asta doresc să-mi afişeze toată linia şi doar acel cuvânt să fie afişat cu altă culoare, însă în căutare poate să fie cuvânt din oricare coloană, poate să îmi afişeze rândul care are acel cuvânt în nume sau să existe şi în prenume, iar eu doresc să se observe mai repede cuvântul pe care l-am căutat!
Mulţumesc!

MarPlo Mesaje:4343
Daca acel cuvant cautat e in variabila $ceruta, incearca sa aplici in script dupa acest model:

Cod: Selectaţi tot

echo '... '. str_ireplace($ceruta, '<strong style="color:#0001fe;">'. $ceruta .'</strong>', $row['nume']) .' ...';
 

bvlucretiu Mesaje:88
Bună
Este super codul, l-am văzut aproape imediat după ce l-aţi postat dar nu am avut timp să-l încerc, dar este super ok.
Vă mulţumesc pentru înţelegere şi ajutor, asta doream!

Cod: Selectaţi tot

echo '... '. str_ireplace($ceruta, '<strong style="color:#0001fe;">'. $ceruta .'</strong>', $row['nume']) .' ...';
Apropo, cum faceţi că postările dumneavoastră de cod, apar colorate ca în program (ex. Notepad++) php?

MarPlo Mesaje:4343
Pentru postari cu evidentieri colorate a codului php in acest forum se foloseste tag-ul