|
|
|
| Здравствуйте, не могу победить: В БД есть поля с name1 по name20. Мне нужно их вывести в столбик. Пытаюсь сделать это так:
require_once("config.php");
$query5 = mysql_query("select * from names WHERE id>0") or die(mysql_error());
$prof = mysql_fetch_array($query5);
for($i = 0; $i+1 < 20; $i++)
{
$name[$i]=$prof['name".$i."'];
echo "name=".$name[$i];
}
|
Выводит ошибку. | |
|
|
|
|
|
|
|
для: Костян
(22.02.2010 в 23:14)
| | а нельзя ли сделать это при промщи sql: SELECT * FROM names LIMIT 0, 20
а что такое $i+1 че-то я не вкурил? это не тоже самое что ( $i = 1; $i <= 20) ? | |
|
|
|
|
|
|
|
для: Костян
(22.02.2010 в 23:14)
| | Что значит, "поля с name1 по name20"?
Структура бд какая? | |
|
|
|
|
|
|
|
для: neadekvat
(22.02.2010 в 23:50)
| | >Что значит, "поля с name1 по name20"?
>Структура бд какая?
Хреновая Не выдерживающая критики. | |
|
|
|
|
|
|
|
для: Trianon
(22.02.2010 в 23:54)
| | не нужно обижать человека, если он только начинает программировать. | |
|
|
|
|
|
|
|
для: kostiaGt
(23.02.2010 в 00:00)
| | >не нужно обижать человека, если он только начинает программировать.
Где я обидел человека?!
По-моему, я о человеке слова не сказал.
Вся оценка пришлась на массу структуры БД.
Или может я структуру базы данных обидел?
И второе. Почему если только ?
А если он еще не начал, или уже занимается этим лет несколько, тогда нужно чтоли? | |
|
|
|
|
|
|
|
для: Trianon
(22.02.2010 в 23:54)
| | То есть, я правильно понял, что там нечто такое:
name 1| name 2|.... name 20
value 1 | value 2 | value 20
?
А куда "value 21" тогда девать?) | |
|
|
|
|
|
|
|
для: neadekvat
(23.02.2010 в 00:04)
| | Дело не только в том, что очередное значение оказывается девать некуда.
Дело еще и в том что у SQL-языка нет средств выполнить поиск (отобрать, отсортировать) столбики.
Всё это можно сделать со значениями в строках и нельзя - со значениями в столбцах.
Перечислимыми могут быть только строки. | |
|
|
|
|
|
|
|
для: Костян
(22.02.2010 в 23:14)
| | Извини не правильно понял.
А если сделать так:
$index = 1;
while( $prof = mysql_fetch_array($query5, MYSQL_ASSOC) ) {
if( isset($prof["name$index"]) ) {
echo $prof["name$index"];
$index++;
}
}
|
| |
|
|
|
|
|
|
|
для: kostiaGt
(23.02.2010 в 00:16)
| | Во-первых, зачем mysql_fetch_array($query5, MYSQL_ASSOC), если можно mysql_fetch_assoc($query5)
Во-вторых, вы, кхм, _такое_ пишете в принципе, к тому же, не то, что нужно автору. | |
|
|
|
|
|
|
|
для: neadekvat
(23.02.2010 в 00:25)
| | БЛИИИИН !!! Я указал mysql_fetch_array потому, что так указанно у ватора для того, что так можно срезать массив на половину.
То, что я не засунул данные в массив и сразу же не напечатал его - сделат я это для краткости.
А автора, на сколько я понял, хочет вывести список полей, а не его заначений. | |
|
|
|
|
|
|
|
для: kostiaGt
(23.02.2010 в 01:42)
| | >А автора, на сколько я понял, хочет вывести список полей, а не его заначений.
для этого есть итератор mysql_fetch_field()
Но автор, вроде, такого не спрашивал. | |
|
|
|
|
|
|
|
для: Trianon
(23.02.2010 в 01:44)
| | запись - $prof = mysql_fetch_array($query5);
говорит о том, что автор хочит прочитать первую (т.е. не все строки, а одну ) строку в таблице БД. | |
|
|
|
|
|
|
|
для: kostiaGt
(23.02.2010 в 01:48)
| | 1. Какая, как вы думаете, структура бд
2. Сколько строчек в бд записано? | |
|
|
|
|
|
|
|
для: kostiaGt
(23.02.2010 в 01:48)
| | Вы б не только прочли ответ, но и постарались понять его, чтоли... | |
|
|
|
|
|
|
|
для: Trianon
(23.02.2010 в 01:51)
| | протупил. Извините! | |
|
|
|
|
|
|
|
для: Trianon
(23.02.2010 в 01:51)
| | Я извиняюсь за долгое отсутствие. Много интересного, конечно, о себе узнал. Но это не важно. Задачка на самом деле простая, я это понимаю, но справиться с ней у меня ума не хватает. вот и обратился к Вам. Структура базы тоже простая: первое поле - id, второе - name, далее идут name1, name2, ..., name20. На самом деле выборку из БД нужно делать по имени пользователя name. Строка из базы может быть выбрана только одна. И мне нужно просто вывести содержание всех заполненных полей с name1 по name20 в столбик. Вот и все. | |
|
|
|
|
|
|
|
для: Костян
(23.02.2010 в 11:52)
| | примерно так.
<?
$name = 'Костян';
$sql = "SELECT * FROM `tbl` WHERE `name` = ". ("'".mysql_real_escape_string($name)."'");
$res = mysql_query($sql) or die("Error in $sql : ". mysql_error());
$row = mysql_fetch_row($res);
if(!$row) exit("Нет такого имени");
for($i = 2; $i < count($row); $i++)
{
$n = $i - 1;
echo "name$n : ".htmlspecialchars($row[$i]) ."<br />\r\n";
}
|
Тем не менее прочтите замечания по структуре. 23.02.2010 в 00:04 и 23.02.2010 в 00:43
Так SQL-таблицы не организуют. Это не Excel. | |
|
|
|
|
|
|
|
для: Trianon
(23.02.2010 в 12:02)
| | Спасибо | |
|
|
|