помогите начинающему программисту!! Необходимо сравнить две строковые переменные $a и $b была попытка сделать так if($a==$b) но она провалилась :?
Хорошо, вот код: <html> <head> <title>result</title> <body> <?php $button=$HTTP_POST_VARS['button']; $fsurname=$HTTP_POST_VARS['fsurname']; $fsurname=trim( $fsurname); $db = @mysql_connect('localhost','root'); if(!$db) { echo "не могу подключиться к серверу"; echo "ERROR".mysql_errno()." ".mysql_error()."\n"; exit; } mysql_select_db('friends',$db); if ($button=="next") { $result=mysql_query("select * from fio order by surname asc"); $num=mysql_num_rows($result); $row=mysql_fetch_assoc($result); if($fsurname==$row['surname']) { echo $row['surname']; } else { echo 'ничего нет'; } } ?> </body> </html> Переменная $fsurname поступает из формы в файле хтмл next - это кнопка
сама таблица : create table fio (surnameid int unsigned not null auto_increment primary key, surname char(50) not null); insert into fio values (null,Putin), (null,sorokin), (null,Anais);
PHP: $result=mysql_query('select * from fio where surname="' .$fsurname. '"'); так, думаю, будет правильнее
simpson Улучшать приведённый код можно до бесконечности. Напр. $result=mysql_query('select * from fio where surname="' .$fsurname. '" LIMIT 1'); а после $row=mysql_fetch_assoc($result); Поставить, например $row = $row[0], дабы потом не искать в индексном массиве ключа surname. .... И убрать $num=mysql_num_rows($result); за ненадобностью.
согласен. зы: разве mysql_fetch_assoc вернет нумерованный массив? тогда уж mysql_fetch_row или mysql_fetch_array. к тому же $row[0] при таком запросе вернет surnameid.
это здесь осталось случайно после всех преобразований :lol: а не работает именно эта строка if($fsurname==$row['surname']) не сравнивается и все. никакой ошибки не выдает , а только выходит на альтернативу и все
Ай. Совсем вы меня запутали. У меня все DB-объекты возвращают нумерованный массив по количеству строк выборки. Совсем уже разучился с оригинальными функциями работать
а вообще это упрощенный код сам скрипт должен быть другой. Просто проверяя что же конкретно не работает упростила донельзя. Выяснила, что именно не хочет сравнивать. вот и решила написать сюда.))
этим запросом: Код (Text): select * from fio order by surname asc вы выбираете все записи из таблицы. а этой строкой: Код (Text): $row=mysql_fetch_assoc($result); берете только лишь одну запись из результа.
вы предлагаетет что надо сравнивать средствами мускула? Я раньше считала, что это лишнее. Думала, что проще сравнить так.
вы пропустили мое сообщениеЮ,где я писала, что упростила скрипт донельзя, чтобы выяснить что же конкретно не работает. Не работает именно операция сравнения. млжет мне стоит заколоитьт сюда тогда исходный стрипт, чтобы никого не путать :?:
нет, этого делать не нужно. сообщение я ваше не пропустил. а в своем ответе показал вам, что работа с базой у вас неправильная.
сделай вот так и результат сюда: PHP: <? ... error_reporting(E_ALL); print("[".$fsurname."][".$row['surname']."]"); if($fsurname==$row['surname']) { ... ?>
if ($button=="next") { $result=mysql_query("select * from fio order by surname asc"); $num=mysql_num_rows($result); $i=0; do { $row=mysql_fetch_assoc($result); $i++; } while($fsurname!=$row['surname'] && $i<$num); if($i==$num) { echo '<table><form action="test.php" method="post"><tr><td><input type=submit name=button value="pre"></td><td><input type=text size=20 value=" '.$fsurname.' " name=fsurname></td><td><input type=submit name=button value="next"></td><td><input type=submit name=button value="plus"></td><td><input type=submit name=button value="delete"></td><td><input type=submit name=button value="delete_all"></td></tr></form></table>'; } else { if($row['surname']==$fsurname) { $row=mysql_fetch_assoc($result); echo '<table><form action="test.php" method="post"><tr><td><input type=submit name=button value="pre"></td><td><input type=text size=20 value=" '.$row['surname'].' " name=fsurname></td><td><input type=submit name=button value="next"></td><td><input type=submit name=button value="plus"></td><td><input type=submit name=button value="delete"></td><td><input type=submit name=button value="delete_all"></td></tr></form></table>'; } }
Сорока PHP: <? if (isset($_POST["next"])){ $query = mysql_query("SELECT * FROM fio WHERE surname='".$fsurname."' LIMIT 1"); if(mysql_num_rows($query)){ //$result = mysql_fetch_assoc($query); echo '$fsurname: '.$fsurname; } else { echo "Surname not found"; } } ?> Всё. И срочно читать про работу с БД. Немедленно.