2e4nik
Новичок
Не получается выборка из базы данных
Прошу помощи - убил день, все равно не догоняю в чем дело.
Значит по порядку:
1. Есть база данных, в ней три поля : ID (тут просто номер идет - не использую) SLOVO (слово) P_ID (его значение). Слова повторяются, значения слов не повторяются.
2. Есть файл ('testselect.txt'), в котором перечислены слова с новой строки каждое.
3. Скрипт должен пройтись по каждому слову из этого файла:
- найти все строки с этим словом
- взять случайную строку из найденных строк, и из этой строки извлечь значение P_ID.
Ну попутно напечатать сколько значений найдено, или что ничего не найдено.
Вроде все описал правильно.
День бьюсь – ничего не получается, пишет:
есть 0 записей.
Ничего нет
Хотя все есть.
В чем тут дело?
Вот код:
-- Структура таблицы `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');
Прошу помощи - убил день, все равно не догоняю в чем дело.
Значит по порядку:
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();
?>
--
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');