Jump to content
  • 0

ооп проблема


vvsh
 Share

Question

доброе время суток.

есть класс db

в нем функции query, row

class db {
var $query_id;
function query($query) {
$this->query_id = mysql_query($query);
}
function row() {
return mysql_fetch_array($this->query_id);
}
}

когда в классе show я наследую класс db

и пишу функцию которая выводит информацию

class show extends db {
function data() {
$this->query("SELECT * FROM table");
$num = $this->num();
if($num>0) {
$i = 1;
while($row = $this->row()) {
$this->query("SELECT * FROM table2 WHERE field2 = '$row[field]'");
$nums = $this->num();
$body .= "<a href='$row[field3].html'>$row[field4] [$nums]</a>";
if($i!=$num){
$body .= "<br>";
}
$i++;
}
} else {
$body .= "Пусто";
}
return $body;
}
}

вызываю данную функцию так:

$show = new show;

$show->data();

В этой таблице около 20 записей.

При выводе, мне выводит только так

<a href='1.html'>1 [1]</a>

[0]

хотя должно вывести

<a href='1.html'>1 [1]</a>

<a href='2.html'>2 [2]</a>

<a href='3.html'>3 [3]</a>

и т.д.

как мне сделать так, чтобы выводило как надо?

Edited by vvsh
Link to comment
Share on other sites

  • Answers 51
  • Created
  • Last Reply

Top Posters For This Question

Recommended Posts

  • 0

Про ооп ниче не скажу, сам только сегодня первый в жизни класс написал, но строка:

$this->query("SELECT * FROM table");

слово table в sql является служебным, если у тебя таблица так и называется, то в запросах надо заключать название в обратные кавычки

$this->query("SELECT * FROM `table`");

Link to comment
Share on other sites

  • 0

Да. И что, это тебя вообще никак не наталкивает на мысли, почему у тебя лажа выходит?

Я же не спросил, что они делают, я спросил что с ними будет после указанной строчки.

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

Ты идиот, бросай это дело, из тебя вообще ничего путнего не получится

Link to comment
Share on other sites

  • 0

НЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ, у тебя идет вызов:

$this->query("SELECT * FROM table");

После него у тебя $this->row() и $this->num() будут возвращать строку и количество строк последнего запроса.

А потом у тебя идет вызов:

$this->query("SELECT * FROM table2 WHERE field2 = '$row[field]'");

и после него $this->row() и $this->num() тоже будут возвращать строку и количество строк последнего запроса.

Последнего, блядь, последнего!!!

Link to comment
Share on other sites

  • 0

понял, при повторении запроса, оно сначало выполняет первый, потом второй, а второй раз в первом выполняет второй, и короче все путается, ну вот как сделать, чтобы оно выполняло их в заданной последовательности?

Link to comment
Share on other sites

  • 0

если честно, то я понял.

первый запрос происходит, но в цикле происходит второй запрос, и когда уже цикл продолжается, $this->row равно уже запросу в цикле, как мне сделать, чтобы все работало так, как работает без ооп?

А че, sic, последовательность не заданная?

sic - это что?

Edited by vvsh
Link to comment
Share on other sites

  • 0
как мне сделать, чтобы все работало так, как работает без ооп?

Как нибудь! в этом и суть программирования, у тебя есть задача, ты должен составить алгоритм, который би приводил к решению это задачи, а потом самая малость — записать на известном тебе языке.

Думай, думай, думай. Включай мозг. Подумай, как оно работает сейчас. Как ты бы хотел чтобы оно работало. Какие цели ты достигаешь используя те или иные средства. Ты используешь ООП, это средство. у тебя есть цель которую ты достигаешь, используя это средство? Или ты как обычно хочешь выучить еще одно слово? Ставь задачи, пиши алгоритмы, и все время думай.

sic - это что?

Помоему это НЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯя, по английски.

Link to comment
Share on other sites

  • 0
у тебя есть цель которую ты достигаешь, используя это средство? Или ты как обычно хочешь выучить еще одно слово? Ставь задачи, пиши алгоритмы, и все время думай.

да, мой блог, щас работает без ооп вообще, хочу на ооп перевести, и это единственная проблема, которую я не могу решить.

Помоему это блядь, по английски.

понятно.

ладно, буду думать.

посидел, подумал, есть конечно идеи, но я считаю их примитивными, и не уверен что будут работать. может подскажешь? хоть что-нить, или хоть намекни, в какую сторону смотреть то?

Link to comment
Share on other sites

  • 0
Помоему это НЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯя, по английски.

Дима, там еще было, пропустил :lol:

да, мой блог, щас работает без ооп вообще, хочу на ооп перевести, и это единственная проблема, которую я не могу решить.

нет, это не задача. Перевести блог на ООП — это не задача.

Задача - сделать удобный доступ к базе, работу с результатом как а массивом, автоматическое использование нужного соединениея. это похоже на задачу.

vvsh, давай честно, ты пробовал читать книжки? Ты в жизни хоть одну книгу по теме прочел? Хоть какой-нибудь материал по php и mysql ? Или все из форумов почерпнул?

Не будешь читать книжки — так и вырастишь дебилом.

Link to comment
Share on other sites

  • 0
я в них заглядываю иногда, если что-то забываю...

Ты пробовал их ЧИТАТЬ?

если честно, то я вообще ожидал помощи, а не ...

Всю жизнь с протянутой рукой?

Если ты один раз приходишь и говоришь «дай мне рыбу!», я дам тебе рыбу. Когда ты придешь во второй, я наверное тоже дам тебе рыбу. Но если ты каждый день ходишь и просишь рыбы, проще научить тебя рыбачить. Согласен?

Нельзя изо дня в день ходить на форум и через год быть таким-же тупым, как в самом начале.

Выкинь эту книгу, ага.

Тут ты прав, но дело не в этом. Если человек читает, думает над прочитанным, он впитывает знания. Если он по форумам шатается и на примерах из сети все делает, он так и останется дебилом. С этой точки зрения, без разницы, есть ли там ООП. Потом можно будет просто другую книжку взять.

Link to comment
Share on other sites

  • 0
Всю жизнь с протянутой рукой?

Если ты один раз приходишь и говоришь «дай мне рыбу!», я дам тебе рыбу. Когда ты придешь во второй, я наверное тоже дам тебе рыбу. Но если ты каждый день ходишь и просишь рыбы, проще научить тебя рыбачить. Согласен?

Нельзя изо дня в день ходить на форум и через год быть таким-же тупым, как в самом начале.

да, согласен, но в данном конкретной случае я понял, что уже происходит, но не могу придумать как разрешить эту проблему, мне 15 лет!

Тут ты прав, но дело не в этом. Если человек читает, думает над прочитанным, он впитывает знания. Если он по форумам шатается и на примерах из сети все делает, он так и останется дебилом. С этой точки зрения, без разницы, есть ли там ООП. Потом можно будет просто другую книжку взять.

У книжки название соответствующее, "Как самостоятельно создать сайт любой сложности".

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy