- -
php + mysql
(
http://forum.oszone.net/showthread.php?t=116141)
Аlchemist |
03-09-2008 18:04 890247 |
php + mysql
Делаю запрос к базе с консоли:
mysql > select date,sum(bytes) from rl0_2008 group by date;
Все ок, выдает результат.
Но запрос из index.php почему-то не работает - возвращает какой-то Resource id #3
PHP код:
<?php $sql = mysql_query ("select date,sum(bytes) from rl0_2008 group by date"); echo $sql; ?>
менял запросы, прикручивал циклы - ноль эммоций...
В чем проблема может быть?
|
BuGfiX |
03-09-2008 18:30 890267 |
|
Coutty |
03-09-2008 20:07 890319 |
Цитата:
Цитата Аlchemist
Но запрос из index.php почему-то не работает - возвращает какой-то Resource id #3 »
|
Так в $sql и содержится ссылка на ресурс.
Чтобы его обработать, нужно использовать функции $a = mysql_fetch_array($sql) или $a= mysql_fetch_assoc($sql) для индексного и ассоциативного массивов соответственно. Там ещё что-то есть, но не помню.
|
Аlchemist |
03-09-2008 23:28 890420 |
Цитата:
Цитата BuGfiX
эмм.. а где mysql_connect, mysql_select_db, mysql_close ? »
|
все это есть:
PHP код:
// 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 890421 |
Цитата:
Цитата Coutty
Там ещё что-то есть, но не помню »
|
ещё есть mysql_fetch_row
|
Аlchemist |
03-09-2008 23:40 890429 |
Цитата:
Цитата Coutty
Так в $sql и содержится ссылка на ресурс.
Чтобы его обработать, нужно использовать функции $a = mysql_fetch_array($sql) или $a=mysql_fetch_assoc($sql) для индексного и ассоциативного массивов соответственно. Там ещё что-то есть, но не помню. »
|
Так делал:
PHP код:
$sql = mysql_query ("select date,sum(bytes) from rl0_2008 group by date"); while ($a = mysql_fetch_array($sql)) { echo $a;
но не помогло =\
Цитата:
Цитата timon4ik
ещё есть mysql_fetch_row »
|
так еще пробовал:
PHP код:
$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 890769 |
Цитата:
Цитата Аlchemist
$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 890852 |
Цитата:
Цитата timon4ik
И второе, $a в этом случае - это массив, и обращаться к его элементам нужно соответственно echo $a[0]; echo $a[1]; »
|
Так что-то выходит, но не совсем то, что хотелось бы увидеть...
Вобщем всем спасибо, я ушел основательно учить PHP.
Если есть ссылки на стоящие доки - буду признателен. :)
|
Coutty |
04-09-2008 16:21 890936 |
Аlchemist, самый лучший док по PHP - официальный. Есть и на русском языке. Смотрите на офсайте.
Вот там приведён пример взаимодействия PHP+MySQL:
PHP код:
/* Соединение, выбор БД */
$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 890978 |
Coutty, спасибо, с этой конструкцией все выводит, осталось только дописать сортировку.
|
Coutty |
04-09-2008 17:49 891018 |
Сортировку можно задавать в sql-запросе.
PHP код:
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.
|
Время: 06:09.
© OSzone.net 2001-