эм ну скромно добавлю посоветую вернее... почитай внимательно документацию по SQL запросам очень много интересного.
Ваще базы данных эт наука ) со своей теорией (в нете можно многое найти)
ну а чисто полезные советы:
если ты делаешь SELECT * FROM но используешь тока например поле user_id
это очень плохой тон тк базе да и памяти срипта потребуется больше времени на обработку чем если бы ты сделал SELECT user_id FROM
очень часто нужно узнать количество полей там или подсчитать ченить
начинающие программисты делают так
SELECT * FROM и потом смотрят mysql_num_rows или ваще цикл $cnt++ ))
в MySQL есть такая интересная штука как count()
PHP код:
function rows($che,$tab,$par='')
{
$w='';
if($par<>''){$w='where';}
$sql=mysql_query("select count($che) as \"cnt\" from $tab$w$par");
$row=mysql_fetch_array($sql,MYSQL_ASSOC);
mysql_free_result($sql);
return $row['cnt'];
}
заметь я указываю аргумент у mysql_fetch_array потомучто без него функция возращяет 2 массива один с именами другой с цифрами типа $row[0], $row[id] + mysql_free_result($sql) - освобождает память от уже ненужных данных
есть еще интересная функция например max которая выберает максимальный элемент одним запросом... почитай в общем.
Ну и не забывай о безопасности
всегда значения передаваемые в WHERE пиши в кавычках типа WHERE id='1' это спасет тебя если на серверы включены magic_quotes_gpc типа id=1' OR 1=1/*
ВСЕ входящиее переменные особено $_GET нужно проверять и явно указывать их тип (спасет от подстав типа ?page[]=2)
sql("select * from gal where id=$id");
sql("select * from gal where id='".$id."'");
mysql_close($sqlq);
?>
еще заметь die(mysql_error()) - так делать можно только на стадие дебага ... хакир ваще не должен знать че происходит
даже отсутсвие каких либо выводимых данных признак того что ошибка есть, поэтому нужно обязон делать проверки типа
if(mysql_num_rows() > 0)
else { $id=1 ; }
а лучше ваще перенаправления куданить на главную или к списку там тем незнаю чего ) меня лично это очень добивает потомучто приходится возвращатся на зад и тестить дальше ))))
Последний раз редактировалось Gar|k; 11.04.2009 в 20:03..
Лишние кавычки конечно же бывают, ибо тогда производится неявное преобразование типов, что на больших объемах данных может дать заметное замедление. Так что необходим смотреть на это дело со стороны безопасности - необходимы ли они в конкретном случае или нет.