Показать полную графическую версию : php + mysql
Аlchemist
03-09-2008, 18:04
Делаю запрос к базе с консоли:
mysql > select date,sum(bytes) from rl0_2008 group by date;
Все ок, выдает результат.
Но запрос из index.php почему-то не работает - возвращает какой-то Resource id #3
<?php
$sql = mysql_query ("select date,sum(bytes) from rl0_2008 group by date");
echo $sql;
?>
менял запросы, прикручивал циклы - ноль эммоций...
В чем проблема может быть?
эмм.. а где mysql_connect, mysql_select_db, mysql_close ?
http://phpclub.ru/detail/article/phpintro
Но запрос из index.php почему-то не работает - возвращает какой-то Resource id #3 »
Так в $sql и содержится ссылка на ресурс.
Чтобы его обработать, нужно использовать функции $a = mysql_fetch_array($sql) или $a=mysql_fetch_assoc($sql) для индексного и ассоциативного массивов соответственно. Там ещё что-то есть, но не помню.
Аlchemist
03-09-2008, 23:28
эмм.. а где mysql_connect, mysql_select_db, mysql_close ? »
все это есть:
// IP хостов, интерфейсы,
$db_host = "localhost";
$db_user = "user";
$db_passwd = "pass";
$db_db = "base";
//Пытаемся приконнектится к БД
mysql_connect($db_host,$db_user,$db_passwd) or die ("Караулнах!!!");
//Выбираем базу данных
mysql_select_db($db_db) or die (mysql_error());
// пошел запрос
$sql = mysql_query ("select date,sum(bytes) from rl0_2008 group by date");
// выводим результаты
echo $sql;
?>
timon4ik
03-09-2008, 23:31
Там ещё что-то есть, но не помню »
ещё есть mysql_fetch_row
Аlchemist
03-09-2008, 23:40
Так в $sql и содержится ссылка на ресурс.
Чтобы его обработать, нужно использовать функции $a = mysql_fetch_array($sql) или $a=mysql_fetch_assoc($sql) для индексного и ассоциативного массивов соответственно. Там ещё что-то есть, но не помню. »
Так делал:
$sql = mysql_query ("select date,sum(bytes) from rl0_2008 group by date");
while ($a = mysql_fetch_array($sql)) {
echo $a;
но не помогло =\
ещё есть mysql_fetch_row »
так еще пробовал:
$sql = mysql_query ("select date,sum(bytes) from rl0_2008 group by date");
$row = mysql_fetch_row($sql);
echo $row;
тоже не катит
timon4ik
04-09-2008, 13:04
$sql = mysql_query ("select date,sum(bytes) from rl0_2008 group by date");
while ($a = mysql_fetch_array($sql)) {
echo $a; »
А закрыть скобку } после while ?
И второе, $a в этом случае - это массив, и обращаться к его элементам нужно соответственно echo $a[0]; echo $a[1];
Аlchemist
04-09-2008, 14:51
И второе, $a в этом случае - это массив, и обращаться к его элементам нужно соответственно echo $a[0]; echo $a[1]; »
Так что-то выходит, но не совсем то, что хотелось бы увидеть...
Вобщем всем спасибо, я ушел основательно учить PHP.
Если есть ссылки на стоящие доки - буду признателен. :)
Аlchemist, самый лучший док по PHP - официальный. Есть и на русском языке. Смотрите на офсайте.
Вот там приведён пример взаимодействия PHP+MySQL:
/* Соединение, выбор БД */
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
or die("Could not connect");
print "Connected successfully";
mysql_select_db("my_database") or die("Could not select database");
/* Выполнение SQL query */
$query = "SELECT * FROM my_table";
$result = mysql_query($query) or die("Query failed");
/* Печать результатов в HTML */
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</table>\n";
/* Освобождение resultset */
mysql_free_result($result);
/* Закрытие соединения */
mysql_close($link);
?>
Аlchemist
04-09-2008, 17:02
Coutty, спасибо, с этой конструкцией все выводит, осталось только дописать сортировку.
Сортировку можно задавать в sql-запросе.
SELECT * FROM my_table ORDER BY my_col_name ASC
SELECT * FROM my_table ORDER BY my_col_name DESC
Соответственно - в прямом и обратном порядке сортирует по столбцу my_col_name. Можно указывать номер столбца цифрой, а не именем. Нумеруются с единицы.
Можно дописать через запятую вторичную сортировку (скажем, сначала идёт сортировка по фамилии, а если одинаковые фамилии встречаются, то задать сортировку по уровню годового дохода:)).
Подробнее о SELECT'e (http://www.mysql.ru/docs/man/SELECT.html).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC