Перейти к публикации
ga-mpk

php запрос к mysql

Рекомендованные сообщения

ga-mpk

Решил начать изучать потихоньку php и mysql запросы.

Для начала решил сделать поиск по имени, который будет выводить настоящее имя пользователя и логин.

немного покопавшись в учебниках php(если я правильно всё понял) я пришел к такому коду PHP

<?php
$db = mysql_connect('localhost','123','123');
mysql_select_db('123', $db);
$result = mysql_query("SELECT name, last_name  FROM dle_users WHERE id='$id'",$db);
$myrow = mysql_fetch_array($result);
echo $myrow['name'];
?>
Вот теперь не знаю правильно ли написал и как проверить.

Теперь задача стоит в том, как написать сам HTML для запроса.

Нужно создавать форму, но как??

помогите разобраться в PHP

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TheAndrey

Вот теперь не знаю правильно ли написал и как проверить. Теперь задача стоит в том, как написать сам HTML для запроса. Нужно создавать форму, но как?? помогите разобраться в PHP

 

Почти правильно. Есть один косяк: в таблице dle_users нет поля id, есть - user_id.

 

Данные скрипту можно передавать методами: GET и POST.

Данные, переданные скрипт содержаться в массиве $_REQUEST

Пример:

Запрашиваем скрипт:

хттп://сайт.ру/script.php?text=12345

Мы передали скрипту параметр text.

<?php
echo $_REQUEST['text']; // выведет нам 12345
?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ga-mpk

Насчёт ID вот так?

$result = mysql_query("SELECT name, last_name FROM dle_users WHERE id='$user_id'",$db);

 

А насчёт передачи запроса в html, то ничего не понял!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
alex_xpert

Данные скрипту можно передавать методами: GET и POST.

Данные, переданные скрипт содержаться в массиве $_REQUEST

Пример:

Запрашиваем скрипт:

хттп://сайт.ру/script.php?text=12345

Мы передали скрипту параметр text.

<?php
echo $_REQUEST['text']; // выведет нам 12345
?>

 

Можно

<?php
echo $_GET['text'];
?>
потому что данные передаются GET-запросом.

Соответственно, при передаче POST-запросом, можно

<?php
echo $_POST['text'];
?>
ИМХО $_REQUEST['text'] просто универсальнее, его удобнее юзать в API, чтобы дать возможность клиентам передавать данные так ,как им удобнее.

 

Насчёт ID вот так?

$result = mysql_query("SELECT name, last_name FROM dle_users WHERE id='$user_id'",$db);

 

А насчёт передачи запроса в html, то ничего не понял!

 

Наоборот

$result = mysql_query("SELECT name, last_name  FROM dle_users WHERE user_id='$id'",$db);
Изменено пользователем Xpert™

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ga-mpk

А можете выложить пример написания Html и PHP в этом случае??? Буду разбираться, но пока из всего этого я понял как сделать запрос. А вот как его извлечь, непонятно мне

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
alex_xpert

Самая простая реализация:

HTML

<form method="post" action="нашскрипт.php">
<input type="text" name="id" size="25">
<input type="submit" value="Отправить">
</form>
PHP

$db = mysql_connect('localhost','123','123');
mysql_select_db('123', $db);
$result = mysql_query("SELECT name, last_name  FROM dle_users WHERE id=".$_POST['id'],$db);
$myrow = mysql_fetch_array($result);
echo $myrow['name'];
Вводим в текстовое поле ID пользователя, нажимаем кнопку "Отправить" и видим имя этого пользователя.

 

AJAX позволяет обмениваться данными с сервером в "фоновом" режиме и делать с возвращаемыми сервером данными всё, что угодно, без обновления страницы.

Изменено пользователем Xpert™

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ga-mpk

А как сделать запрос по логину??

Чтобы выдал какие-то данные о пользователе

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ga-mpk

хм... Такой выход как вы предложили не работает.

При нажатии на кнопку отправить выбивает такую ошибку

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in L:hometest1.ruwwwuser_search.php on line 5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TheAndrey

Самая простая реализация:

HTML

<form method="post" action="нашскрипт.php">
<input type="text" name="id" size="25">
<input type="submit" value="Отправить">
</form>
PHP

$db = mysql_connect('localhost','123','123');
mysql_select_db('123', $db);
$result = mysql_query("SELECT name, last_name  FROM dle_users WHERE id=".$_POST['id'],$db);
$myrow = mysql_fetch_array($result);
echo $myrow['name'];
SQL injection возможен. Кавычками надо пользоваться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ga-mpk

А где они пропущены?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
TheAndrey

Вот с фильтрацией, чтобы не взломали:

<?php
$userid = trim($_POST['id']);
if((! is_numeric($userid)) or ($userid < 1)) exit("Неверный ID");
$db = mysql_connect('localhost','123','123');
mysql_select_db('123', $db); $result = mysql_query("SELECT name, last_name  FROM dle_users WHERE user_id='{$userid}'",$db);
$myrow = mysql_fetch_array($result);
echo $myrow['name'];
?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
alex_xpert

Фильтрация - это да, я же сказал, что привожу самую простейшую реализацию. А вот про какие кавычки ты говорил я так и не понял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ga-mpk

Но не то, не то не работает.... Та же ошибка при отправке.(см выше)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
alex_xpert

Вот с фильтрацией, чтобы не взломали:

<?php
$userid = trim($_POST['id']);
if((! is_numeric($userid)) or ($userid < 1)) exit("Неверный ID");
$db = mysql_connect('localhost','123','123');
mysql_select_db('123', $db); $result = mysql_query("SELECT name, last_name  FROM dle_users WHERE user_id='{$userid}'",$db);
while($myrow = mysql_fetch_array($result)){
echo $myrow['name'];
}
?>

 

В принципе цикл здесь не нужен, но... ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...