Проблема в том что я не знаю как загнать в одну переменную имена нескольких переменных что бы потом их использовать в “do { } while”
Вот к примеру мне надо в переменную $z_print загнать
$z_print = "$myrow['name'],$myrow['id']";
То есть много имен других переменных.
вот мой пример что я делал и не получилось:
class Zapros
{
public $t_print;
public $z_print;
public function dowhile ($t_print,$z_print)
{
do
{
printf("$t_print",$z_print);
}
while($this->myrow=mysql_fetch_array($result));
}
}
$t_print = "<div><p><b>Имя:</b> %s </p>ID :%s</div>";
$z_print = "$myrow['name'],$myrow['id']";
$obj = new Zapros;
$obj->dowhile($t_print,"$z_print");
Здесь весь вопрос в том что бы сделать универсальность, я тут запросил на вывод две переменные $z_print = "$myrow['name'],$myrow['id']";
А если мне теперь надо три или десять: $z_print = "$myrow['name'],$myrow['id'] ],$myrow['data']";
$t_print = "<div><p><b>Имя:</b> %s </p>ID :%s</div>";[/php]
$z_print = "$myrow['name'],$myrow['id']";
$obj = new Zapros;
$obj->dowhile($t_print,"$z_print");
Спустя 3 часа, 23 минуты, 36 секунд (14.11.2010 - 16:14) Sanchopansa написал(а):
Блин.. ну это же полный бред.. как такое вообще можно писать?
не проще передать масив с данными $myrow и при выводе нормально подставить переменные?
Я правда не понимаю что ты хочешь тут сделать но отвечу твоим примером!
еще скажу сразу что у тебя так работать не будет.. потому в твоем методе класса dowhile не выполняется сам запрос.. а следовательно и переменной $result - НЕТ! Посему твой do while цикл выполниться только 1 раз!
ЗЫЖ Я блин скоро буду громко материться на эти цыклы do while... и на Поповых и других тем более
Нада использовать цыкл while .. между этими двумя цыклами большая разница!
не проще передать масив с данными $myrow и при выводе нормально подставить переменные?
Я правда не понимаю что ты хочешь тут сделать но отвечу твоим примером!
class Zapros
{
public $t_print;
public $z_print;
public function dowhile ($t_print,$z_print)
{
do
{
printf("$t_print",$z_print['name'], $z_print['id']);
}
while($this->myrow=mysql_fetch_array($result));
}
}
$t_print = "<div><p><b>Имя:</b> %s </p>ID :%s</div>";
$z_print = "$myrow['name'],$myrow['id']";
$obj = new Zapros;
$obj->dowhile($t_print,$myrow);
еще скажу сразу что у тебя так работать не будет.. потому в твоем методе класса dowhile не выполняется сам запрос.. а следовательно и переменной $result - НЕТ! Посему твой do while цикл выполниться только 1 раз!
ЗЫЖ Я блин скоро буду громко материться на эти цыклы do while... и на Поповых и других тем более
Нада использовать цыкл while .. между этими двумя цыклами большая разница!
Спустя 7 минут, 37 секунд (14.11.2010 - 16:21) linker написал(а):
Вопрос, откуда вот здесь
Второе, правильный цикл
while($this->myrow=mysql_fetch_array($result);взялось $result?
Второе, правильный цикл
while(myrow=mysql_fetch_array($result))
{
}
class Zapros
{
public function dowhile ($result)
{
while($this->myrow = mysql_fetch_assoc($result))
{
echo '<div><p><b>Имя:</b> ' . $this->myrow['name'] . ' </p>ID :' . $this->myrow['id'] . '</div>';
}
}
}
...
$result = mysql_query("...");
$obj = new Zapros;
$obj->dowhile($result);
Спустя 1 час, 51 минута, 49 секунд (14.11.2010 - 18:13) twin написал(а):
Какой ужас...
Неужели попов еще и ООП взялся преподавать... Это же надо до такого додуматься
для чего класс то?
Неужели попов еще и ООП взялся преподавать... Это же надо до такого додуматься
class Zapros
для чего класс то?
Спустя 9 минут, 29 секунд (14.11.2010 - 18:23) Sanchopansa написал(а):
twin
Походу класс для коасса а имя Zapros это первое что в голову прийшло...
ЗЫЖ ПРостите за оффтоп.. неудержался
Походу класс для коасса а имя Zapros это первое что в голову прийшло...
ЗЫЖ ПРостите за оффтоп.. неудержался
Спустя 1 час, 5 минут, 11 секунд (14.11.2010 - 19:28) sergeiss написал(а):
А я вот тоже не понял.
Вот пишется умная мысль
Вот пишется умная мысль
Цитата (Sanchopansa @ 14.11.2010 - 17:14) |
Блин.. ну это же полный бред.. как такое вообще можно писать? |
и тут же следом идет расписывание дебильного (для данного случая) цикла do-while.
Sanchopansa - ты не прав Давай дневник, двойку поставлю!
Спустя 3 часа, 9 минут, 33 секунды (14.11.2010 - 22:37) zsm написал(а):
Цитата (Sanchopansa @ 14.11.2010 - 13:14) |
Блин.. ну это же полный бред.. как такое вообще можно писать? не проще передать масив с данными $myrow и при выводе нормально подставить переменные? Я правда не понимаю что ты хочешь тут сделать но отвечу твоим примером! class Zapros еще скажу сразу что у тебя так работать не будет.. потому в твоем методе класса dowhile не выполняется сам запрос.. а следовательно и переменной $result - НЕТ! Посему твой do while цикл выполниться только 1 раз! ЗЫЖ Я блин скоро буду громко материться на эти цыклы do while... и на Поповых и других тем более Нада использовать цыкл while .. между этими двумя цыклами большая разница! |
Конечно извиняюсь что задаю глупые вопросы, но вы не поняли что я хочу сделать.
во-первых отвечу на вопрос откуда взялась $myrow, это переменная из вне класса,
если так не будит работать то я конечно это исправлю.
Но вопрос был не в том!
Тут вы написали сделать так
printf("$t_print",$z_print['name'], $z_print['id']);
А если мне теперь надо обратиться к этому методу и уже не с двумя переменными ",$z_print['name'], $z_print['id']
,а уже надо три или пять. ? как сделать?
Я хотел сделать универсальный метод.
Спустя 11 минут, 55 секунд (14.11.2010 - 22:49) Nord написал(а):
Цитата |
А если мне теперь надо обратиться к этому методу и уже не с двумя переменными ",$z_print['name'], $z_print['id'] ,а уже надо три или пять. ? как сделать? Я хотел сделать универсальный метод. |
Спустя 6 минут, 18 секунд (14.11.2010 - 22:56) zsm написал(а):
Цитата (Nord @ 14.11.2010 - 19:49) |
Передать $myrow['name'],$myrow['id'] массивом и использовать вместо prinf() функцию vprintf() |
$myrow и есть масив, что то не понимаю как это сделать, а можно примерчик?
Спустя 6 минут, 30 секунд (14.11.2010 - 23:02) zsm написал(а):
Люди!
Вопрос в том что я один раз написал так
А потом мне надо написать так
Вопрос в том что я один раз написал так
А потом может и десять переменных надо будит вывеси.
потому так как написали вы не получиться !
Вопрос в том что я один раз написал так
$t_print = "<div><p><b>Имя:</b> %s </p>ID :%s</div>";
$z_print = "$myrow['name'],$myrow['id']";
$obj = new Zapros;
$obj->dowhile($t_print,"$z_print");
А потом мне надо написать так
Вопрос в том что я один раз написал так
$t_print = "<div><p><b>Имя:</b> %s </p>ID :%s</div> дата: %s , количество %s";
$z_print = "$myrow['name'],$myrow['id'] ,$myrow['data'], $myrow['col']";
$obj = new Zapros;
$obj->dowhile($t_print,"$z_print");
А потом может и десять переменных надо будит вывеси.
потому так как написали вы не получиться !
printf("$t_print",$z_print['name'], $z_print['id']);
Спустя 15 минут, 44 секунды (14.11.2010 - 23:18) Nord написал(а):
Цитата |
$myrow и есть масив, что то не понимаю как это сделать, а можно примерчик? |
В первом приближении как-то так:
class Zapros {
public function dowhile ($t_print,$z_print) {
$keys = array_flip($z_print);
while ($row = mysql_fetch_assoc($result)){
vprintf($t_print, array_intersect_key($row, $keys));
}
}
}
$t_print = "<div><p><b>Имя:</b> %s </p>ID :%s</div> дата: %s , количество %s";
$z_print = array('name', 'id', 'data', 'col');
$obj = new Zapros;
$obj->dowhile($t_print, $z_print);
Спустя 52 минуты, 52 секунды (15.11.2010 - 00:11) zsm написал(а):
Цитата (Nord @ 14.11.2010 - 20:18) |
В первом приближении как-то так:
|
мда.. не понимаю я =( и не работает оно
Спустя 50 минут, 15 секунд (15.11.2010 - 01:01) Sanchopansa написал(а):
sergeiss
Сори.. я так увлекся этим супер скриптом что забыл поменять этот цыкл...
А дневник я дома забыл
Сори.. я так увлекся этим супер скриптом что забыл поменять этот цыкл...
А дневник я дома забыл
Спустя 4 минуты, 7 секунд (15.11.2010 - 01:05) Sanchopansa написал(а):
Nord
Цитата |
class Zapros { public function dowhile ($t_print,$z_print) { $keys = array_flip($z_print); while ($row = mysql_fetch_assoc($result)){ vprintf($t_print, array_intersect_key($row, $keys)); } } } $t_print = "<div><p><b>Имя:</b> %s </p>ID :%s</div> дата: %s , количество %s"; $z_print = array('name', 'id', 'data', 'col'); $obj = new Zapros; $obj->dowhile($t_print, $z_print); |
а где тут нарисовалась переменная $result?
Спустя 10 часов, 31 минута, 53 секунды (15.11.2010 - 11:37) zsm написал(а):
Цитата (Sanchopansa @ 14.11.2010 - 22:05) |
а где тут нарисовалась переменная $result? |
Да, может и $result не попадает из другого метода этого класса в этот метод dowhile, я не знаю
все это я делал так:
<?php class Zapros
{
public $myrow;
public $polya;
public $table;
public $gde;
public $ravno;
public $parameter;
public function qwerty ($polya,$table,$gde,$ravno)
{
$result=mysql_query("SELECT $polya FROM $table WHERE $gde='$ravno'");
if(!$result)
{
echo "<p> Запрос не может быть исполнен напишите пожалуйста об этом администратору</p>";
exit(mysql_error());
}
if(mysql_num_rows($result) > 0)
{
$this->myrow=mysql_fetch_array($result);
}
else {echo "<p>Нет текста для этой страницы</p>";}
}
public function printes($parameter)
{
echo $this->myrow[$parameter];
}
public $t_print;
public $z_print;
public function dowhile ($t_print,$z_print)
{
$keys = array_flip($z_print);
while ($row = mysql_fetch_assoc($result))
{
vprintf($t_print, array_intersect_key($row, $keys));
}
}
}
$obj = new Zapros;
$obj->qwerty("*","page","st","index");
$obj->printes("title");
$obj->printes("meta_k");
$t_print = "<div><p><b>Имя:</b> %s </p>ID :%s</div> дата: %s , количество %s";
$z_print = array('name', 'id', 'data', 'col');
$obj->dowhile($t_print, $z_print);
?>
Спустя 11 часов, 36 минут, 37 секунд (15.11.2010 - 23:13) Nord написал(а):
Цитата (Sanchopansa) |
а где тут нарисовалась переменная $result? |
Ну, у автора в певроначальной функции $result тоже появляется внезапно, я думал, он уже знает, откуда она берется и подправит сам
to zsm
1) Сделать $result полем класса
2) Обращаться к нему через $this->
3) Удалить класс как бессмысленный и ненужный
Спустя 46 минут, 19 секунд (16.11.2010 - 00:00) Sanchopansa написал(а):
Nord
Цитата |
1) Сделать $result полем класса |
Не полем класса а свойством
zsm
как сказал Nord
Цитата |
1) Сделать $result 2) Обращаться к нему через $this-> |
Спустя 5 минут, 33 секунды (16.11.2010 - 00:05) Sanchopansa написал(а):
ОФФТОП:
Я так понимаю что имя метода qwerty это тоже последствия ПОповых?
Потому как я понял это по мнению автора типа тоже самое что и QUERY
zsm
http://translate.google.com/#en|ru|query
Видишь что означает это слово? получается глупо.. учитывая что класс называется Zapros
Я так понимаю что имя метода qwerty это тоже последствия ПОповых?
Потому как я понял это по мнению автора типа тоже самое что и QUERY
zsm
http://translate.google.com/#en|ru|query
Видишь что означает это слово? получается глупо.. учитывая что класс называется Zapros
Спустя 12 часов, 1 минута, 47 секунд (16.11.2010 - 12:07) Nord написал(а):
Цитата (Sanchopansa) |
Не полем класса а свойством |
Это всего лишь название http://ru.wikipedia.org/wiki/Поле_класса