подреждане на резултати от search.php

crystalline

Registered
здравейте,
наскоро подкарах една търсачка (скрипта е от уроците тук) ...досега не се бях занимавал с mysql и сега си бачка де.
но искам да подредя данните от търсенето, да бъдат малко по-сбити...първовачално си мислех че това става с редактирането на ето този код. аз промених широчината на таблицата, в която се плюсва текста, но се променя само самия текст. въпреки това има нещо, което ми е неизвестно - самата таблица става доста по-голяма от 400px, колкото аз съм задал...
разгледах кода но не се сещам къде може да е проблема.
пример / проблем: http://i144.photobucket.com/albums/r197/dragogoranov_2007/table_search.jpg

някакви идеи ?

tarsene.pgp
Код:
<?php

$tarsene = $_GET[Search];

if($_GET['Search'])
{
//server connfigure////////////////////////////////////////////////
$server = "localhost";
$dbusername = "blind";
$dbpassword = "blind";
$db_name = "jorobg";
//server connfigure/////////////////////////////////////////////////

mysql_connect($server, $dbusername, $dbpassword)or die("Сайтът не може да се свърже към базата данни");
@mysql_select_db($db_name) or die("Грешна база данни");

//следните функции са за разделяне на стринга,
//за да не търси последователност
$trimmed = trim($tarsene); //премахваме ненужните полета
$var = explode(" ",$trimmed); //разделяме стринга думи
$count = count($var); //преброяваме думите в стринга

//следва един цикъл с които избягваме дублиращите се резултати
for($i = $count-1;$i < sizeof($var); $i++) {

$abc = $var[$i];

//правиме заявка към базата данни ползваме $abc което е всяка отделна дума от стринга,
//а '% %' го ползваме за да може примерно ако търсиме "кон" да покаже и резултати като "конски"
$chars="SET CHARACTER SET cp1251";mysql_query($chars);
$querys = " SELECT * FROM news WHERE `newstext` LIKE '%$abc%' ORDER BY id_news DESC";
$results = mysql_query($querys) or die('Error, query failed');
$count = mysql_num_rows($results);
//и ако са по малко от 1 ще покаже съобщение че няма намерени резултати.
if ($count<1)

{echo "<center><b>Няма намерени резултати за ".$tarsene."</b></center><br><br>";}


while($row = mysql_fetch_array($results))
{
$id_news=$row[id_news];
$newstext=$row[newstext];

//следващата функция е за заместването на търсените думи от стринга
//със същите думи, но с оцветяване. font style=color:#000000;background-color:#FFFF00; тук
//сме задали какъв да е цвета на шрифта и какъв на бекграунда на търсената дума.
$replece=array();

for($i = 0;$i < sizeof($var); $i++) {
$newvar[$i]="<font style=color:#000000;background-color:#FFFF00;><b>$var[$i]</b></font>";
array_push($replece,$newvar[$i]);
}

$newtext=str_replace($var,$replece,$newstext);

//и следва шизуализиране на заявката. забележете, че вмесо да изпишем $newstext ползваме вече
//текста с заменените думи с оцветяване $newtext.

echo "<table width=400 border=0 cellpadding=0 cellspacing=0>
<tr>

<td class=text height=19>  <strong><a href=fullnews.php?id_news=".$id_news.">".$title."</a></strong></td>
</tr>

<tr>
<td>
<table id=lineLRBs class=nav border=0 cellpadding=0 cellspacing=0 width=400>
<tr>
<td height=25px id=lineBottom width=400><b>Търсената дума е намерена тук: </b></td>
<td height=25px id=lineBottom width=5> </td>
<td height=25px id=lineBottom width=5>  </td>
</tr>
<tr>
<td id=lineBottom  colspan=3><div>
            <table cellpadding=0 width=400>
              <tr>
<td><p align=justify>$newtext</p></td>
</tr>
</table></div></td>
</tr>
<tr>
<td height=25px width=400></td>
<td height=25px width=5> </td>
<td height=25px width=5> </td>
</tr>
</table>";
echo "<br>";
}}} //затваряме всички вече отворени големи скоби.
?>

благодаря предварително

може би малко по-точна представа ще придобието от това:
http://i144.photobucket.com/albums/r197/dragogoranov_2007/devision.jpg
 
с риск да се окажем абцулютни нахални и нагли аборигени
никой ли не може да помогне :cry:
 
Човече, не знам какво точно искаш но вземи си оправи малко кода. Никъде не си слагал ", може ли такова нещо :shock:
 
така както гледам ми изглежда че няма затворена таблиза в този код не забелязах грешка провери файла в който си инклуднал този сорс дали не липсва някои </table>
това е няма какво друго да е
 
туко що един познат ме посъветва...разултатите в сайта и извън него (когато не слагам скирпта за търсене вътре в сайта) винаги излизат еднакво широки...веднъж в ляво, веднъж в дясно...което значи че едва ли е от моята страница..а по-скоро от самия скрипт...не казвам че jooorooo e написал грешен скрипт..просто питам и се чудя защо дъ фак може да се получава така...
 
Ти добре си го едитвал, но на едно место не прецакал таблицата.

Код:
<?php

$tarsene = $_GET[Search];

if($_GET['Search'])
{
//server connfigure////////////////////////////////////////////////
$server = "localhost";
$dbusername = "blind";
$dbpassword = "blind";
$db_name = "jorobg";
//server connfigure/////////////////////////////////////////////////

mysql_connect($server, $dbusername, $dbpassword)or die("Сайтът не може да се свърже към базата данни");
@mysql_select_db($db_name) or die("Грешна база данни");

//следните функции са за разделяне на стринга,
//за да не търси последователност
$trimmed = trim($tarsene); //премахваме ненужните полета
$var = explode(" ",$trimmed); //разделяме стринга думи
$count = count($var); //преброяваме думите в стринга

//следва един цикъл с които избягваме дублиращите се резултати
for($i = $count-1;$i < sizeof($var); $i++) {

$abc = $var[$i];

//правиме заявка към базата данни ползваме $abc което е всяка отделна дума от стринга,
//а '% %' го ползваме за да може примерно ако търсиме "кон" да покаже и резултати като "конски"
$chars="SET CHARACTER SET cp1251";mysql_query($chars);
$querys = " SELECT * FROM news WHERE `newstext` LIKE '%$abc%' ORDER BY id_news DESC";
$results = mysql_query($querys) or die('Error, query failed');
$count = mysql_num_rows($results);
//и ако са по малко от 1 ще покаже съобщение че няма намерени резултати.
if ($count<1)

{echo "<center><b>Няма намерени резултати за ".$tarsene."</b></center><br><br>";}


while($row = mysql_fetch_array($results))
{
$id_news=$row[id_news];
$newstext=$row[newstext];

//следващата функция е за заместването на търсените думи от стринга
//със същите думи, но с оцветяване. font style=color:#000000;background-color:#FFFF00; тук
//сме задали какъв да е цвета на шрифта и какъв на бекграунда на търсената дума.
$replece=array();

for($i = 0;$i < sizeof($var); $i++) {
$newvar[$i]="<font style=color:#000000;background-color:#FFFF00;><b>$var[$i]</b></font>";
array_push($replece,$newvar[$i]);
}

$newtext=str_replace($var,$replece,$newstext);

//и следва шизуализиране на заявката. забележете, че вмесо да изпишем $newstext ползваме вече
//текста с заменените думи с оцветяване $newtext.

echo "<table width=400 border=0 cellpadding=0 cellspacing=0>
<tr>

<td class=text height=19>  <strong><a href=fullnews.php?id_news=".$id_news.">".$title."</a></strong></td>
</tr>

<tr>
<td>
<table id=lineLRBs class=nav border=0 cellpadding=0 cellspacing=0 width=400>
<tr>
<td height=25px id=lineBottom width=400><b>Търсената дума е намерена тук: </b></td>
<td height=25px id=lineBottom width=5> </td>
<td height=25px id=lineBottom width=5>  </td>
</tr>
<tr>
<td id=lineBottom  colspan=3><div>
            <table cellpadding=0 width=400>
              <tr>
<td><p align=justify>$newtext</p></td>
</tr>
</table></div></td>
</tr>
<tr>
<td height=25px width=400></td>
<td height=25px width=5> </td>
<td height=25px width=5> </td>
</tr>
</table>
</td>
</tr>
</table>";
echo "<br>";
}}} //затваряме всички вече отворени големи скоби.
?>

ето това добавох в края :

</td>
</tr>
</table>
 

Back
Горе