|
автор: Be4ep (27.01.2005 в 12:41) |
|
| сабж... | |
|
|
|
|
|
|
|
для: Be4ep
(27.01.2005 в 12:41)
| | Хм... без таблицы сложно что-то сказать... Нужно действовать примерно следующим образом:
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Формируем SQL-запрос
$query = "SELECT name FROM tbl WHERE id=24";
// Выполняем SQL-запрос
$str = mysql_query($query);
if(!$str) exit("Ошибка в синтаксисе SQL-запроса");
// Выводим содержимое поля name
echo mysql_resutl($str,0);
|
Файл config.php должен быть примерно следующего состава
<?php
$dblocation = "localhost";
$dbname = "ваша база";
$dbuser = "ваш логин";
$dbpasswd = "ваш пароль";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) {
echo( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
exit();
}
if (! @mysql_select_db($dbname,$dbcnx) ) {
echo( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" );
exit();
}
?>
|
| |
|
|
|
|
автор: Be4ep (27.01.2005 в 13:37) |
|
|
для: cheops
(27.01.2005 в 12:59)
| | я поменял на:
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Формируем SQL-запрос
$query = "SELECT * FROM clients WHERE id=1";
// Выполняем SQL-запрос
$str = mysql_query($query);
if(!$str) exit("Ошибка в синтаксисе SQL-запроса");
// Выводим содержимое поля name
echo mysql_resutl($str,0);
?>
|
имя таблици у меня clients. если не ошибаюсь надо было вставить вместо tbl. но всеравно выдает: "Ошибка в синтаксисе SQL-запроса"
и что означает " WHERE id=1".
я только начал работать с sql ток что не судите строго :) | |
|
|
|
|
автор: Be4ep (27.01.2005 в 13:38) |
|
|
для: Be4ep
(27.01.2005 в 13:37)
| | сначала попробовал по твоему, а потом изменил на WHERE id=1 | |
|
|
|
|
|
|
|
для: Be4ep
(27.01.2005 в 13:38)
| | А вообще есть поле(колонка) со названием id в твоей таблице?
Какие есть названия полей(колонок) в таблице? | |
|
|
|
|
автор: Be4ep (27.01.2005 в 16:32) |
|
|
для: Artemy
(27.01.2005 в 16:07)
| | 3 колонки: name, email, preferens
что такое id??? | |
|
|
|
|
|
|
|
для: Be4ep
(27.01.2005 в 16:32)
| | id - енто номер. Обычно auto_increment. Если тебе надо какую-то конкретную строчку, то надо делать так "where name='$per'" или "where email='$per'" . Хотя в вашей таблице лучше использовать ешё колонку id, обычно она самая первая. | |
|
|
|
|
|
|
|
для: Be4ep
(27.01.2005 в 16:32)
| | Если поля id нет нужно писать что-то вроде
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Формируем SQL-запрос
$query = "SELECT * FROM clients WHERE name='Be4ep'";
// Выполняем SQL-запрос
$str = mysql_query($query);
if(!$str) exit("Ошибка в синтаксисе SQL-запроса");
// Выводим содержимое поля name
echo mysql_resutl($str,0);
?>
|
| |
|
|
|
|
автор: Be4ep (28.01.2005 в 00:05) |
|
|
для: cheops
(27.01.2005 в 20:23)
| | те нужно указывать параметр из таблици? тогда понятно зачем поле ид. | |
|
|
|
|
автор: Be4ep (28.01.2005 в 00:18) |
|
|
для: cheops
(27.01.2005 в 20:23)
| | а тогда пишет:
Fatal error: Call to undefined function mysql_resutl() in z:\home\test1.ru\www\wiev.php on line 10
|
само сабой в таблицу в колонку Name я значение вставил | |
|
|
|
|
|
|
|
для: Be4ep
(28.01.2005 в 00:18)
| | Хм... поторопился когда писал, исправьте пожалуйста
на
| |
|
|
|
|
автор: Be4ep (28.01.2005 в 14:37) |
|
|
для: cheops
(28.01.2005 в 13:37)
| | я и сам не заметил :)
ну хорошо параметр из одной колонки вывели, а всю строку таким же образом?
те я должен каждый раз выполнять запрос к определенной калонке? | |
|
|
|
|
|
|
|
для: Be4ep
(28.01.2005 в 14:37)
| | Если я правильно понел, то так!
<?
// Устанавливаем соединение с базой данных
include "config.php";
// Формируем запрос
$query = "SELECT * FROM clients WHERE name = 'Ве4ер'";
// Посылаем запрос к базе данных
$res = mysql_query($query);
// Если запрос выполнился выводим данные
if(!$res)
{
echo "Ошибка при обрашении к базе данных!";
exit;
}
// Выводим данные
while ( $sql = mysql_fetch_array($res))
{
echo "Имя - $sql['name']<br> e-mail - $sql['email']<br> Preferens- $sql['preferens']";
}
?>
|
| |
|
|
|
|
|
|
|
для: Artemy
(28.01.2005 в 21:24)
| | Да... только строку с выводом от греха лучше в таком виде писать
<?php
echo "Имя - $sql[name]<br> e-mail - $sql[email]<br> Preferens- $sql[preferens]";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(28.01.2005 в 23:25)
| | А не могли Вы объяснит почему? | |
|
|
|
|
|
|
|
для: Artemy
(29.01.2005 в 10:20)
| | Считается что с элементами массивов в строке следует обращаться примерно следующим образом:
<?php
$wet['root'] = "password";
// Все записи ниже эквивалентны
echo "Значение элемента массива ".$wet['root'];
echo "Значение элемента массива $wet[root]";
echo "Значение элемента массива {$wet['root']}";
?>
|
Но в PHP столько правил и они так плохо документированы, что я не удивлюсь если есть ещё какие-то способы... | |
|
|
|
|
|
|
|
для: cheops
(29.01.2005 в 14:09)
| | Как я понел существенного различия нет!?
Да? | |
|
|
|
|
|
|
|
для: Artemy
(28.01.2005 в 21:24)
| | вот что вывело :) :
Имя -
e-mail -
Preferens-
а сами значения никак | |
|
|
|
|
|
|
|
для: Be4ep
(29.01.2005 в 19:30)
| | поправил на:
<?
echo "Имя - $sql[0]<br> e-mail - $sql[1]<br> Preferens- $sql[2]";
?>
|
и получилось. понять не могу почему..... :| | |
|
|
|
|
|
|
|
для: Be4ep
(29.01.2005 в 19:34)
| | Функция mysql_fetch_array() по умолчанию создаёт смешанный массив в котором все данные продублированы с использованием индексов (0, 1, 2 и т.д. и ассоциативных ключей name, email, preferens и т.д.) поэтому срабатывать должен и такой код:
<?php
echo "Имя - $sql[0]<br> e-mail - $sql[1]<br> Preferens- $sql[2]";
?>
|
и такой
<?php
echo "Имя - $sql[name]<br> e-mail - $sql[email]<br> Preferens- $sql[preferens]";
?>
|
Для того, чтобы вывести и значения и ключи всего массива используйте конструкцию
| |
|
|
|
|
|
|
|
для: cheops
(29.01.2005 в 19:46)
| | я имел ввиду то что не работает ассоциативный массив. только почему он не работает... | |
|
|
|
|
|
|
|
для: Be4ep
(27.01.2005 в 12:41)
| | ну а вот если с полем ид. то как при добавлении мне узнать какая там последняя.
с полем ид вывести всю таблицу получится что то типа while(!$id)? | |
|
|
|
|
|
|
|
для: Be4ep
(29.01.2005 в 19:45)
| | Обычно поле id, снабжают атрибутом auto_increment - тогда при добавлении новой записи если передать ему значение 0 или NULL оно автоматически принимает максимально значение плюс единица - может вам требуется именно это?
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=81 | |
|
|
|
|
|
|
|
для: cheops
(29.01.2005 в 19:50)
| | ну это тоже полезно. только мне надо узнать вот что:
предположим есть таблица:
ид_1
.......(от 1 до 999 неразрывно)
ид_999
я не знаю, что там последняя ид идет под номером 999, так как мне это узнать ее номер | |
|
|
|
|
|
|
|
для: Be4ep
(29.01.2005 в 23:04)
| |
SELECT MAX(id) AS id FROM tbl;
|
| |
|
|
|
|
|
|
|
для: cheops
(30.01.2005 в 00:39)
| |
<?
include "config.php";
// запрос
$query = "SELECT * FROM clients2";
// Выполнить запрос
$res = mysql_query($query) or die(mysql_error());
// Получать по одной строке из таблицы в массив $row, пока строки не кончатся
while ($row=mysql_fetch_array($res)) {
echo "Name: ".$row[Name]." Email: ".$row[Email]." Preferens: ".$row[Preferens];
echo "<BR><BR>";
}
?>
|
можно ли вывести всю таблицу по другому, или только так? | |
|
|
|
|
|
|
|
для: Be4ep
(30.01.2005 в 02:00)
| | еще можно вот так:
<?
include "config.php";
///////////////////////////////////////////////////////////////
$query_id = "SELECT MAX(id) AS id FROM clients2";
$res_id = mysql_query($query_id);
if(!$res_id)
{
echo "Ошибка при обрашении к базе данных!";
exit;
}
// Выводим данные
while ( $sql_id = mysql_fetch_array($res_id))
{
$id_max = $sql_id[0];
}
////////////////////////////////////////////////
for ($i=0; $i<$id_max; $i++) {
$query = "SELECT * FROM clients2 WHERE id = $i";
$res = mysql_query($query);
if(!$res)
{
echo "Ошибка при обрашении к базе данных!";
exit;
}
while ( $sql = mysql_fetch_array($res))
{
echo "Name: ".$sql[Name]." Email: ".$sql[Email]." Preferens: ".$sql[Preferens];
echo "<BR><BR>";
}
}
?>
|
но это слишком длинно, если не ошибаюсь здесь можно на страницы выводить определенное количество строк, чего нельзя сделать в первом варианте | |
|
|
|
|
|
|
|
для: Be4ep
(30.01.2005 в 02:00)
| | Ну вместо функции mysql_fetch_array() можно использовать другие функции, но смысл остаётся тот же... можно сначала узнать число записей, а потом выводить в цикле for, а не while... А чем вас этот вариант не устраивает?
http://www.softtime.ru/group/id_group=2 | |
|
|
|
|
|
|
|
для: cheops
(30.01.2005 в 14:02)
| | просто мне интересно сколько может быть вариантов | |
|
|
|