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.
тогда будет норм)
И это если у тебя марка будет ввиде id(цифр) то достаточно так:
Если будешь передавать строку например http://сайт.com/mar.php?mark=mazda то делай как выше.
Нет, это метот $_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((
_____________
Автомобили – средство передвижения для поиска к нему запчастей.