Jump to content
  • 0

Счетчик просмотров


Floran
 Share

Question

Помогите разобратся почему не работает счетчик просмотров

Сlothes.php

<?php
$db = mysql_connect ("mysql-23.ukraine.com.ua","","")OR DIE("Не можу підключитися.. ");;
mysql_set_charset ('utf8',$db);
mysql_select_db("",$db)or die(mysql_error());

$result = mysql_query ("SELECT id,title, meta_d, meta_k, description, text, date, adres, view FROM clothes");

$row = mysql_fetch_array ($result);

do {

printf ("<table class='clothes'>

<tr>
<td class='clothes_title'>
<br><p><h1><a href='view_clothes.php?id=%s'>%s</a></h1></p>
<p class='clothes_adds'><h6>Номер: %s</h6></p>
<p class='clothes_adds'><h6>Дата добавления: %s</p>
<p>Адрес: %s</td>
</tr>

<tr>
<td><br><p class='clothes_adds'><h5>%s</h5></p>
<br><p class='clothes_adds'><h6>Просмотров: %s</h6></p></td>
</tr>

</table><br><br>", $row["id"], $row["title"], $row["id"], $row["date"], $row["adres"], $row["description"], $row["view"]);

}

while ($row = mysql_fetch_array ($result));
$new_view = $row["view"] + 1;
$update = mysql_query ("UPDATE view_clothes SET view='$new_view' WHERE id='$id'",$bd);


?>

view_clothes

<?php
$db = mysql_connect ("mysql-23.ukraine.com.ua","","")OR DIE("Не можу підключитися.. ");;
mysql_set_charset ('utf8',$db);
mysql_select_db("",$db)or die(mysql_error());

if (isset($_GET['id'])) {$id = $_GET['id'];}

$result = mysql_query ("SELECT * FROM clothes WHERE id='$id'");

$row = mysql_fetch_array ($result);

?>

<p><h1> <div id="clothes3"><?php echo $row['title'];?> </div></h1></p>
<p> <h6> <div id="clothes2"><?php echo'Дата добавления: ', $row['date'];?> </div></h6></p>
<p> <h6><div id="clothes2"><?php echo 'Адрес: ', $row['adres'];?> </div></h6></p>
<p> <h6> <div id="clothes2"><?php echo 'Просмотров: ', $row['view'];?> </div></h6></p>
<p> <div id="clothes5"><?php echo $row['text'];?> </div></p>

Link to comment
Share on other sites

  • Answers 54
  • Created
  • Last Reply

Top Posters For This Question

Recommended Posts

  • 0
ну так я о том же.

У автора тип поля в БД int, а сравнивает он со строкой.

вы видимо мои посты через строки читаете ) у автора ошибок миллион.А то как он запрос написал "UPDATE `view_clothes` SET `view`=`view` +1 WHERE id='$id'" - будет работать, хоть медленней сработает и не красиво по сравнению "UPDATE `view_clothes` SET `view`=`view` +1 WHERE `id`=".$id

Edited by gradus
Link to comment
Share on other sites

  • 0
Вот как бы сделал я. Во-первых, создаём файл с подключением к БД, чтобы его не полодить везде.

db.php

<?php
$DB=mysqli_connect('localhost', 'login', 'password', 'dbname');
if ($DB===false) die('Database connection failed');

clothes.php

<?php
require_once('db.php');
$q = mysqli_query($DB, "SELECT `id`, `title`, `meta_d`, `meta_k`, `description`, `text`, `date`, `adres`, `view` FROM `clothes`");
while ($r=mysqli_fetch_assoc($q)) {

echo "<table class='clothes'>

<tr>
<td class='clothes_title'>
<br><p><h1><a href='view_clothes.php?id={$r['id']}'>{$r['title']}</a></h1></p>
<p class='clothes_adds'><h6>Номер: {$r['id']}</h6></p>
<p class='clothes_adds'><h6>Дата добавления: {$r['date']}</p>
<p>Адрес: {$r['adres']}</td>
</tr>

<tr>
<td><br><p class='clothes_adds'><h5>{$r['description']}</h5></p>
<br><p class='clothes_adds'><h6>Просмотров: {$r['view']}</h6></p></td>
</tr>

</table><br><br>";

}


mysqli_query ($DB, "UPDATE `view_clothes` SET `view`=`view`+1");

На самом деле, я бы сделал ещё более не так — я бы создал классы, методы для получения нужных данных из БД, разделил бы логику и представление... Но для вас пока так.

сделал все так как вы написали - не работает

Link to comment
Share on other sites

  • 0
никаких ошибок не выбивает, тока кодировда збилась,

проявляется в том что счетчик как стоял на 0 так и стоит, не обновляется при переходе на страницу...

1. Не «збилась», а «сбилась»

2. mysqli_query($DB, 'SET NAMES \'utf-8\'');

3. echo mysqli_error();

Link to comment
Share on other sites

  • 0
украинцам такое простительно :)

Пусть оффтоп, но всё же. Случается мне писать багрепорты разным разработчикам или, например, просить помощи на забугорных форумах. Так вот, я всё на три раза проверяю, чтобы всё было грамотно, а то и прошу знакомых переводчиков отписать, особенно когда дело доходит до технических тонкостей. Надо уважать своего читателя. Тем более, когда помощи просишь. А с Украины людям тем более должно быть просто — родственные же языки.

Link to comment
Share on other sites

  • 0

Да извиняюсь за свой русский это как то машинально вышло...

<?php

require_once('db.php');
echo mysqli_error();
$q = mysqli_query($DB, "SELECT `id`, `title`, `meta_d`, `meta_k`, `description`, `text`, `date`, `adres`, `view` FROM `clothes`");
mysqli_query($DB, 'SET NAMES \'utf-8\'');
while ($r=mysqli_fetch_assoc($q)) {

echo "<table class='clothes'>

<tr>
<td class='clothes_title'>
<br><p><h1><a href='view_clothes.php?id={$r['id']}'>{$r['title']}</a></h1></p>
<p class='clothes_adds'><h6>Номер: {$r['id']}</h6></p>
<p class='clothes_adds'><h6>Дата добавления: {$r['date']}</p>
<p>Адрес: {$r['adres']}</td>
</tr>

<tr>
<td><br><p class='clothes_adds'><h5>{$r['description']}</h5></p>
<br><p class='clothes_adds'><h6>Просмотров: {$r['view']}</h6></p></td>
</tr>

</table><br><br>";

}


mysqli_query ($DB, "UPDATE `view_clothes` SET `view`=`view`+1");
?>

ничего не поменялось, кодировка также сбита,

на валидаторах проверял нету ошибок

Link to comment
Share on other sites

  • 0

Рид зе факинг мануал, в конце концов.

1. Запрос про выбор кодировки надо ставить до того как вы сделаете первый запрос.

2. mysqli_error() надо вставлять после того, как выполнился подозрительный запрос, а не сразу после подлючения. Там оно, ясен пень, ошибок не найдёт.

Давайте вы будете изучать во всех подробностях работу всех строк кода, которые вам советуют, а не лепить их в случайное место, а потом жаловаться, что не работает. Не работает, потому что надо понимать что делает тот или иной кусок кода. Программирование — точная наука.

Link to comment
Share on other sites

  • 0

так?

<?php
mysqli_query($DB, 'SET NAMES \'utf-8\'');
require_once('db.php');


$q = mysqli_query($DB, "SELECT `id`, `title`, `meta_d`, `meta_k`, `description`, `text`, `date`, `adres`, `view` FROM `clothes`");

while ($r=mysqli_fetch_assoc($q)) {

echo "<table class='clothes'>

<tr>
<td class='clothes_title'>
<br><p><h1><a href='view_clothes.php?id={$r['id']}'>{$r['title']}</a></h1></p>
<p class='clothes_adds'><h6>Номер: {$r['id']}</h6></p>
<p class='clothes_adds'><h6>Дата добавления: {$r['date']}</p>
<p>Адрес: {$r['adres']}</td>
</tr>

<tr>
<td><br><p class='clothes_adds'><h5>{$r['description']}</h5></p>
<br><p class='clothes_adds'><h6>Просмотров: {$r['view']}</h6></p></td>
</tr>

</table><br><br>";

}


mysqli_query ($DB, "UPDATE `view_clothes` SET `view`=`view`+1");
echo mysqli_error();
?>

Link to comment
Share on other sites

  • 0

Я маленько опоздал на этот праздник жизни

while ($row = mysql_fetch_array ($result));

Тут $row будет пустая (ну или ноль, что-то в этом духе), потому что самый последний fetch_array происходит когда уже все записи исчерпаны.

Link to comment
Share on other sites

  • 0
так?

Нет, не так. Опять начинается гадание на кофейной гуще. Вы когда-нибудь прекратите гадать и займётесь уже изучением PHP или так и будете на «авось» работать?

Link to comment
Share on other sites

  • 0

ладно фиг с ней с кодировкой но тем не менее счетчик не работает, перед тем как писать сюда я пробую различные варианты, но все же не мои не ваши варианты не работают, и ошибки не показывает проверял не раз, ладно спасибо всем большое за помощь

Link to comment
Share on other sites

  • 0
ладно фиг с ней с кодировкой но тем не менее счетчик не работает, перед тем как писать сюда я пробую различные варианты, но все же не мои не ваши варианты не работают, и ошибки не показывает проверял не раз, ладно спасибо всем большое за помощь

абсурд, если бы вы правильно применили что вам советуют у вас не было бы проблем, так что не подошли тут только ваши варианты, а вы куда попало код суете и жалуетесь что не получается.Как вы построите дом если начинаете крышу в землю класть, а сверху фундамент ?

Это вам не "тяп ляп" и пошёл гулять хвастаясь что скрипт написал, нужно всё учитывать и быть внимательным и понимать что делаешь.

Вот так вы найдёте у себя ошибку:

1)Сверить кодировку базы данных, кодировку соединения с базой, кодировку страницы

2)После каждого запроса и установки соединения проверять на ошибки, а так же установить отображение всех ошибок нотисов и ворнингов

3)Понимать абсолютно всё что пишешь, если функцию не знаешь смотри в мануале что она делает и как с ней работать, в интернете куча примеров и не стесняйся спрашивать если не понятно.А кидать её куда попало ни к чему хорошему не приведёт.

4)Терпение и труд всё перетрут

Вдруг вы не к той таблице обращаетесь или ещё что ваш скрипт этого не скажет, а мы и подавно не телепаты.

Edited by gradus
Link to comment
Share on other sites

  • 0
абсурд, если бы вы правильно применили что вам советуют у вас не было бы проблем, так что не подошли тут только ваши варианты, а вы куда попало код суете и жалуетесь что не получается.Как вы построите дом если начинаете крышу в землю класть, а сверху фундамент ?

Это вам не "тяп ляп" и пошёл гулять хвастаясь что скрипт написал, нужно всё учитывать и быть внимательным и понимать что делаешь.

Вот так вы найдёте у себя ошибку:

1)Сверить кодировку базы данных, кодировку соединения с базой, кодировку страницы

2)После каждого запроса и установки соединения проверять на ошибки, а так же установить отображение всех ошибок нотисов и ворнингов

3)Понимать абсолютно всё что пишешь, если функцию не знаешь смотри в мануале что она делает и как с ней работать, в интернете куча примеров и не стесняйся спрашивать если не понятно.А кидать её куда попало ни к чему хорошему не приведёт.

4)Терпение и труд всё перетрут

Вдруг вы не к той таблице обращаетесь или ещё что ваш скрипт этого не скажет, а мы и подавно не телепаты.

все варианты которые я применял скидывал в постах

я не говорю что мне плохое советуют, а тока то что не работает, поэтому тут как не крути, а надо во всем розобратся, так что буду все с основ по отдельности разбирать...

Link to comment
Share on other sites

  • 0

у меня такое ощущение, что нас разводят как кроликов :)

Ведь третья страница уже, а ещё ни разу не сказали, что именно не работает. Ни одного сообщения об ошибке не было предъявлено.

троллинг в чистом виде.

Link to comment
Share on other sites

  • 0

echo mysqli_error();

мне понравилось)) такому даже в школе на первом уроке пхп не учат ))

swetlana автор же сказал что счетчик не повышается :( а там он чет с ИД мутил...а зачем он там давал 1 если надо что бы апдейт щел на ту тему какой ид загрузил?...ээ...

может так:

$id = $_GET['id'];
mysql_query('UPDATE `view_clothes` SET `view` = `view`+1 WHERE `id` = '$id')

Edited by Simon
Link to comment
Share on other sites

  • 0
echo mysqli_error();

мне понравилось)) такому даже в школе на первом уроке пхп не учат ))

А что такого в «echo mysqli_error();»? По-моему всё нормально. Или я чего-то не понимаю?

Link to comment
Share on other sites

  • 0
А что такого в «echo mysqli_error();»? По-моему всё нормально. Или я чего-то не понимаю?

в книгах такого не встречал... а может я вообще книги не читал :( а еще если есть ошибка в склюеле она и так пишется без вызова _еррор() %)

Edited by Simon
Link to comment
Share on other sites

  • 0
в книгах такого не встречал... а может я вообще книги не читал :( а еще если есть ошибка в склюеле она и так пишется без вызова _еррор() %)

Зависит от настроек php. В общем рекомендую всё же книжки почитать.

Link to comment
Share on other sites

  • 0
в книгах такого не встречал... а может я вообще книги не читал :( а еще если есть ошибка в склюеле она и так пишется без вызова _еррор() %)

Нет, не пишется. А если у вас пишется, то у вас дыра, нет, даже не дыра, а просто-таки дупло на сервере. А для отладки можно делать именно так, с mysqli_error(). Но на самом деле, прежде, чем запускать запрос, надо его нормально отладить в БД-песочнице и только потом добавлять в PHP-скрипт — тогда вообще не понадобится никакого вывода ошибок.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy