За последние 24 часа нас посетили 18679 программистов и 1587 роботов. Сейчас ищут 1833 программиста ...

Хождение по кругу

Тема в разделе "Сделайте за меня", создана пользователем NewbiSavage, 13 дек 2015.

  1. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
    Совсем зеленый, запутался в своем говнокоде.
    У нас есть две таблицы 1- id, email ; 2- user_id, name, sname. Надо найти пользователя по email и сразу же выдать результат на этой же странице, кнопка готова. Предполагаю что я бомбанул адский трэш в sql запрос.В один момент мне все стало выводить, но только первого пользователя (несмотря на то что я искал и других) и не понимая кирилицы.
    Прошу кидаться камнями.

    Код (PHP):
    1. <?php 
    2. $hostname='localhost';
    3. $username='root';
    4. $password='';
    5. $dbname='library';
    6.  
    7. $db = mysql_connect($hostname,$username,$password) OR DIE ('no connection');
    8. mysql_select_db("library", $db) or die ('Unpossible to choose');
    9. $query = mysql_query('SELECT a.id, a.name, a.sname, a.email from user a join user_info b on b.user_id = a.id where a.email = "'.$email.'"');
    10.  
    11. if (!$result) 
    12. {
    13. echo '<li>nothing found</li>';
    14. echo exit(mysql_error());
    15. }else 
    16. {
    17. while ($result = mysql_fetch_array($query));
    18. {echo $result['id']." ".$result['name']." ".$result['sname']." ".$result['email'];}
    19. }
    20. ?>
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    ревалюция по поиску в SQL (((((((((((((((:)
     
  3. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Код (PHP):
    1. $result = mysql_query('SELECT a.id, a.name, a.sname, a.email from users a join user_info b on b.user_id = a.id where a.email = "'.$email.'"');
    Что-то типа этого. Пора отказываться от mysql_*
     
  4. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
    Теперь выдает лишь 1, не завися от запроса
     
  5. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Правильно, потому что ты только один элемент вытаскиваешь
    Код (PHP):
    1. $result = mysql_fetch_array($query);
    2.  
    А надо
    Код (PHP):
    1. while($result = mysql_fetch_array($query)){
    2.  // work with $result
    3. }
    4.  
     
  6. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
    Нет, имею ввиду что когда даже я все закрываю или указываю в action HTML файла другой php файл, то (как понимаю) он продолжает читать из буфера и выдавать 1
     
  7. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Читать из буфера ? Ты сам понимаешь что ты пишешь ?
     
  8. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
    У меня просто нет другого объяснения почему это происходить, потому то и спрашиваю у более опытных , почему так может происходить
     
  9. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Почему тебе выдаётся один элемент ? Потому что один емейл такой в базе наверн.
     
  10. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
    Нет, их 6, на другие не реагирует, более того когда пишешь бред в запросе то продолжает выдавать 1
     
  11. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Давай дамп таблиц.
     
  12. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
    User
    user_info
     
  13. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Ты просишь найти пользователя. Нашли, выдали. Он один. Ты хочешь вывести всех ? Не указывай where.
     
  14. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
    a) я сказал что даже когда в html указываю другой php файл, левый, то он выдает 1, раньше выдавал Id имя и фамилию, но кирилицу не отображал
    б) как сделать так чтобы вывод шел на этой же самой странице под поиском
     
  15. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Сабмитишься в этот же файл и обрабатываешь _GET или _POSTпеременные
     
  16. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
    Теперь по sql запросу выдает Unknown column 'a.name' in 'field list'
     
  17. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
    И еще, подскажите пожалуйста братцы, как можно было бы оформить этот кусок кода не с помощью mysql, а с помощью PDO?
     
  18. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Приведи полный текст ошибки
     
  19. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
    Вот то что есть

    Код (PHP):
    1. <?php 
    2. $hostname='localhost';
    3. $username='root';
    4. $password='';
    5. $dbname='library';
    6.  
    7. $db = mysql_connect($hostname,$username,$password) OR DIE ('no connection');
    8. mysql_select_db('library', $db) or die ('Unpossible to choose');
    9. $query = mysql_query('SELECT a.id, a.name, a.sname, a.email from user a join user_info b on b.user_id = a.id where a.email = "'.$email.'"');
    10.  
    11. if (!$result) 
    12. {
    13. echo '<li>nothing found</li>';
    14. echo exit(mysql_error());
    15. }else 
    16. {
    17. while ($result = mysql_fetch_array($query));
    18. {echo $result['id']." ".$result['name']." ".$result['sname']." ".$result['email'];}
    19. }
    20. ?>
    Вот что выдает :
     
  20. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    нет такого поля в таблице а.
    Код (PHP):
    1. 'SELECT a.id, a.name, a.sname, a.email from user a join user_info b on b.user_id = a.id where a.email = "'.$email.'"' 
    что по твоему тут происходит?
     
  21. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
    Немного стыдно за свою глупость, но мы по мэйлу (которые я ввожу и получаю данный ответ) ищем пользователя из таблицы "a" которую соединили со второй таблицой, или я не так понимаю?
     
  22. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    покажи дамп таблицы "а".
     
  23. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
     
  24. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    это дамп таблицы user_info

    Добавлено спустя 1 минуту 46 секунд:
    попробуй выполнять запрос из PHPMyAdmin и отлаживать.
     
  25. NewbiSavage

    NewbiSavage Новичок

    С нами с:
    13 дек 2015
    Сообщения:
    28
    Симпатии:
    0
    То бишь мне в phpmyadmin нужно было собрать новую таблицу, или добавить старой обозначения ( вместо name a.name напр)?

    Добавлено спустя 12 минут 28 секунд:
    Полный запрос не выполняется, а когда ищу a.id a.email , то выполняет запрос и выводит пустой результат