[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает while($row = mysqli_fetch_array
nigga-popl
Здравствуйте!
Товарищи, подскажите, в чем может быть загвоздка - второй день бьюсь над этим вопросом - запрос выполняется, а в цикле ничего не выводит.

$q="SELECT * FROM users WHERE name='$name' LIMIT 1;";
$r=mysqli_query($db_connect,$q);
while ($row = mysqli_fetch_array($r))
{
$id=$row['id'];
$passw=$row['pass'];
$rule=$row['rule'];
echo"$id $passw $rule";
}

Переменная $name не пустая, до запроса проверял. К базе коннектится.



Спустя 3 минуты, 39 секунд (25.07.2010 - 10:59) zvezda_t написал(а):
LIMIT 1
только одна запись?

Спустя 45 секунд (25.07.2010 - 11:00) Basili4 написал(а):
ну новерно поэтому
$r=mysqli_query($db_connect,$q);
while ($row = mysqli_fetch_array($enter_r))

обрат внимание на переменную $enter_r и подумай не поможет пиши

Спустя 42 секунды (25.07.2010 - 11:01) Basili4 написал(а):
zvezda_t
Я думаю и без limit он бы получил 1 запись

Спустя 6 минут, 55 секунд (25.07.2010 - 11:08) nigga-popl написал(а):
и с лимитом, и без лимита, и там я тоже исправил ($enter_r)

Спустя 3 минуты, 2 секунды (25.07.2010 - 11:11) Basili4 написал(а):
ты не чего не перепутал ты используешь mysqli не mysql я сразу не заметил но теперь вижу дело в том что mysqli имеет другую чтруктуру получения результатов там другие функции используются. уточни какую БД ты используешь

Спустя 6 минут, 14 секунд (25.07.2010 - 11:17) nigga-popl написал(а):
mysql 5.1.40-community
Версия MySQL-клиента: mysqlnd 5.0.5-dev - 081106 - $Revision: 289630 $
php 5.3.1 по-моему

попробовал, кстати, конструкцию вида

while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC))
{
printf ("ID: %s Name: %s", $row["id"], $row["name"]);
...


аналогичный результат((

Спустя 2 минуты, 38 секунд (25.07.2010 - 11:19) Basili4 написал(а):
nigga-popl
Ну тагда все просто


mysqli видишь буковку i в конце убери её везде.

Спустя 1 минута, 2 секунды (25.07.2010 - 11:20) Basili4 написал(а):

$q="SELECT * FROM users WHERE name='$name' LIMIT 1;";
$r=mysql_query($db_connect,$q);
while ($row = mysql_fetch_array($r))
{
$id=$row['id'];
$passw=$row['pass'];
$rule=$row['rule'];
echo"$id $passw $rule";
}


у тебя должно получится так у меня это работатет смотр у себя

Спустя 11 минут (25.07.2010 - 11:31) nigga-popl написал(а):
Basili4
Warning: mysql_query() expects parameter 2 to be resource, object given in Z:\home\rts\www\login.php on line 49

не в этом дело.
у меня даже почему-то простой цикл

$i=1;
$p=2;
while ($i < 32)
{
echo"$p ";
$p=$p*2;
$i=$i++;
}

очень серьезно зацикливается и выводит много-много цифр. По-идее он должен вывести 31 число - степени числа 2 ($p).

До этого стоял php 2006 года, не скажу какой версии. Оба цикла проходили на ура. А сейчас обновил php до 5.3.1 и не понимаю многих вещей dry.gif Кое с чем разобрался быстро, а вот это меня уже добивает(((

Спустя 3 минуты, 39 секунд (25.07.2010 - 11:35) Basili4 написал(а):
$i=$i++; это что ?????

while ($i < 10)
{
echo "$i\n";

$i++;
}

исполняй

по этому
Warning: mysql_query() expects parameter 2 to be resource, object given in Z:\home\rts\www\login.php on line 49


$r=mysql_query($db_connect,$q) or die(mysql_error()." q");

замени это и запость что выведет
это значит что ошибка в запросе




Спустя 6 минут, 2 секунды (25.07.2010 - 11:41) nigga-popl написал(а):

while ($i < 10)
{
echo "$i\n";
$i++;
}

прошел отлично
$r=mysql_query($db_connect,$q) or die(mysql_error()." q");
ничего не вывел
Это:

$q="SELECT * FROM users WHERE name='$name';";

выводил на экран. В phpmyadmin его выполнял.
Либо

$r=mysqli_query($db_connect,$q);

либо

while ($row = mysqli_fetch_array($r))

не хочет работать. я так думаю.

Спустя 1 минута, 32 секунды (25.07.2010 - 11:43) Basili4 написал(а):
я же говорил убери i в конце mysql

Вот так надо

$r=mysql_query($db_connect,$q);

while ($row = mysql_fetch_array($r))

Спустя 13 минут, 10 секунд (25.07.2010 - 11:56) nigga-popl написал(а):
у меня было:
$db_connect=mysqli_connect($dblocation,$dbuser,$dbpasswd,$dbname);

а такого небыло:
mysql_select_db($dbname,$db_connect);

далее везде стояло mysqli а не mysql
поменял - результат тот же: ничего не выводит

по-твоему это работает?

<?php
mysqli_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysqli_error());
mysqli_select_db("mydb");
$result = mysqli_query("SELECT id, name FROM mytable");
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
printf ("ID: %s Name: %s", $row["id"], $row["name"]);
}
mysqli_free_result($result);
?>

взято отсюда

Спустя 3 минуты, 52 секунды (25.07.2010 - 12:00) Basili4 написал(а):
Убей ВСЕ i ПОСЛЕ mysql ну сколько можно головой об стену биться тебе не надоело я же по русски говорю это функции не к mysql а к другой БД. Ты меня пониамешь ?????????? или нам по английски разговаривать. ?

Спустя 1 минута, 15 секунд (25.07.2010 - 12:01) Basili4 написал(а):
Я УЖе писал как надо ............. ты разницу что не видешь ???

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQLI_ASSOC)) {
printf ("ID: %s Name: %s", $row["id"], $row["name"]);
}
mysql_free_result($result);
?>

Спустя 1 минута, 3 секунды (25.07.2010 - 12:02) nigga-popl написал(а):
поменял - результат тот же: ничего не выводит
по-моему я тоже по-русски пишу... blink.gif

Спустя 2 минуты, 52 секунды (25.07.2010 - 12:05) Basili4 написал(а):
тады понятно smile.gif а то ты мне не одним и тем же кодо кривым у попова списаным тукаешь

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable") or
die("ERROR" . mysql_error());;
while ($row = mysql_fetch_array($result, MYSQLI_ASSOC)) {
printf ("ID: %s Name: %s", $row["id"], $row["name"]);
}
mysql_free_result($result);
?>



смотри должна ошибка выскочить

Спустя 12 минут, 56 секунд (25.07.2010 - 12:18) nigga-popl написал(а):
вощем, я мало что понимать стал))) вот это, что ты только что написал, отдельно работает, а мой скрипт нифига не хочет идти, хотя все так же указано.
у меня именно while не хочет идти
while ($row = mysql_fetch_array($result, MYSQLI_ASSOC)) {
echo"текст";
...

не выводит слово текст blink.gif

Спустя 2 минуты, 43 секунды (25.07.2010 - 12:21) Basili4 написал(а):
nigga-popl
приведи свой скрипт тоько не всеь а тот кусок который имеет отношение к запросу выводу будем думать

Спустя 5 минут, 28 секунд (25.07.2010 - 12:26) nigga-popl написал(а):

if ($_GET['action'] == 'enter')
{
if ($_GET['p_action'] != 'enter')
{
echo"<br><center><form action=\"login.php?action=enter&p_action=enter\"
method=\"post\" enctype=\"multipart/form-data\"><table><tr><td>Логин:
/td><td><input type=
\"text\" name=\"name\" size=\"11\"\"></td></tr><tr>
td>Пароль:</td><td><input type=
\"password\" name=\"pass\" size=\"11\"> <a
href=
\"login.php?action=lost\">Восстановить</a></td></tr><tr><td><input
type=
\"submit\" value=\"Войти\"></td></tr></table></form></center>";
}
if ($_GET['p_action'] == 'enter')
{
$name=$_POST['name'];
$pass_enter=md5($pass);
$enter_q="SELECT * FROM users WHERE name='$name';";
$enter_r=mysql_query($enter_q);
if ($enter_r)
{
while ($row = mysql_fetch_array($enter_r, MYSQLI_ASSOC))
{
echo"<br>текст<br>"; // не выводится
$id=$row['id'];
$passw=$row['pass'];
$rule=$row['rule'];
}
echo"<br>$pass_enter and $passw"; // выходит только $pass_enter and
if ($pass_enter == $passw)
{
//session_start();
$_SESSION['uname']=$id;
$_SESSION['rule']=$rule;
echo"<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"0;URL=index.php\">";
}
if ($pass_enter != $passw)
{
echo"<br><center>Неверный логин/пароль<br><a href=\"javascript:history.go(-1)\">« Назад</a></center>";
}
}
}
}


Кстати говоря, в ссылке можно переменные передавать вот так:
login.php?action=enter&p_action=enter
Раньше получалось))

И еще. Нажав кнопку "Войти" постоянно выскакивает "Неверный логин/пароль"

Спустя 5 минут, 21 секунда (25.07.2010 - 12:31) Basili4 написал(а):
О брат да у тебя вообще не правильное представление о программировании каким учебными пособием пользующийся. назови его я должен знать.

вот скажи от куда сдесь может быть параметр передаваемый методом post если уже подразумевается передача методом get ??

if ($_GET['p_action'] == 'enter')
{
$name=$_POST['name'];

так не бывает

Спустя 55 секунд (25.07.2010 - 12:32) Basili4 написал(а):
идем далее это
$pass_enter=md5($pass); откуда взялась переменная $pass ????

Спустя 2 минуты, 24 секунды (25.07.2010 - 12:35) nigga-popl написал(а):
Если пишу по примеру
if ($action == 'enter')

выходит пустой экран.
До обновления php я так и писал.
переменная $pass отсюда:

<input type=\"password\" name=\"pass\" size=\"11\">

Спустя 2 минуты, 6 секунд (25.07.2010 - 12:37) Basili4 написал(а):
nigga-popl
Я всмысле уже давно понял что твое учебное пособие на свалку надо. выкинь его вообще у тебя есть аська напиши мне чтобы не засорять тему. Я тебе на пальцах все раскажу моя аська есть в моем профиле.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.