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

Форум MySQL

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

 

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

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

тема: переворот слов
 
 автор: Diablo_   (18.11.2006 в 00:18)   письмо автору
 
 

Помогите, пожалуйста, решить задачу! Мне нужно сделать следующие: в БД хранятся слова, мы возьмём за пример, цифры, так будет проще объяснить. Мне нужно их вытащить, всего их 24 и сделать их во в таком виде:
1 – 2
2 – 1
2 – 3
3 – 2
3 – 4
4 – 3

И так далее…..
Я сделал вот так:

<?
require_once("class/sql.class.php");
$my = new class_sql;
$my->sql_connect();

$my->sql_query="select * from info WHERE ORDER BY word";
$my->sql_execute();

if (@
mysql_num_rows($my->sql_res)!=0)
{
    
$N=0;
    
$a=array();
     while ($
1_array mysql_fetch_array($my->sql_res)) {
       
$a[]=$1_array['word'];
     
$N++; 
     }
    
$b=array();
for (
$i=0;$i<$N;$i++)
{
   for (
$j=0;$j<$N;$j++)
   {
      if (
$a[$i]<>$a[$j])
      {         
         echo 
$b[]=$a[$i].' - '.$a[$j]."<br>";
       }
   }
}
}
?>

Может можно как-то подругому, с более меньшим количеством циклов???

   
 
 автор: cheops   (18.11.2006 в 14:08)   письмо автору
 
   для: Diablo_   (18.11.2006 в 00:18)
 

Не очень понятно, а что в столбце word хранится?

   
 
 автор: Diablo_   (18.11.2006 в 14:22)   письмо автору
 
   для: cheops   (18.11.2006 в 14:08)
 

в столбце word хранится одно или сочетания нескольких слов
Вот и нужно сделать:
Ячейка 1 – ячейка 2
Ячейка 2 – ячейка 1
Ячейка 2 – ячейка 3
Ячейка 3 – ячейка 2
Ячейка 3 – ячейка 4
Ячейка 4 – ячейка 3
Ячейка 4 – ячейка 5
Ячейка 5 – ячейка 4
……………..
……………
…………..

   
 
 автор: cheops   (18.11.2006 в 14:34)   письмо автору
 
   для: Diablo_   (18.11.2006 в 14:22)
 

Т.е. хранится строка "первое слово - второе слово" или "первое слово"?

   
 
 автор: Diablo_   (18.11.2006 в 14:35)   письмо автору
 
   для: cheops   (18.11.2006 в 14:34)
 

я отредактировал второе сообщение что бы было понятнее

   
 
 автор: cheops   (18.11.2006 в 14:43)   письмо автору
 
   для: Diablo_   (18.11.2006 в 14:22)
 

Если записи нумерованы (id), то проблему удобнее решить средствами MySQL
SELECT snd.word, fst.word
FROM info AS fst, info snd
WHERE fst.id = snd.id + 1

Т.е. таблица должна иметь примерно такую структуру
CREATE TABLE info (
  id int(11) NOT NULL auto_increment,
  word int(11) NOT NULL,
  PRIMARY KEY  (id)
);

   
 
 автор: Diablo_   (18.11.2006 в 15:18)   письмо автору
 
   для: cheops   (18.11.2006 в 14:43)
 

А если выбираемые слова, должны отвечать отпределённому требованию? допустим все слова во второй ячейке которого установлено значение 1!

   
 
 автор: cheops   (18.11.2006 в 16:31)   письмо автору
 
   для: Diablo_   (18.11.2006 в 15:18)
 

Добавьте ещё одно условие
SELECT snd.word, fst.word 
FROM info AS fst, info snd 
WHERE fst.id = snd.id + 1 AND fst.second = 1

   
Rambler's Top100
вверх

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