Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с синтаксисом...
 
 автор: FialkO   (01.10.2007 в 20:21)   письмо автору
 
 

Помогите с синтаксисом...

<?
if ($foo):
    echo 
"yep\n";
elseif (
$bar):
    echo 
"almost\n";
else:
    echo 
"nope\n";
endif;
?> 


Как в эту кострукцию вставить:

<?
$qall 
mysql_query("SELECT `id` FROM `chat_rooms`;");
        while(
$rid mysql_fetch_array($qall))
            {
            
$room $rid['id'];
            
mysql_query("INSERT INTO `chat".intval($room)."` VALUES(0, '944', '".mysql_escape_string($nikbot)."', '".mysql_escape_string($message)."', 0, '".date("H:i:s")."', ".time().");");
            }
?>

   
 
 автор: sim5   (01.10.2007 в 20:27)   письмо автору
 
   для: FialkO   (01.10.2007 в 20:21)
 

Куда вставлять и почему?

   
 
 автор: FialkO   (01.10.2007 в 20:28)   письмо автору
 
   для: sim5   (01.10.2007 в 20:27)
 

в if ... endif;
Если можно не встовлять while то как?

   
 
 автор: sim5   (01.10.2007 в 20:30)   письмо автору
 
   для: FialkO   (01.10.2007 в 20:28)
 

Ну понятно что не выше if, что вы хотите? Ваши условия и запросы к базе как-то связаны?

   
 
 автор: FialkO   (01.10.2007 в 20:31)   письмо автору
 
   для: FialkO   (01.10.2007 в 20:28)
 

Нужно чтобы вот для этого запроса:
mysql_query("INSERT INTO `chat".intval($room)."` VALUES(0, '944', '".mysql_escape_string($nikbot)."', '".mysql_escape_string($message)."', 0, '".date("H:i:s")."', ".time().");");


$room = была равна всем ID в chat_rooms

   
 
 автор: FialkO   (01.10.2007 в 20:44)   письмо автору
 
   для: FialkO   (01.10.2007 в 20:31)
 


<? 
if ($foo): 
    echo 
"yep\n"
elseif (
$bar): 
    echo 
"almost\n"
else: 
    while(
$rid mysql_fetch_array($q33))
            {
            
$room $rid['id'];
            
mysql_query("INSERT INTO `chat".intval($room)."` VALUES(0, ".intval($id).", '".mysql_escape_string($system_bot)."', '".mysql_escape_string($text2)."', 0, '".$time."', ".time().");");
            }
endif; 
?> 


Вот так вот делаю и не работает =( Почему?

   
 
 автор: sim5   (01.10.2007 в 20:45)   письмо автору
 
   для: FialkO   (01.10.2007 в 20:31)
 

А причем тут if? У вас что есть таблица с полями chat1, chat2, chat3... в которые надо вставить новые значения? Что-то каша какая-то.

   
 
 автор: FialkO   (01.10.2007 в 20:47)   письмо автору
 
   для: sim5   (01.10.2007 в 20:45)
 

да есть

   
 
 автор: FialkO   (01.10.2007 в 20:48)   письмо автору
 
   для: FialkO   (01.10.2007 в 20:47)
 

ну у меня много разных условий и никак не могу while вставить (

   
 
 автор: sim5   (01.10.2007 в 20:54)   письмо автору
 
   для: FialkO   (01.10.2007 в 20:48)
 

Если так, то это не просто каша, это бред
INSERT INTO NAME TABLE VALUES - именно таблицы, а не поля таблицы! То есть, у вас должны быть куча готовых таблиц chat1, chat2, chat3... и т.д. в которые вы можете вставить. Может вы ошибаетесь и вам нужно обновить данные в какой-то таблице для полей: chat1, chat2, chat3...?

   
 
 автор: FialkO   (01.10.2007 в 20:56)   письмо автору
 
   для: sim5   (01.10.2007 в 20:54)
 

Нет... Кодом я все верно делаю...
Вы мне пожалуйста помогите while вставить в if

   
 
 автор: sim5   (01.10.2007 в 21:00)   письмо автору
 
   для: FialkO   (01.10.2007 в 20:56)
 

Что и куда вставлять? Вам лучше в раздел MySQL, и сперва сообщить что у вас за таблицы, какова их структура, и объяснить - что и для чего вы хотите вставить. Иначе...

   
 
 автор: FialkO   (01.10.2007 в 21:02)   письмо автору
 
   для: sim5   (01.10.2007 в 21:00)
 

=) Вы меня наверно не поняли... Мне нужно в If... endif; вставить цикл while...endwhile;
Как это сделать ? Таблицы не имеют значения...

   
 
 автор: sim5   (01.10.2007 в 21:07)   письмо автору
 
   для: FialkO   (01.10.2007 в 21:02)
 

<?
if (expression) {
  
//если удовлетворяет
  //вставляем цикл, да и вообще что хотите 
} else {
 
//не удовлетворяет, кина не будет
} .... // и т.д.

Разве в этом проблема, как вставить? У вас в запросе странности, хотя может я чего-то и не понял.

   
 
 автор: FialkO   (01.10.2007 в 21:14)   письмо автору
 
   для: sim5   (01.10.2007 в 21:07)
 

Так то понятно... Но у меня конструкция if другая как в мануале

<?
if ($foo):
    echo 
"yep\n";
elseif (
$bar):
    echo 
"almost\n";
else:
    echo 
"nope\n";
endif; 
?>

   
 
 автор: sim5   (01.10.2007 в 21:17)   письмо автору
 
   для: FialkO   (01.10.2007 в 21:14)
 

А вам что, нужно именно как в мануале? Не из мануала код надо брать, а из головы, исходя из задачи :) Мануал - это настольная книга перед ужином. Вы можете вообще воспользоваться switch вместо if...else..., и что пропишите его именно так как в мануале будет?

   
 
 автор: FialkO   (01.10.2007 в 21:20)   письмо автору
 
   для: sim5   (01.10.2007 в 21:07)
 

>
<?
>if (expression) {
>  
//если удовлетворяет
>  //вставляем цикл, да и вообще что хотите 
>} else {
//не удовлетворяет, кина не будет
>} .... // и т.д.
>

>Разве в этом проблема, как вставить? У вас в запросе странности, хотя может я чего-то и не понял.
Вот покажите как бы вы вставили в свой код цикл while

   
 
 автор: sim5   (01.10.2007 в 21:42)   письмо автору
 
   для: FialkO   (01.10.2007 в 21:20)
 

То что вы пишите (запросы к базе), я бы вообще никуда бы не вставлял, потому как вы совсем не понимаете, что такое команда INSERT MySQL. INSERT INTO my_nable означает - вставить в существующую таблицу данные, именно в существующую и именно в таблицу! Если вы будете, не задумываясь, брать все из мануала, то у вас ничего работать не будет! То что вы взяли из мануала означает:


<?
if ($foo): // если опеределена переменная $foo 
    
echo "yep\n"//то вывести это
elseif ($bar): // если опеределена переменная $bar
    
echo "almost\n"//то вывести это
else: echo "nope\n"//если ни $foo, ни $bar не определены, то выводится эта строка 
endif;
?>

У вас и близко нет в коде ни $foo, ни $bar - это переменные для примера, они по всему мануалу РНР раскиданы.
Забудьте про $foo и $bar - прочтите о командах MySQL. Вам не нужно никаких условий, если вы правильно составите запрос к базе.

   
 
 автор: EXP   (01.10.2007 в 21:48)   письмо автору
 
   для: sim5   (01.10.2007 в 21:42)
 

если сомневаетесь в правильности выполнения
условий , поставьте туда отображение чего-нибудь,
так тоже работает :
<?php
if (2) :
print 
1;
elseif (
3) :
print 
;
else :
$i ;
while((
$i++) < 20) :
print 
$i 
endwhile ;
endif ;

# но удобнее разбираться бывает в таком :

if (2) {
print 
1;
}
else if (
3) {
print 
;
}
else {
$i ;
while((
$i++) < 20)
{
print 
$i 
}
}


if ($bar) помоему это если $bar не false , определена но не как false или 0

   
 
 автор: Unkind   (01.10.2007 в 22:13)   письмо автору
 
   для: EXP   (01.10.2007 в 21:48)
 

EXP и FialkO, убедительная просьба не использовать устаревший синтаксис. Крайне неприятно его читать, а, как следствие, трудно отвечать.
И делайте отступы.

sim5, мне кажется там на каждую комнату чата своя таблица. Список комнат в отдельной таблице.

   
 
 автор: bronenos   (01.10.2007 в 23:02)   письмо автору
 
   для: Unkind   (01.10.2007 в 22:13)
 

он ИМХО в целях совместимости с пхп3 и красоты интеграции хтмл-разметки

   
 
 автор: sim5   (02.10.2007 в 00:21)   письмо автору
 
   для: Unkind   (01.10.2007 в 22:13)
 

Может быть и так, я об этом и спросил - куда вставляется, в поля с такими-то именами, ответ был утвердительный. Но если в отдельные таблицы, а человек даже и не знает, что это за IF, то интересно было бы узнать, знает ли он об операторе INSERT, созданы ли у него те таблицы, которые он пытается "получить", ну и т.д... Если знает, то зачем ему условие?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования