Не получается выборка из базы данных

2e4nik

Новичок
Не получается выборка из базы данных

Прошу помощи - убил день, все равно не догоняю в чем дело.

Значит по порядку:

1. Есть база данных, в ней три поля : ID (тут просто номер идет - не использую) SLOVO (слово) P_ID (его значение). Слова повторяются, значения слов не повторяются.
2. Есть файл ('testselect.txt'), в котором перечислены слова с новой строки каждое.
3. Скрипт должен пройтись по каждому слову из этого файла:
- найти все строки с этим словом
- взять случайную строку из найденных строк, и из этой строки извлечь значение P_ID.

Ну попутно напечатать сколько значений найдено, или что ничего не найдено.
Вроде все описал правильно.
День бьюсь – ничего не получается, пишет:

есть 0 записей.
Ничего нет

Хотя все есть.

В чем тут дело?
Вот код:
PHP:
<?php
$hostname="localhost";
$username="dump";
$password="dump";
$dbName="testdump";
$userstable="testdump";
$textselect=file('testselect.txt');
mysql_connect($hostname,$username,$password) OR DIE('Не могу создать соединение ');
mysql_select_db($dbName) or die(mysql_error());
$count_1=count($textselect);
$i=0;
for ($i==0;$i<$count_1;$i=$i+1) {
$tt=$textselect[$i];
$query="SELECT * FROM $userstable WHERE SLOVO = '$tt' ORDER BY RAND() LIMIT 1";
$res=mysql_query($query) or die(mysql_error());
$number = mysql_num_rows($res);
echo "<br>есть $number записей.<br>";
if ($number == 0) {
  echo '<b>Ничего нет</b>';
}
$row=mysql_fetch_array($res);
echo $row['P_ID'].'<br><br>';
}
mysql_close();
?>
-- Структура таблицы `testdump`
--

CREATE TABLE `testdump` (
`ID` varchar(10) NOT NULL default '',
`SLOVO` varchar(25) NOT NULL default '0',
`P_ID` varchar(25) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Дамп данных таблицы `testdump`
--

INSERT INTO `testdump` VALUES ('8', 'Aachal', 'Achal');
INSERT INTO `testdump` VALUES ('7', 'Aabyegayle', 'Abyegayle');
INSERT INTO `testdump` VALUES ('6', 'Aabroo', 'Abroo');
INSERT INTO `testdump` VALUES ('5', 'Aabrillyn', 'Abrillyn');
INSERT INTO `testdump` VALUES ('4', 'Aabriella', 'Abriella');
INSERT INTO `testdump` VALUES ('3', 'Aabish', 'Abish');
INSERT INTO `testdump` VALUES ('2', 'Aabira', 'Abira');
INSERT INTO `testdump` VALUES ('1', 'Aabida', 'Abida');
INSERT INTO `testdump` VALUES ('9', 'Aachalaya', 'Achalaya');
INSERT INTO `testdump` VALUES ('10', 'Aachaly', 'Achaly');
INSERT INTO `testdump` VALUES ('11', 'Aachaly', 'Achaly2');
INSERT INTO `testdump` VALUES ('12', 'Aachaly', 'Achaly3');
 

Апокалипсис

тех дир matras.ru
зачем в цикле соединяться с mysql???
phpfaq.ru/debug

-~{}~ 22.10.07 01:43:

лучше бы на вопрос ответил чем пост правил бы
 

2e4nik

Новичок
Автор оригинала: Апокалипсис
зачем в цикле соединяться с mysql???
Да я по всякому делал - все равно не то что-то.
Вообще я сам думаю, что это из-за самого запроса ничего не получается - когда убираю цикл и вместо переменной $tt пишу значение, работает.
PHP:
$query="SELECT * FROM $userstable WHERE SLOVO = '$tt' ORDER BY RAND() LIMIT 1";
$query="SELECT * FROM $userstable WHERE SLOVO = 'Aachaly' ORDER BY RAND() LIMIT 1";
-~{}~ 22.10.07 01:47:

Автор оригинала: Апокалипсис
зачем в цикле соединяться с mysql???
phpfaq.ru/debug

-~{}~ 22.10.07 01:43:

лучше бы на вопрос ответил чем пост правил бы
Я и отвечаю - по всякому пробовал - и в циклее соединялся, и без цикла - не получается.
Только когда цикл убираю, тогда работает ...

Вот и остался внутри цикла
 

2e4nik

Новичок
Автор оригинала: *****
http://phpfaq.ru/debug
читать
выполнять
доложить

фразу "все прочел, ничего не помогло" ЛУЧШЕ НЕ ПИСАТЬ.
Фразу не пишу, потому что вчера все так и делал, как там написано, но не помогало.

Докладываю.
С утра встал, и еще раз внимательно просмотрел и выводимый текст, и исходный html.
Закрались смутные сомнения.
Дописал для переменной
PHP:
trim()
и заработало как я хотел.

Всем спасибо.
 

Фанат

oncle terrible
Команда форума
афигеть.
и эт оно пишет после того, как типа "прочитало", что там написано про "внимательно смотреть"
 

2e4nik

Новичок
Автор оригинала: *****
афигеть.
и эт оно пишет после того, как типа "прочитало", что там написано про "внимательно смотреть"
Да я сам офигел, если честно.
 
Сверху