[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP чтение из базы
kellua
Нашел на форуме код вывода данных из базы в таблицу
 http://phpforum.ru/index.php?showtopic=21916
. Считывает данные без проблем, а как этот код переделать, чтобы он считывал строки из таблици только с определенным значением "mark"?

Мой код не считывает.
<?php
include ("bd.php");
$mark = $_POST['mark'];

//Устанавливаем кодировку UTF8
mysql_query ("SET NAMES utf8");
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");

// Формируем строку для запроса к нашей базе данных
// Не забывайте обрамлять имена таблиц и полей обратными кавычками `TABLE`

$sql = "SELECT * FROM `auto` WHERE `mark`='{$mark}'";

// Скармливаем наш запрос MySQL
$result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);

/* Обратите внимание на конструкцию
or die(mysql_error() ."<br/>". $sql) она Вам поможет в случае ошибки
в Вашем SQL запросле или отсутствия соединения с Mysql

Выводим данные из таблицы в цикле WHILE(), не вкоем случае не используйте
DO WHILE() эта конструкция предназначена совсем для других действий
*/

// Рисуем табличку

$table = "<table border=0 width=100% align=center>\n";

while ($row = mysql_fetch_assoc($result))
{
/* Прошу обратить внимание на функцию MYSQL_FETCH_ASSOC()
Выбрана она не случайно, данная функция возвратит ассоциативный
массив с которым будем работать.

Многие делают ошибку в плане оптимизации и использую функцию
MYSQL_FETCH_ARRAY() данная функция вернет два массива,
один ассоциативный другой индексный тем самым мы увеличим потрябляемую
память скриптом.
*/


$table .= "<tr>\n";

$table .= "<td>".$row['mark']."</td>\n";
$table .= "<td>".$row['txt']."</td>\n";
$table .= "<td>".$row['img']."</td>\n";

$table .= "</tr>\n";
}

$table .= "</table>\n";

// Выводим заполненую таблицу на экран
echo $table;




Спустя 7 минут, 49 секунд (22.06.2011 - 09:19) nugle написал(а):
напиши

while ($row = mysql_fetch_assoc($result))
{
var_dump($row);
}

и смотри что выведет

Спустя 2 минуты, 26 секунд (22.06.2011 - 09:21) kellua написал(а):
ничего не выводит...

Спустя 1 минута, 15 секунд (22.06.2011 - 09:23) nugle написал(а):
напиши echo $sql; что выводит?

Спустя 3 минуты, 7 секунд (22.06.2011 - 09:26) kellua написал(а):
Цитата
напиши

while ($row = mysql_fetch_assoc($result))
{
var_dump($row);
}


и смотри что выведет


Сейчас вывел... судя по всему он считывает данные все до столбца "mark" а все столбцы что дальше - пустые...

Спустя 5 минут, 45 секунд (22.06.2011 - 09:32) kellua написал(а):
SELECT * FROM `users` WHERE `mark`=''

Спустя 7 минут, 9 секунд (22.06.2011 - 09:39) nugle написал(а):
а тебе не кажется странным? что mark равен пустоте? значит нет пост переменной

Спустя 1 минута, 44 секунды (22.06.2011 - 09:40) kellua написал(а):
а тогда это верно?

http://сайт.com/mar.php?mark=23

Спустя 15 минут, 1 секунда (22.06.2011 - 09:55) nugle написал(а):
нет
это гет переменная

Спустя 1 минута, 54 секунды (22.06.2011 - 09:57) Renden написал(а):
kellua
Нет, это метот $_GET а у тебя в коде $_POST.

$mark = $_POST['mark'];
//замени на
$mark = trim(mysql_real_escape_string($_GET['mark']));

тогда будет норм)
И это если у тебя марка будет ввиде id(цифр) то достаточно так:

$mark = (int)$_GET['mark'];

Если будешь передавать строку например http://сайт.com/mar.php?mark=mazda то делай как выше.

Спустя 2 часа, 19 минут, 53 секунды (22.06.2011 - 12:17) minok94 написал(а):
И сюда Попов залез((( (bd.php) xDDD((


_____________
Автомобили – средство передвижения для поиска к нему запчастей.
Быстрый ответ:

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