добавяне на confirmed

efrdimitrov

Registered
имам тези два селекта:
"SELECT * FROM publikuvai WHERE `text` LIKE '%$text%' AND `kategoriq` LIKE '%$kategoriq%' AND `grad` LIKE '%$grad%'
" . "LIMIT $redove, $broinastranica"

SELECT COUNT(data) AS numrows FROM publikuvai WHERE `text` LIKE '%$text%' AND `kategoriq` LIKE '%$kategoriq%' AND `grad` LIKE '%$grad%'"
и не мога да добавя към тях confirmed = '1' имам такова поле което автоматично зададена стойност е '0' и аз искам да ми показва само одобрените заявки като коригирам 0 на 1 но ми дава грешка: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in
благодаря на всички и ето целия код:
PHP:
$kategoriq = $_GET['kategoriq'];
$grad = $_GET['grad'];
$text = $_GET['text'];
$server = "localhost"; 
$dbusername = "root"; 
$dbpassword = "magazin"; 
$db_name = "obqvi"; 

if(strlen($text) <3) {
echo "<br /><center><b><i><font size='5' color='red'><img src='kartinki/simvoli.gi'></font></center></b></i>"; }

mysql_connect($server, $dbusername, $dbpassword)or die("Сайтът не може да се свърже към базата данни"); 
mysql_select_db($db_name) or die("Грешна база данни"); 
mysql_query("SET names cp1251");// NE GO TRII ;
// определяме колко реда да ни показва. В случая 20 на страница. 
$broinastranica = 10; 
// от коя страница да почне да показва.Може да искаме да е от втора или от последна. 
$pageNum = 1; 
// ако има получени данни $_GET['page'] ще покаже страницата с номер $_GET['page'] 
if(isset($_GET['page'])) 
{ 
$pageNum = $_GET['page']; 
} 
//тука определяме кои редове ще се показват - примерно ако $_GET['page']=2 
// ще покаже от 20 до 40-ти ред. 
$redove = ($pageNum - 1) * $broinastranica; 

$query = "SELECT * FROM publikuvai WHERE `text` LIKE '%$text%' AND `kategoriq` LIKE '%$kategoriq%' AND `grad` LIKE '%$grad%'
" . "LIMIT $redove, $broinastranica";
$result = mysql_query($query) or die('Error, query failed 1');

echo "<p align='center'><font size='4'><b>Резултати за:</font> <font size='4'color='0e552a'>\"<i> $text</i>\"  
<font color='000'><b>Категория:</b></font><i> $kategoriq</i>  
<font color='000'><b>Град:</b></font><i> $grad</i></b></font></p>";

while($row = mysql_fetch_array($result)) 
{
echo "<a title='ВИЖ ЦЯЛАТА ОБЯВА' href='pregled.php?id={$row['id']}'><table 
style='background-color: cdcdcd; border-color: 000; width: 712px;' class='rounded' border='1' bgcolor='cdcdcd' align='center'>"; 

include "table.php";

echo"</table></a><br />"; 
}
// проверяваме таблицата колко редове има 
$query = "SELECT COUNT(data) AS numrows FROM publikuvai WHERE `text` LIKE '%$text%' AND `kategoriq` LIKE '%$kategoriq%' AND `grad` LIKE '%$grad%'";
$result = mysql_query($query) or die('Error, query failed 2'); 
$row = mysql_fetch_array($result, MYSQL_ASSOC); 
$numrows = $row['numrows']; 
if($numrows > 0) { // покажи резултатите 
}else{
echo "<center><font size='5' color='red'><b>Няма намерени резултати,<br>опитай други критерии!</b></font></center>";
}
$maxPage = ceil($numrows/$broinastranica); 

$self = $_SERVER['PHP_SELF']; 
$nomeranastranici = ''; 

for($page = 1; $page <= $maxPage; $page++) 
{ 
if ($page == $pageNum) 
{ 
$nomeranastranici.= " <font color='1b5a1b' size='6'><b>$page</b></font> "; 
} 
else 
{ 
$nomeranastranici.= " <b><a href=\"$self?page=$page&text=$text&kategoriq=$kategoriq&grad=$grad\"> <font size='5' color='4d4a4a'><b> $page </b></font></a></b></font> "; 
} 
} // създаване на ликовете [предишна] [следваща] 
// както и линковете [първа] и [последна] 
if ($pageNum > 1) 
{ 
$page = $pageNum - 1; 
$predishna = " <a title='ПРЕДИШНА' href=\"$self?page=$page&text=$text&kategoriq=$kategoriq&grad=$grad\"> <font size='5' color='000'><b> <<< </b></font></a> "; 

$parva = " <a href=\"$self?page=1&text=$text&kategoriq=$kategoriq&grad=$grad\"><font size='5' color='4d4a4a'><b> първа </b></font></a> "; 
} 
else 
{ 
$predishna =''; 
$parva =''; 
} 
if ($pageNum < $maxPage) 
{ 
$page = $pageNum + 1; 
$sledvashta = " <a title='СЛЕДВАЩА' href=\"$self?page=$page&text=$text&kategoriq=$kategoriq&grad=$grad\"> <font size='5' color='000'><b> >>> </b></font></a> "; 

$posledna = " <a href=\"$self?page=$maxPage&text=$text&kategoriq=$kategoriq&grad=$grad\"> <font size='5' color='4d4a4a'><b> последна </b></font></a> "; 
} 
else 
{ 
$sledvashta =''; 
$posledna =''; 
} 
// показваме 
echo " <p  align='center'> $parva  $predishna  $nomeranastranici  $sledvashta  $posledna </p> ";

include "krai.php"; ?>
 
знам че съм нов и нямам опит и сигорно задавам тъпи въпроси но не забравяйте че всички сме минали по този път ще помоля някой който знае да напише нещо :D
 
Не се разбира точно какво искаш. Като имаш SQL въпрос най-лесно е да покажеш няколко записа от базата данни и какъв резултат от зявката желаеш. Ако правилно съм разбрал (но ми се струва твърде очевидно) искаш следното нещо:

"SELECT * FROM publikuvai WHERE `text` LIKE '%$text%' AND `kategoriq` LIKE '%$kategoriq%' AND `grad` LIKE '%$grad%' and confirmed='1'" . "LIMIT $redove, $broinastranica"

SELECT COUNT(data) AS numrows FROM publikuvai WHERE `text` LIKE '%$text%' AND `kategoriq` LIKE '%$kategoriq%' AND `grad` LIKE '%$grad%'" and confirmed='1'
 
оправих го била е много тъпа грешка с кавичките благодаря ти че ми писа дано не съм нахален и да те питам като изкарвам последно добавена с: SELECT * FROM `publikuvai` ORDER BY id DESC LIMIT 1 сега ще ти обясня за да ме разбереш потребител публикува дадена обява която се показва тя е неговата понеже той в момента последен я е публикувал но докато той си я разглежда и друг публикува и ако като рефрешне стария ще се покаже на новия понеже той е вече последен и само да отбележа нямам логин а това са полета в таблицата ми: `confirmed`, `id`, `kategoriq`, `ime`, `grad`, `tel`, `text`, `email`, `cena`, `data`, `ip`, `view`, `file_name`
 
Има много начини за разрешаване на случая, с куки или сесия не можеш ли да присвоиш id-то на публикацията, така че дори след рефреш потребителя да вижда публикацията с id което е запазено в сесията/кукито му?
 
В началото на скрипта който ти добавя публикацията в базата данни и на страницата която показва на потребителя добавената публикация си слагаш следната команда:
PHP:
session_start();
След добавянето на статията й взимаш ID-то с mysql_insert_id() и го слагаш в сесия по следния начин:
PHP:
$articleId = mysql_insert_id();
$_SESSION['article_id'] = $articleId;
след това на страницата която ти изкарва публикацията добавена от потребителя правиш следния select:
PHP:
$articleId = $_SESSION['article_id'];
$q = mysql_query("SELECT * FROM `publikuvai` WHERE id='$articleId' LIMIT 1");
$res = mysql_fetch_assoc($q);
И това ти извлича данните на публикацията която потребителя е добавил по-рано.
Важно е session_start() да присъства навсякъде където имаш работа със сесии.
 
Дебъгни си кода, виж преди селектирането в SQL-а, какво съдържа сесията:
PHP:
var_dump($_SESSION);
ако не съдържа индекс "article_id" - проблем с session_start(); или декларирането и задаването на стойността след вкарването на публикацията в дб

ако съдържа индекс "article_id" но няма стойност - проблем с присвояването на променливата след вкарването на публикацията в дб

ако съдържа индекс "article_id" и има зададена стойност - евентуален проблем със заявката за извличането на публикацията (търси по грешна колона), ако е така опитай ръчно да потърсиш в phpmyadmin/heidySQL (която и да е програма която ползваш за директна администрация на ДБ-то) дали съществува публикация с такова ид.
 

Back
Горе