PHPFAQ  
Начинающим   Технологии   MySQL   Ошибки   Ссылки   Юмор   О сайте   Форум   PHP Club  
-- Список сообщений -- Поиск --
быстрая проверка MySQL баз
Иван 17.01.09 22:49
меня интересует есть ли такая закономерность чтобы проверить например, существуют ли поля в данной таблице, если нет выводим, что нет данных. И возможно ли такое чтобы без особых затруднений в прописывании SELECT * FROM ... лалала... Получаеться слишком длинный код. Чтобы особо не трепать нервы есть особые функции в php для таких операций? Если есть то какие? ССылка на урок приветствуеться.!
ответить
phpfaq 17.01.09 23:04
есть

В PHP, как и в других языках, есть функции. Определяемые программистом. В которые можно поместить любой код, чтобы потом к нему обращаться.

Вот только я не понял, какой именно код ты хочешь упростить, и до какого.
ответить
Иван 18.01.09 16:58
ну например

SELECT COUNT(*) FROM table;
..... дальше длинный код...
И вот вопрос: какую функчию в php можно применить чтобы при постоянной проверке количества не писать длинные и долгообрабатывающиеся коды. Тоесть мне нужен оптимальный вариант.
ответить
phpfaq 18.01.09 18:41
свою собственную

я что - непонятно написал выше?
пишем СОБСТВЕННУЮ функцию. помещаем в ней любой код. неужели это так сложно?

почему такая проверка выполняется так часто? почему они делаются запросом по всей таблице?
ответить
Иван 18.01.09 20:55
неплохо неплохо

собственно я этого и ожидал вопросом на вопрос одназначно эффективный овет.
Ожидал я не то что мне придеться создавать функцию, а думал есть стандартная например
.....
mysql_select_db($dbname);
$count = sqlcount($table);
....
В таблице $count строк.
М? ну как есть чтото вроде этого? Если нет то я схожу повешусь.
ответить
phpfaq 18.01.09 21:33
вешайся.

ты безнадежен и бесперспективен
ответить
Иван 18.01.09 22:10
моя функция:

include "connect.php";
function countSQL($db_c,$tbl_c){
mysql_select_db($db_c);
$q_c = "SELECT COUNT(*) FROM $tbl_c";
$r_c=mysql_query($q_c);
if(mysql_num_rows($r_c)>0){
$count=mysql_fetch_row($r_c);
}
return $count[0];
}
$countstr = countSQL($database,$table);
echo $countstr;

Вот написал функцию, ее можно еще упростить?
ответить
phpfaq 18.01.09 22:33
зачем?

Зачем её упрощать? Допустим, сократишь ты её код в два раза. Что изменится?

Зачем внутри выбирается база? У тебя это не в коннекте разве происходит? А почему?

И почему тебе вообще понадобилась такая функция? Никому никогда не нужно считать количество записей в таблице. И тем более - для проверки, есть ли там что-нибудь.
ответить
Иван 18.01.09 22:51
...

Нет эти вопросы меян не мучают, сейчас я
столкнулся с проблемой
а именно:
Fatal error: Cannot redeclare countsql()

Я пытаюсь использовать ее дважды например
$countstr1 = countSQL('tovar');
$countstr2 = countSQL('cart');
(На счет выборки БД внутри это я уже давно убрал)

И почему то он ссылаеться на строчку где я вывожу уже результат
echo "В таблице корзины ".$countstr2." строки";

Почему вылазит ошибка и как ее исправить?
Сам пытался разобраться не получилось, везде ответы поверхностные.
ответить
phpfaq 18.01.09 23:05
очень плохо, что не мучают.

ответь мне на них, и после этого я отвечу на твои.
ответить
Иван 18.01.09 23:38
...

Зачем её упрощать? Это сократит сам код, как я полагаю и имхо увеличиться скорость ее выполнения.

Зачем внутри выбирается база? У тебя это не в коннекте разве происходит? А почему?
Потому что у меня в файле connect.php нет выборки базы и эта функция что я написал вначале это была не доделанная я ведь позже убрал выборку БД и оставил только просмотр таблицы.

И почему тебе вообще понадобилась такая функция? Эта функция понадобилась для того чтобы при выводе данных о товаре который существует на складе и в другом случаи который лежит у покупателя в корзине.

Я думаю что ответил на все твои вопросы, а теперь жду ответов на свои.
ответить
phpfaq 19.01.09 00:19
ну и с чего ты взял?

С чего ты взял, что скорость увеличится? А почему вдруг тебе ударило в голову ускорять именно этот кусок кода, когда у тебя весь остальной еще кривее? Работай с тем, что есть. Тебе сейчас лишь бы работало.

Функция, которая считает все записи в таблице, не может понадобиться ни для информации о наличии товаров на складе, ни, тем более - для корзины. Потому что все товары должны лежать в одной таблице. то есть, в ней всегда что-то будет. И дергать её на эту тему бессмысленно. Создавать же отдельную таблицу для корзины - и вовсе идиотизм. В общем, эта функция, как я и предполагал, тебе не нужна.
ответить
Ivan 21.01.09 08:36
я понимаю

тоесть то что у меня все остальное кривое это я понимаю, так как начал писать тот код с самого начала изучения php, я на протяжении пол года делаю этот проект совсместно изучая, а так с течением времени я понимаю что надо сносить все что сделал и писать заного, но смысла нет так как сроки поджимают. сейчас осталось мне доделать корзину, доработать добавление товара и вперед, пускать сайт. Но а если возникнут пробелмы я исправлю. Может это даже не конечный вариант... и я постепенно буду улучшать сайт с помощью своих функций, а то уменя весь код это практически постоянно повторяющийся отрезок. Но вот возникла пробелма о которой я написал в предыдущем посте. О ошибке возникающей при одновременном использовании 1-ой и той же функции.
Вопрос состоит на данный момент как мне эту ошибку исправить, а потом все остальное будет легче уже понять.
ответить
phpfaq 21.01.09 10:17
"может это не конечный вариант"

мне нравится это "может".

ну ищи, где у тебя функция два раза определяется.
ответить
Ivan 21.01.09 13:49
вот этот код

<?php
include "install/into.php";
function countSQL($db_c,$tbl_c){
mysql_select_db($db_c);
$q_c = "SELECT COUNT(*) FROM $tbl_c";
$r_c=mysql_query($q_c);
if(mysql_num_rows($r_c)>0){
$count=mysql_fetch_row($r_c);
}
return $count[0];
}
$countstr1 = countSQL('$user','$table');
$countstr2 = countSQL('$user','$table');
echo "В таблице товаров ".$countstr1." строк"."<br />"."\n";
echo "В таблице корзины ".$countstr2." строк";
?>

Fatal error: Cannot redeclare countsql() in /usr/home/'user'/domains/'domain.ru'/public_html/install/into.php on line 15

Однако в этой строчке ничего странного я не обнаружил. Вот тут то и произошел стопор.
ответить
Ivan 21.01.09 13:50
может

из-за того что выборка ДБ доложна быть в into.php а не в функции?
ответить
Ivan 21.01.09 18:53
...

ошибку решил, просто у меня в двух файлах которые инклудились в исполняемом файле была практически одна и та же функция.
ответить
Написать
Имя:*
Заголовок:*
Вы робот?
Текст:
Пожалуйста, воздержитесь от посылки спама.
Сообщения, содержащие гиперссылки, проходят премодерацию.

© phpfaq.ru, 2010
Rambler's Top100 0.014 sec.