Эта тема на forum.dklab.ru


Ramazan: Проблема с mysql_fetch_array
Всё никак не могу понять в чём проблема имеется код идентичный тому что я делал но в одном выдаёт ошибку в другом нет.
if (!$action AND !$folder) {
$s_folder = mysql_query("SELECT * FROM `folder`");
while($f=mysql_fetch_array($s_folder)) {
$f_id = $f[id];
$f_name = $f[name];
$f_url = $f[url];
$f_design = file("design/page/start.tpl");
for($m=0;$m<count($f_design);$m++) {
$f_design[$m] = str_replace("{id}",$f_id,$f_design[$m]);
$f_design[$m] = str_replace("{name}","<a href=?mod=page&action=show&folder=$f_id><img src=design/images/folder.gif>$f_name</a>",$f_design[$m]);
$f_design[$m] = str_replace("{edit}","<a href=?mod=page&action=editfolder&folder=$f_id><img src=design/images/edit.png></a>",$f_design[$m]);
$f_design[$m] = str_replace("{delet}","<a href=?mod=page&action=deletfolder&folder=$f_id><img src=design/images/del.png></a>",$f_design[$m]);
$f_design[$m] = str_replace("{url}",$f_url,$f_design[$m]);
$text.=$f_design[$m];
}

}
$text.="<br><center><a href=?mod=page&action=addfolder><b>Добавить</b></a></center>";

}
if ($action=="editfolder" AND $folder) {
$s_folder = mysql_query("SLECT * FROM `folder` WHERE `id`='$folder'");
$f=mysql_fetch_array($s_folder); // Вот тут ошибка
$f_name = $f[name];
$f_url = $f[url];
$f_content = $f[content];
$f_visible = $f[visible];
$f_design = file("design/page/edit_folder.tpl");
for($m=0;$m<count($f_design);$m++) {
$f_design[$m] = str_replace("{id}",$folder,$f_design[$m]);
$f_design[$m] = str_replace("{name}",$f_name,$f_design[$m]);
$f_design[$m] = str_replace("{url}",$f_url,$f_design[$m]);
$f_design[$m] = str_replace("{content}",$f_content,$f_design[$m]);
$f_design[$m] = str_replace("{visible}","<input name=visible type=checkbox value=1 checked>",$f_design[$m]);
$text.=$f_design[$m];
}
}

Непойму что за дрянь такая, а выдаёт следующее
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\my\admin\page.php on line 32
Ramazan:
Моя невнимательность я олень. В запросе $s_folder поставил вместо SELECT SLECT .
Зы , пол дня мучался сёня и тока 5 мин назад допёрло.
Вопрос следующий:
Свой первый скрипт я написал недельки две назад, как по вашему мнению(професиональному) складывается моё развити в области PHP сюдя по этому скрипту?
И ещё:
В некоторых чужих скриптах вижу что перед переменными(не всеми) ставится собака(@). Зачем это нужно.
Maus:
Ramazan
http://phpfaq.ru/debug - чтоб полдня не мучаться в следующий раз
перед переменными(не всеми) ставится собака(@)
http://www.php.net/manual/ru/language.operators.errorcontrol.php
как по вашему мнению(професиональному) складывается моё развити в области PHP
Видно пока, что документацию Вы читать не любите или не считаете нужным. И уровень отображения ошибок у Вас занижен. С валидатором не знакомы, со стандартом HTML 4.01 - тоже (хотя лучше смотреть дальше, в сторону XHTML)
bæv:
Ветка выделена в отдельную тему «мусор, не относящийся к теме»,
расположенную в форуме Мусоропровод (12 Ноября 2010, 23:46).
Гаджимурад:
Ramazan

знак @ ставиться обычно перед переменными в которых храниться mysql-запросы, это делается для того чтобы подовлять вывод ошибок
Гаджимурад:
есть база данных которая создается по мере регистраций пользователей, в ней храняться логин и пароль пользователя и еще есть форма для входа на раздел сайта только для зарегестрированных пользователей. Проблема в том что я могу попасть в этот раздел сайта только через одни логин и пароль, а через остальные не получается. Как сделать так чтобы когда пользователь вводил логин и пароль, эти данные сверялись со всеми логинами и паролями в базе и если они существуют можно было бы заходить через любые данные которые содержатся в базе.
Вот код:
<?php

session_start();
if(isset($_POST['login_us'])) {$login_us = $_POST['login_us'];}
if(isset($_POST['pass_us'])) {$pass_us = $_POST['pass_us'];}
if(isset($_POST['auth'])) {$auth = $_POST['auth'];}

include ("bloks/db.inc");

$query = "SELECT `id`,`login`,`pass` FROM $tbregister";
$result = mysql_query($query) or die(mysql_error());
$line = mysql_fetch_array($result)
$login = $line['login'];
$pass = $line['pass'];



if(isset($auth)) {

if(($login_us == $login) && ($pass_us == $pass)) {

$logged_user = $login_us;
session_register('logged_user');
$_SESSION['logged_user'];
header("Location: secretplace.php");

}else {
echo "<b>Не правильный логин или пароль<b>";
}
}

?>

Maus:
Гаджимурад
не понял задачу. Попробуйте проиллюстрировать примером (вроде "пусть у меня есть три пары паролей ...."). То ли Вы разлогиниться не можете, то ли пытаетесь дыру создать.

$query = "SELECT `id`,`login`,`pass` FROM $tbregister";
А если в таблице 50000 записей? SQL более эффективен, почитайте.

Эта тема на forum.dklab.ru