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

Форум PHP

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

 

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

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

тема: Массив на выходе функции
 
 автор: Dmitry1988   (16.04.2009 в 16:22)   письмо автору
 
 

Здравствуйте,
такой вопрос как сделать чтобы на выступе этой функции был массив?

function prague()
{
$prague = array("Прага-4","Прага-5","Прага-6","Прага-7","Прага-8");
$q10 = mysql_query("SELECT * FROM aktuality");
while($r1 = mysql_fetch_array($q10))

$type = $r1['lokation'];
if(in_array($type,$prague))
return $r1['lokation'];
}
}


у меня тут массив, который должен вернуть значение lokation, но проблема в том, что он высылает ответ в виде "Прага-5Прага-6" и потом когда я обращаюсь к этой функции, то поевляется только один первый случай, т.е. "Прага-5", как сделать так, чтобы результат приходил в виде массива?
Спасибо большое

  Ответить  
 
 автор: vml   (16.04.2009 в 17:19)   письмо автору
 
   для: Dmitry1988   (16.04.2009 в 16:22)
 


<?php

function prague() { 

   
$prague = array("Прага-4","Прага-5","Прага-6","Прага-7","Прага-8"); 
   
$q10 mysql_query("SELECT * FROM aktuality"); 
   
$res = array();
   while(
$r1 mysql_fetch_array($q10)) {  

       
$type $r1['lokation']; 
       if (
in_array($type,$prague)) 
          
$res[] = $type
   } 
   return 
$res;
}

?>


Ты это имел ввиду или что?

  Ответить  
 
 автор: Dmitry1988   (16.04.2009 в 21:50)   письмо автору
 
   для: vml   (16.04.2009 в 17:19)
 

ага, попробовал опять не получается....
это у меня функция для поиска.
Может быть я на нее не правильно ссылаюсь?
$praha = prague();
$qes = mysql_query("SELECT * FROM aktuality WHERE lokation='".$praha."' ORDER BY lokation DESC");

  Ответить  
 
 автор: Trianon   (16.04.2009 в 22:04)   письмо автору
 
   для: Dmitry1988   (16.04.2009 в 21:50)
 

WHERE lokation= '...' ORDER BY lokation
Это сюрр...
Если lokation , кстати, что это?
Так вот, если lokation , чем бы оно не являлось , равно какому-то конкретному '...', то какой здесь может быть к фигам ORDER ?!

  Ответить  
 
 автор: Dmitry1988   (16.04.2009 в 22:06)   письмо автору
 
   для: Trianon   (16.04.2009 в 22:04)
 

извиняюсь там id должно быть)

  Ответить  
 
 автор: Trianon   (16.04.2009 в 22:08)   письмо автору
 
   для: Dmitry1988   (16.04.2009 в 22:06)
 

вызовите print вместо mysql_query ( это вообще полезная привычка) и посмотрите, что у Вас в запросе получилось.

  Ответить  
 
 автор: Dmitry1988   (16.04.2009 в 22:13)   письмо автору
 
   для: Trianon   (16.04.2009 в 22:08)
 

Классная функция спасибо большое за совет.
У меня выходит вот что:

SELECT * FROM aktuality WHERE lokation='Прага-6' ORDER BY id DESC


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

  Ответить  
 
 автор: Trianon   (16.04.2009 в 22:15)   письмо автору
 
   для: Dmitry1988   (16.04.2009 в 22:13)
 

Я не верю, что вашим скриптом (тем что привели ранее) Вы получили эту строку запроса.
Даже с учетом ORDER BY id

  Ответить  
 
 автор: Dmitry1988   (16.04.2009 в 22:18)   письмо автору
 
   для: Trianon   (16.04.2009 в 22:15)
 

Да нет правда она, зачем мне врать)) я эту проблему уже второй день решить не могу...
Вот код:


if($_POST['location'] == 'Prague'){
$praha = prague();
$qes = print("SELECT * FROM aktuality WHERE lokation='".$praha."' ORDER BY id DESC");
if(mysql_num_rows($qes)>0)
{
while($res = mysql_fetch_array($qes))
{
echo'<table>';
echo'<tr>';
echo'<td>';
echo'kartinka<br /><img src ="'."Actuality/".$res['img_url'].'" width="150" height="150"><br />';
echo'</td>';
echo'<td>';
echo'id<br />'.$res['id'].'<br />';
echo'</td>';
echo'<td>';
echo'nazvanije<br />'.$res['title'].'<br />';
echo'</td>';
echo'<td>';
echo'lokation<br />'.$res['lokation'];
echo'</td>';
echo'</tr>';
echo'</table>';
}
mysql_free_result($res);
}
else {echo 'Netu nichego';}

  Ответить  
 
 автор: Dmitry1988   (16.04.2009 в 22:18)   письмо автору
 
   для: Trianon   (16.04.2009 в 22:15)
 

вот функция:


function prague()
{
$prague = array("Прага-4","Прага-5","Прага-6","Прага-7","Прага-8");
$q10 = mysql_query("SELECT lokation FROM aktuality");
while($r1 = mysql_fetch_array($q10))

$type = $r1['lokation'];
if(in_array($type,$prague))
return $type;
}
}

  Ответить  
 
 автор: Dmitry1988   (16.04.2009 в 22:31)   письмо автору
 
   для: Dmitry1988   (16.04.2009 в 16:22)
 

подскажите пожалуйсто кто-нибудь, как сделать чтобы в mysql_query запрос проиходил массив а не одно значение! Спасибо

  Ответить  
 
 автор: Николай2357   (16.04.2009 в 23:42)   письмо автору
 
   для: Dmitry1988   (16.04.2009 в 22:31)
 

Как то так:
<?php

function prague() 

$prague = array("Прага-4","Прага-5","Прага-6","Прага-7","Прага-8");
$type = array(); 
$q10 mysql_query("SELECT lokation FROM aktuality"); 
    while(
$r1 mysql_fetch_array($q10)) 
    {  
    if(
in_array($r1['lokation'],$prague)) 
    
$type[] = $r1['lokation'];
    } 
return 
$type
}

$qes mysql_query("SELECT * FROM aktuality WHERE `lokation` IN (".implode(",",prague()).") ORDER BY id DESC");

  Ответить  
 
 автор: Лерк   (16.04.2009 в 23:46)   письмо автору
 
   для: Dmitry1988   (16.04.2009 в 22:31)
 

Функция prague() не нужна:
<?php
$qes 
mysql_query('SELECT * FROM aktuality WHERE lokation IN("Прага-4","Прага-5","Прага-6","Прага-7","Прага-8") ORDER BY id DESC');

  Ответить  
 
 автор: Dmitry1988   (17.04.2009 в 00:48)   письмо автору
 
   для: Лерк   (16.04.2009 в 23:46)
 

Спасибо всем огромнейшее!!!! Работает))

  Ответить  
Rambler's Top100
вверх

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