<?php
include 'db.php';
//echo setlocale(LC_ALL,'ru_RU.CP1251');
mysql_connect($host,$jim,$pass);
mysql_select_db($db_name);
?>
Файл db.php
<?php
$host = 'localhost';
$login = 'jim';
$pass = '12345';
$db_name = 'webguru';
?>
Создал нового пользователья в привелегиях jim,пароль 12345 и отметил всё квадратиками, нажал окей.
Запускаю сайт ,выдаёт вот такое:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user ''@'localhost' (using password: YES) in Z:\home\test1.ru\www\index.php on line 4
Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user ''@'localhost' (using password: NO) in Z:\home\test1.ru\www\index.php on line 5
Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in Z:\home\test1.ru\www\index.php on line 5
Спустя 2 минуты, 27 секунд (23.04.2011 - 21:40) alex12060 написал(а):
mysql_connect($host,$login,$pass);
Будьте внимательней
Спустя 16 минут, 29 секунд (23.04.2011 - 21:56) ИНСИ написал(а):
$db = mysql_connect($host,$login,$pass);
mysql_select_db($db_name, $db);
Спустя 6 минут, 9 секунд (23.04.2011 - 22:02) Kasperskiy написал(а):
Попробовал вытянуть с базы, написал так, вроде сработало, но немного не могу понять логику вытягивания. Я про цикл вайл имею ввиду.
Что происходит за каждой итерацией?
Функция mysql_fetch_assoc возвращает какое-то значение и отправляет её в переменную t? Как, каким образом вытаскивание происходит?
<?php
include 'db.php';
//echo setlocale(LC_ALL,'ru_RU.CP1251');
mysql_connect($host,$login,$pass);
mysql_select_db($db_name);
//Выборка из таблицы
$res = mysql_query('select * from salo');
while($t = mysql_fetch_assoc($res)){
echo $t['text'];
}
?>
Что происходит за каждой итерацией?
while($t = mysql_fetch_assoc($res))
Функция mysql_fetch_assoc возвращает какое-то значение и отправляет её в переменную t? Как, каким образом вытаскивание происходит?
Спустя 7 минут, 22 секунды (23.04.2011 - 22:10) inpost написал(а):
1 - первая строка, 2 -вторая строка, когда нечего будет вытаскивать - вернёт false и остановится.
В данном случае у тебя вытягиваются ВСЕ строки из таблицы САЛО!
В данном случае у тебя вытягиваются ВСЕ строки из таблицы САЛО!
Спустя 3 минуты, 50 секунд (23.04.2011 - 22:14) alex12060 написал(а):
По русски:
Пока (переменной t присваивается значение из массива, полученного функцией mysql_fetch_assoc)
{
выводим $t['text'];
}
Итак, с каждой итерацией происходит присвоение значения переменной, выводится текст, переменная оцищается, и действие происходит заного. Цикл выполняется, пока переменная не равна false
После записи массива, ты обращаешься к полю 'text' (ключу) массива, который хранит текст из базы данных.
Пока (переменной t присваивается значение из массива, полученного функцией mysql_fetch_assoc)
{
выводим $t['text'];
}
Итак, с каждой итерацией происходит присвоение значения переменной, выводится текст, переменная оцищается, и действие происходит заного. Цикл выполняется, пока переменная не равна false
После записи массива, ты обращаешься к полю 'text' (ключу) массива, который хранит текст из базы данных.
Спустя 5 минут, 3 секунды (23.04.2011 - 22:19) Kasperskiy написал(а):
А в результате чего обычная переменная $t стала ни с того ни с всего массивом?
Спустя 3 минуты, 11 секунд (23.04.2011 - 22:22) inpost написал(а):
Kasperskiy
В БД у тебя строка имеет несколько колонок, каждая ячейка - свой ключ, $t - массив ключей и их значений.
Таблица: id , text , title
$t['id'],$t['text'],$t['title']
В БД у тебя строка имеет несколько колонок, каждая ячейка - свой ключ, $t - массив ключей и их значений.
Таблица: id , text , title
$t['id'],$t['text'],$t['title']
Спустя 5 минут, 27 секунд (23.04.2011 - 22:27) alex12060 написал(а):
Ты прочти, что возвращает функция, и все поймешь.
Это равносильно такому действию:
Это равносильно такому действию:
$arr = array();
$t = null;
$arr['id'] = 1;
$arr['text'] = 'text';
$t = $arr; // Переенной $t присвоили значения массива
Спустя 1 час, 24 минуты, 10 секунд (23.04.2011 - 23:51) Kasperskiy написал(а):
Если у меня например 2 строки в одной колонке.
Цикл прошёл раз, два, а на третий раз я так понимаю функция mysql_fetch_assoc)
возвратила значение null этот нул присвоился переменной $t.
Цикл вайл перестал циклить из-за того,что условие просто стало равно значению
NULL, а не из-за того что условие ложное? Если ложное, из-за чего оно стало ложное?
Цикл прошёл раз, два, а на третий раз я так понимаю функция mysql_fetch_assoc)
возвратила значение null этот нул присвоился переменной $t.
Цикл вайл перестал циклить из-за того,что условие просто стало равно значению
NULL, а не из-за того что условие ложное? Если ложное, из-за чего оно стало ложное?
//Выборка из таблицы
$res = mysql_query('select * from salo');
while($t = mysql_fetch_assoc($res)){
echo $t['text'];
}
Спустя 1 минута, 43 секунды (23.04.2011 - 23:53) Invis1ble написал(а):
Kasperskiy
почти, только не null, а false. На каждой итерации цикла указатель в result-set, сформированный мускулом, перемещается на одну позицию и по достижении конца result-set'a mysql_fetch_assoc() возвращает false
почти, только не null, а false. На каждой итерации цикла указатель в result-set, сформированный мускулом, перемещается на одну позицию и по достижении конца result-set'a mysql_fetch_assoc() возвращает false
Спустя 12 минут, 48 секунд (24.04.2011 - 00:06) Kasperskiy написал(а):
Скажите, этот цикл за таким же принципом работает, я имею ввиду отсанавливается весь цикл, как выше с масивом?
<php
$rost = 0;
do{
echo 'Privet Robik!';
if($rost = 0) $rost++;
else $rost = false;
}while($rost==true);
?>
Спустя 24 минуты, 2 секунды (24.04.2011 - 00:30) Invis1ble написал(а):
Kasperskiy
нет, в конструкции do-while сначала выполняется блок кода, находящийся в do, а затем уже только проверяется условие. Вот наглядный пример:
нет, в конструкции do-while сначала выполняется блок кода, находящийся в do, а затем уже только проверяется условие. Вот наглядный пример:
do { echo 'Test'; }
while (false);
Спустя 4 минуты, 12 секунд (24.04.2011 - 00:34) inpost написал(а):
Kasperskiy
Работа данного кода мне не ясна, увы =( Что-то неправильное в целом ты показал.
Там цикла не будет, ты ему присваиваешь значение 0, потом делаешь +1, а 1 уже true.
Весь твой данный код выглядит так:
Работа данного кода мне не ясна, увы =( Что-то неправильное в целом ты показал.
Там цикла не будет, ты ему присваиваешь значение 0, потом делаешь +1, а 1 уже true.
Весь твой данный код выглядит так:
echo 'Privet Robik!';
$rost = 1;
Спустя 2 минуты, 53 секунды (24.04.2011 - 00:37) Invis1ble написал(а):
inpost
неа, вышеприведенный код сводится к строчкам:
неа, вышеприведенный код сводится к строчкам:
echo 'Privet Robik!';
$rost = false;
Спустя 10 минут, 23 секунды (24.04.2011 - 00:47) inpost написал(а):
Invis1ble
Почему это вдруг? Там же $rost++; стоит.
Почему это вдруг? Там же $rost++; стоит.
Спустя 29 минут, 12 секунд (24.04.2011 - 01:17) Kasperskiy написал(а):
Вот так то есть, код выше немного не правильный,2 итерации пройдёт.
Этот код также как и тот который вытаскивал запросы закончиться цикл здесь, таким же образом цикл закончиться как с масивом?
$rost = 0;
do{
echo 'Privet Robik!'.'<br>';
if($rost == 0) $rost++;
else $rost = false;
}while($rost==true);
?>
Этот код также как и тот который вытаскивал запросы закончиться цикл здесь, таким же образом цикл закончиться как с масивом?
Спустя 10 часов, 23 минуты, 31 секунда (24.04.2011 - 11:40) Invis1ble написал(а):
inpost
потому что это условие не выполнится никогда, а выполнится блок else
Kasperskiy
не много? да он в корне отличается!! )
здесь да, 2 итерации
потому что это условие не выполнится никогда, а выполнится блок else
Kasperskiy
не много? да он в корне отличается!! )
здесь да, 2 итерации
Спустя 5 часов, 57 минут, 43 секунды (24.04.2011 - 17:38) Kasperskiy написал(а):
Нет, я хотел спросить, последний цикл, который я написал работает за таким же принципом выход из цикла, как и в цикле который вытягивал строки из базы данных в самом начале темы?
Спустя 4 минуты, 21 секунда (24.04.2011 - 17:42) Invis1ble написал(а):
Kasperskiy
Я же написал, выполняется одна итерация, затем проверяется условие - если true, то выполняется следующая итерация, до тех пор, пока условие не вернет false.
Я же написал, выполняется одна итерация, затем проверяется условие - если true, то выполняется следующая итерация, до тех пор, пока условие не вернет false.