[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод информации из mysql.
VolDroN
Есть бд. Дамп:

CREATE TABLE IF NOT EXISTS `stats` (
`good` int(11) NOT NULL DEFAULT '0',
`bad` int(11) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Dumping data for table `stats`
--

INSERT INTO `stats` (`good`, `bad`) VALUES
(0, 0);


Хз как я сделал, но меня интересует чтобы в бд была таблица (stats), в ней 2 колонки (good, bad) и в них значение 0. Смысл в том чтобы просто php смотрел значение которое сейчас в колонках, выводил его, и если пользователь нажимает на кнопку увеличивал это значение на 1 и и обновлял запись в колонках.


<?php include('bd_config.php');
$good = mysql_query("SELECT * FROM `stats` ORDER BY `good`");
$bad = mysql_query("SELECT * FROM 'stats' ORDER BY 'bad'");
?>


вот две строчки то кода, дальше там идёт хтмл и вывод переменных и форма (две кнопки).

помогите кто-нибудь) знаю что в интернете можно найти как это сделать, но поиски мои безуспешны.



Спустя 2 часа, 26 минут, 30 секунд (7.01.2011 - 18:45) inpost написал(а):
Зачем 2 запроса? Сортировка и так и так?
Так в тексте, если выводится, то должна быть надпись типо такой:
while($row = mysql_fetch_assoc($good))
или просто:
$row = mysql_fetch_array($good);

Это лишь запрос к базе данных, но не выборка. Если ты говоришь, что они выводятся, то покажи весь код страницы.

И ещё, ты хочешь, чтобы мы сделали это на халяву или рассказали тебе, какие команды надо выучить и почитать в книге по ПХП? Или на крайняк хочешь за деньги?

Спустя 8 минут, 8 секунд (7.01.2011 - 18:53) Игорь_Vasinsky написал(а):
<?php
mysql_query("UPDATE `table` SET `count` = `count`+1 WHERE `id`= ". $id);
?>


вот с омощью акого шаблона ( с сайта http://inpost.dp.ua/lessons/lessons.php?id=4) - происходит увеличение значения в пле без дополнительной выборки из БД

вот - развивай мысль.

Спустя 13 минут, 28 секунд (7.01.2011 - 19:07) VolDroN написал(а):
оО) нечего не понял, что-то я сегодня не соображаю.

// копирайты и.т.п.
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `smileandsad`
--

-- --------------------------------------------------------

--
-- Table structure for table `stats`
--

CREATE TABLE IF NOT EXISTS `stats` (
`good` int(11) NOT NULL DEFAULT '0',
`bad` int(11) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Dumping data for table `stats`
--

INSERT INTO `stats` (`good`, `bad`) VALUES
(0, 0);


пчп:

<HTML>
<
HEAD><TITLE>SmileAndSad</TITLE></HEAD>
<
body>
<?php include('bd_config.php');
mysql_select_db("stats");
// сдесь надо сделать так, чтобы переменные гуд и бад были = значению в колонке,
?>
<br>
<
br>
<
br>
<
br>
<
br>
<
br>
<
center>
<
h1><b>Сегодня:</b></h1>
</
center>
<
br>
<
div align = 'center'>
<
table border="1" width="50%" cellpadding="5">
<
tr>
<
th>:)</th>
<
th>:(</th>
</
tr>
<
tr>
<
th><?php echo $good; ?></th>
<
th><?php echo $bad; ?></th>
</
tr>
</
table>
<
br>
<
centr>
<
form action="good.php" method="post"> //на гуд.пчп скрипт просто увеличивает значение на 1.
<input type="submit" name="good" value="У меня хорошее настроение!">
<
center>
</
form>
<
form action="bad.php" method="post"> //на бад.пчп тоже самое
<input type="submit" name="bad" value="У меня плохое настроение!">
</
form>
</
div>
</
body>
</
HTML>

бд_конфиг.пчп:
<?php

//MySql

$bd_host = "localhost";
$bd_username = "smileandsad";
$bd_password = "***";
$bd_base = "smileandsad";
$url = "http://voldron.test/";
$con = mysql_connect($bd_host, $bd_username, $bd_password) or die (mysql_error());
mysql_select_db($bd_base, $con);

?>

Спустя 3 минуты, 55 секунд (7.01.2011 - 19:11) VolDroN написал(а):
Я так понимаю, что главная проблема в бд. Т.к. я в mysql нехрена незнаю, таблица и колонки были созданы на бум.

Спустя 5 минут, 55 секунд (7.01.2011 - 19:16) inpost написал(а):
VolDroN
А пароль, у тебя, не "smileandsad" ? smile.gif

Вообще, этот код у тебя работает? Выводит хоть что-то? Кроме (resurse#6) ?

Спустя 2 минуты, 38 секунд (7.01.2011 - 19:19) VolDroN написал(а):
inpost о. экстрасенс?
нет) хотя можно было бы и не стирать его.. всё равно на локалхосте...



...
именно этот - таблицу и два коментария которые в форме

Спустя 1 минута, 31 секунда (7.01.2011 - 19:21) Игорь_Vasinsky написал(а):
нах те 2 страницы *? goog.php и bad.php ????

допстим весь скрипт у тя на index.php, тогда

//если poll не пусто и равно good 
if(isset($_GET['poll']) & $_GET[poll] === "good"){
mysql_query("UPDATE `stats` SET `good`+1");
}
//если poll не пусто и равно bad
elseif(isset($_GET['poll']) & $_GET[poll] === "bad"){
mysql_query("UPDATE `stats` SET `bad`+1");
}




<form action="index.php?poll=good" method="post">
//на гуд.пчп скрипт просто увеличивает значение на 1.
<input type="submit" name="good" value="У меня хорошее настроение!">
</
form>

<
form action="index.php?poll=bad" method="post">
//на бад.пчп тоже самое
<input type="submit" name="bad" value="У меня плохое настроение!">
</
form>
т.е. мы просто создадим GET переменную poll - она же $_GET['poll'], проверим её - и взависимости от её значения - перезапишим то или иное поле в таблице.

Спустя 2 минуты, 9 секунд (7.01.2011 - 19:23) Игорь_Vasinsky написал(а):
этим один раз в таблу нули запиши и закоментируй - а то чё каждый раз переписываешь на нуль то..

INSERT INTO `stats` (`good`, `bad`) VALUES(0, 0);


Спустя 1 минута, 18 секунд (7.01.2011 - 19:24) Игорь_Vasinsky написал(а):
Цитата
// сдесь надо сделать так, чтобы переменные гуд и бад были = значению в колонке,


ну эт те про вывод из БД надо почитть - это уж бональные и повседневные вещи.. о них даж стыдно писать

Спустя 1 минута, 47 секунд (7.01.2011 - 19:26) VolDroN написал(а):
Vasinsky
спасибо) както недумал об этом %)

Спустя 1 минута, 15 секунд (7.01.2011 - 19:27) Игорь_Vasinsky написал(а):
этот скрипт - тока добаляет значения в поля таблицы - а ввод уж додумай

Спустя 2 минуты, 7 секунд (7.01.2011 - 19:29) VolDroN написал(а):
Vasinsky биг фэнкью (:

Спустя 17 минут, 27 секунд (7.01.2011 - 19:47) Игорь_Vasinsky написал(а):
не за что.

Спустя 29 минут, 58 секунд (7.01.2011 - 20:17) VolDroN написал(а):
как не пишу, постоянно выводится
Цитата
Resource id #4

сами нули нехотят %)

Спустя 5 минут, 50 секунд (7.01.2011 - 20:22) inpost написал(а):
VolDroN
Ч.т.д.
Читай про команду: mysql_fetch_assoc, mysql_fetch_array для работы с БД.

Спустя 4 минуты, 23 секунды (7.01.2011 - 20:27) Игорь_Vasinsky написал(а):
покажи код вывода, а асиыиаивны массив то зачем ? там 2 поля с одним значением

Спустя 2 минуты, 59 секунд (7.01.2011 - 20:30) inpost написал(а):
Игорь_Vasinsky
mysql_fetch_array() с MYSQL_NUM
http://php.su/functions/?mysql_fetch_array

Спустя 7 минут, 57 секунд (7.01.2011 - 20:38) Игорь_Vasinsky написал(а):
да да я слышал за неё...

н чё усложнять то - если эта функция загоняет значения стоки (всех полей) - в массив,а поле то одно в двух строках! можно же по проще...

Спустя 1 час, 49 минут, 9 секунд (7.01.2011 - 22:27) VolDroN написал(а):
	$result = mysql_query("SELECT good, bad FROM stats");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$good = $row[0];
$bad = $row[1];

разобрался (:

Спустя 24 минуты, 3 секунды (7.01.2011 - 22:51) Игорь_Vasinsky написал(а):
ток смайл в другую сторону......

Спустя 8 минут, 22 секунды (7.01.2011 - 22:59) VolDroN написал(а):
хорошо :)
прибавление единицы немного по другому сделал:
   <?php include('bd_config.php');
mysql_select_db("smileandsad");
if (count($_POST[good]) > 0)
{
mysql_query("UPDATE `stats` SET `good`+1");
$_POST[good] = "";
}
elseif (count($_POST[bad]) > 0)
{
mysql_query("UPDATE `stats` SET `bad`+1");
$_POST[bad] = "";
}
?>

только не прибавляет.. :/ наверно там другой запрос должен быть.

Спустя 12 часов, 34 минуты, 21 секунда (8.01.2011 - 11:34) VolDroN написал(а):
mysql_query("INSERT INTO stats VALUES(+1,0)");

вот нашёл чтото, но она не обновляет а делает новую запись в таблице. И не +1 а просто значение 1. %)

Спустя 2 часа, 56 минут, 31 секунда (8.01.2011 - 14:30) VolDroN написал(а):
ппц) всётаки разобрался.

<?php
if (count($_POST['good']) > 0)
{
mysql_query("UPDATE stats SET good=".($good+1)."");
unset($_POST['good']);
}
elseif (count($_POST['bad']) > 0)
{
mysql_query("UPDATE stats SET bad=".($bad+1)."");
unset($_POST['bad']);
}
?>

но почему-то если нажать на кнопку и обновить страницу, то после обновления прибавиться ещё 1.
и если нажать например на хорошее настроение, потом на плохое, то изменится хорошое, а если ещё раз нажать то уже плохое. %)



...ох и нафлудил я)

Спустя 2 минуты, 53 секунды (8.01.2011 - 14:33) Игорь_Vasinsky написал(а):
а потому что в адресной строке GET то остаётся.

делай редирект на страницу без GET

Спустя 1 минута, 48 секунд (8.01.2011 - 14:35) Игорь_Vasinsky написал(а):
а... ты с POST - всё равно редирект чтоб POST очисить

через header location () тока пиши в самой первой строке этот редирект

Спустя 23 минуты, 17 секунд (8.01.2011 - 14:58) ИНСИ написал(а):
Цитата
<form action="index.php?poll=good" method="post">
//на гуд.пчп скрипт просто увеличивает значение на 1.
<input type="submit" name="good" value="У меня хорошее настроение!">
</form>

пипец .... Отправляете через POST и в параметр передаете GET...

вот:
<form action="index.php" method="post"> 
<input
type="submit" name="poll" value="У меня плохое настроение!">
<input
type="hidden" name="what" value="bad" >
</form>


if($_POST['poll'] && $_POST['what'] != '') {
mysql_query("
UPDATE `stats`
SET `
{$_POST['what']}` = `{$_POST['what']}` + 1
"
);

echo 'OK';
//header('Location: http://site.ru');
}

Спустя 2 минуты, 43 секунды (8.01.2011 - 15:01) VolDroN написал(а):
Игорь_Vasinsky
непонял. зачем?
а
unset($_POST['bad']);
она же по идеи чистит.



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

Спустя 4 часа, 58 минут, 48 секунд (8.01.2011 - 20:00) VolDroN написал(а):
welbox2
мм.. действительно, рабочий)
щас буду разбирать ваш код. спасибо)

только как заголовки уже в середине страницы отправлять? или там можно что-нибудь придумать? %)

Спустя 22 часа, 35 минут (9.01.2011 - 18:35) ИНСИ написал(а):
Цитата
мм.. действительно, рабочий)

конечно же рабочий smile.gif

Цитата
спасибо)

пожалуйста.

Цитата

только как заголовки уже в середине страницы отправлять? или там можно что-нибудь придумать? %)

а вот тут, я не совсем тебя понял.

Спустя 16 часов, 41 минута, 20 секунд (10.01.2011 - 11:16) VolDroN написал(а):
welbox2 ну заголовки же отправляются в начале страницы, а после того как человек нажмёт на кнопку его уже не перенаправить чтобы обнулился пост. (%

Спустя 14 минут, 16 секунд (10.01.2011 - 11:30) VolDroN написал(а):
ещё один вопрос.
Создал файл:
<?	session_start(); ?>
<?
include("../include/header.php");
и.т.п.

но всё равно ругается на сессии:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\voldron.test\www\admin\index.php:1) in Z:\home\voldron.test\www\admin\index.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\voldron.test\www\admin\index.php:1) in Z:\home\voldron.test\www\admin\index.php on line 2


почему? старт ссесси в самом верху, до неё нечего не идёт, header после неё грузится.. %)

Спустя 2 часа, 3 минуты (10.01.2011 - 13:33) ИНСИ написал(а):
VolDroN дело не в этом. Покажи файл header.php

Спустя 3 часа, 52 минуты, 18 секунд (10.01.2011 - 17:26) VolDroN написал(а):
header.php:
<HTML>
<
HEAD><TITLE>SmileAndSad</TITLE></HEAD>
<
meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<
body>
<?php include ('bd_config.php');

bd_config.php:

<?php

//MySql

$bd_host = "localhost";
$bd_username = "smileandsad";
$bd_password = "***";
$bd_base = "smileandsad";
$url = "http://voldron.test/";
$con = mysql_connect($bd_host, $bd_username, $bd_password) or die (mysql_error());
mysql_select_db($bd_base, $con);

?>

Спустя 1 день, 1 час, 20 минут, 51 секунда (11.01.2011 - 18:46) VolDroN написал(а):
И 3ий или какой уже по счёту вопрос.
Как в условие в php вставить html?
тоесть мне нужно чтобы при выполнении условия, выполнялись теги хтмл.
если делать так:
<?php
if ($ololo = $ololo)
{
?>
<a href="ololo.php">dfdf<a>
<?php
}
?>

php ругается.. :(

Спустя 1 час, 36 минут, 42 секунды (11.01.2011 - 20:23) inpost написал(а):
VolDroN
header - посылается до любого вывода информации на экран! До любого! Так что начало общего скрипта делай: <?php session_start(); , а дальше -всё остальное!

Спустя 13 часов, 53 минуты, 39 секунд (12.01.2011 - 10:17) VolDroN написал(а):

<?php session_start();
?>
<HTML>
<
HEAD><TITLE>......</TITLE><HEAD>
<
BODY>
<? include("../include/bd_config.php");
if($_COOKIE["usNick"] == "" AND $_COOKIE["usPass"] == "")
{ ...... }

и так в самом вверху.

Спустя 1 день, 23 секунды (13.01.2011 - 10:17) VolDroN написал(а):
я вот подумал..
обязательно использовать открытую сессию? я же вроде просто её открыл и всё.. (проверку кукисов и.т.п. я пока закоментировал)
может надо принудительно закрывать сессию в конце? оО

Спустя 2 часа, 50 минут, 43 секунды (13.01.2011 - 13:08) Игорь_Vasinsky написал(а):
Цитата
обязательно использовать открытую сессию?


ну не различается она на открытыеи закрытые

она либо есть - либо нет.

сессия либо сама уничтожиться - при закрытии страницы, либо ты сам её уничтожишь - если не нужно сессионные переменные использовать.

ты с ошибкой разобрался?

Спустя 1 час, 36 минут, 30 секунд (13.01.2011 - 14:44) VolDroN написал(а):
нет. всё равно ругается на заголовки которые я не отправлял :/

Спустя 1 час, 19 минут, 13 секунд (13.01.2011 - 16:04) VolDroN написал(а):
Ох.. ужос)
ещё 2 вопроса помимо сессий %):

1. в <meta> передаётся утф8.
вся бд в утф8
Но если хочу сохранить в колонке(значение) русский текст то при выполнении, на странице где он должен выводиться место него ��� �����.

2. Проверка авторизации. Но например если я ввожу неправильный логин и пароль. Цифрами, то всё нормально, выводит сообщение что типо неправильный пароль. Но если вводить логин или пасс буквами (и в русской и в английской расклаке) то невыводит нечего.
Сам скрипт:

<?php
$login = $_POST['login'];
$password = $_POST['password'];
$login = htmlspecialchars($login); //anti xss
$password = htmlspecialchars($password); //anti xss
$login = mysql_real_escape_string($login);
$password = mysql_real_escape_string($password);
$query = ("SELECT id, login, password FROM users WHERE login ='{$login}' AND password='{$password}' LIMIT 1");
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) == 1)
{
setcookie("usNick",$login,time()+7776000);
setcookie("usPass",$password,time()+7776000);
?>
<meta http-equiv='Refresh' content='0'>
<?php
}
elseif($login !=0 AND $password !=0)
{
echo '<b>Неправильное имя или пароль</b>';
}
include("../include/footer.php");
?>

Спустя 1 час, 40 минут, 48 секунд (13.01.2011 - 17:44) VolDroN написал(а):
с сессиями разобрался, решение проблемы linker написал в соседней теме %)

Спустя 2 часа, 39 минут, 46 секунд (13.01.2011 - 20:24) Гость_Nikolay написал(а):
Подскажите пожалуйста, как сделать вывод значения из БД.
На сайте соед. с бд заранее установлено. Есть таблица "noname" есть поле "id", есть значение "test"

Как на странице php отобразить следующий текст:
Заголовок="test"? (test=значение)

И как можно сделать, что бы выдавался конкретный "test" (т.е. есть запись на ворд прессе, данной записи присваивается id, как можно вывести данный id? (на странице каждой записи её id))

Спустя 1 час, 18 минут, 30 секунд (13.01.2011 - 21:43) ИНСИ написал(а):
VolDroN

Цитата
1. в <meta> передаётся утф8.
вся бд в утф8
Но если хочу сохранить в колонке(значение) русский текст то при выполнении, на странице где он должен выводиться место него ��� �����.

1. Попробуй добавить вот это, после подключения и выбора БД:
mysql_query('SET NAMES UTF8');

2. Добавь в корневую директорию файл .htaccess и пропиши
AddDefaultCharset UTF-8



Спустя 40 секунд (13.01.2011 - 21:43) ИНСИ написал(а):
Гость_Nikolay создай отдельно тему....

Спустя 21 час, 25 минут, 13 секунд (14.01.2011 - 19:09) VolDroN написал(а):
welbox2
в htaccess уже есть эта запись
а mysql_query('SET NAMES UTF8'); - помогло (: спасибо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.