Как запросить у базы данных нужную строку ?

Loks

Смысл: Зная например ID сделать запрос данных из определенной колонки пользователя с данным ID например name.
И дополнительно ( отдельно ) зная ID заменить данные в определенном поле пользователя с данным ID пример neme.

Как это реализовать на php 7.4
?

 

MouseZver

1452610488_.jpg.f7d8365611c0e626ae745c0799da2638.jpg

 

Loks

Как бы это не было странно но да я не могу найти способ как вытащить именно 1 нужную строку а не все данные из БД.
Если вы не «Забанины в Гугле» можете помочь потому что в php 7.4 я очень плохо разбираюсь.

 

lastdays

Например, GET параметр в URL
site.ru/?id=3

PHP:
  1. if ( !empty ( $_GET[«id»] )  and is_numeric ( $_GET[«id»] ) )
  2. {
  3.    //- SELECT `id`, `name` FROM `users` WHERE `id`=? LIMIT 1
  4. }

Ну и основы читай в документации. Если что-то не получиться, приходи и показывай это.

p.s. если честно, учись пользоваться гуглом и не обижайся))

 

Вероломство

PHP:
  1. $id = filter_input(INPUT_GET, ‘id’, FILTER_VALIDATE_INT, [‘options’ => [‘min_range’ => 1]]);
  2. // для брутальности можно ещё указать ‘max_range’ => PHP_INT_MAX
 

Loks

Проблема в том что у меня не получается самому разобраться мне необходимо зная ID пользователя узнать его имя если такой ID есть если я пытаюсь узнать что то то мне выдает все данные всех пользователей их ID имена пороли я не могу отправить запрос на просмотр одной интересующий меня колонки у конкретного пользователя меня интересует.

 

Drunkenmunky

Это самые азы SQL.
Вы что-то пытались почитать на эту тему?

 

Loks

Да пытался и как видно неудачно.

 

Drunkenmunky

Хорошо.
Откройте вашу базу данных в приложении phpMyAdmin. Знаете, хоть что это?

 

Loks

Да.

Вот есть код из документации как сделать так что бы он выводил данные только определенного пользователя под определенные указанным ID пример 38

<?php
$servername = «localhost»;
$username = «username»;
$password = «password»;
$dbname = «myDB»;

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die(«Connection failed: » . $conn->connect_error);
}

$sql = «SELECT id, firstname, lastname FROM MyGuests»;
$result = $conn->query($sql);

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo»id: » . $row[«id»]. » — Name: » . $row[«firstname»]. » » . $row[«lastname»]. «<br>»;
}
} else {
echo»0 results»;
}
$conn->close();
?>

 

Drunkenmunky

Отлично.
Откройте какую-нибудь таблицу нажав на вкладку ‘обзор’
То, что вы видите, это ячейки таблицы. Это, как игра в Морской Бой — сверху буквы, слева цифры. Условно.
Только «цифры» во всех колонках.
Затем нажмите вкладку «поиск»
И в одном из появившихся полей впишите содержимое искомой ячейки.

 

Loks

Да информация занятная но как это сделать в php ?

 

Drunkenmunky

Скопировать SQL-команду, которая появится чуть выше результатов поиска
Примерно вот так она выглядит

Код (Text):
  1. SELECT *
  2. FROM `tablename`
  3. WHERE `columnname` =12345

И использовать её в вашем php-сценарии

 

Loks

Спасибо!

 

miketomlin

Есть готовое решение: https://gency.ru/comment/125

Немного подробнее вчера писал здесь: https://php.ru/forum/posts/640338/

 

Loks

Каким образом вставить заместо ID=38 в коде пост запрос ?
у меня не получается (
$sql = «SELECT * FROM pff08_users WHERE ID=38 «;
$id = $_POST[‘id’];

( через bind_param я настроить не смог )

 

MouseZver

@Loks выполнение кода происходит последовательно. Литературу учат читать снизу верх ?

 

Loks

( я для примера скинул )
а если вы имели что то другое я не понял )

 

Drunkenmunky

Код (Text):
  1. $id = 0
  2.  
  3. if(isset($_POST[‘id’]))
  4. {
  5. $id = (int)$_POST[‘id’]; //только для полей с числовыми значениями, для строк по-другому
  6. }
  7.  
  8. $sql = «SELECT * FROM pff08_users WHERE ID=$id «;
 

Loks

Выдало ошибку по данному отрезку .
Вот весь код для примера.

<?php
$servername = «»;
$username = «»;
$password = «»;
$dbname = «
$id = $_POST[‘id’];

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die(«Connection failed: » . $conn->connect_error);
}

$sql = «SELECT * FROM pff08_users WHERE ID=38 «;
$result = $conn->query($sql);

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo «id: » . $row[«ID»]. » — Name: » . $row[«user_login»]. » » . $row[«user_email»]. «<br>»;
}
} else {
echo «0 results»;
}
$conn->close();
?>

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *