Я пытаюсь получить данные из таблицы для отображения в табличной форме.
$myid = 'First_User';
$checkQuery = "SELECT * FROM MyDatabase WHERE id='" . $myid . "';";
echo $checkQuery; // it returns SELECT * FROM MyDatabase WHERE id='First_User';. I run in mySQL console , and it returns the record.
$result = mysql_query($checkQuery);
$row = mysql_fetch_array($result);
Похоже, что выше не может ничего получить. Но говорит "Resource #3"
, Данные не видны.
$myid = 'First_User';
$checkQuery = "SELECT * FROM MyDatabase";
$result = mysql_query($checkQuery);
$row = mysql_fetch_array($result);
Это работает, возвращая все данные из MyDatabase. У меня есть First_User в MyDatabase.
Привет MySQL ориентирован на таблицу.
Select <table felds> , < table felds> From <table> Where ....
Проблема в том, как вы пытаетесь сделать запрос, в основном вы должны сделать:
SELECT * FROM your table_name WHERE field_name='Field_value';
База данных обычно определяется драйвером, который вы используете для подключения к базе данных, в этом случае устаревшим
MySQL-подключения
Но, как уже упоминалось, вы должны использовать PDO новее и безопаснее 🙂
Просто попробуйте это ..
$checkQuery = "SELECT * FROM MyDatabase WHERE id='$myid'";
Попробуй это —
$myid = 'First_User';
$checkQuery = "SELECT * FROM MyDatabase WHERE id='$myid'";
$result = mysql_query($checkQuery);
$row = mysql_fetch_array($result);
while($row = mysql_fetch_array($result)) {
echo '<td><input type="text" name="ID" value='.$row[0].'></td>';
}
Замечания : Избегать использования mysql_*
функции. Используйте вместо mysqli_*
функции.
Во-первых, не используйте mysql_connect, используйте MySQLi или PDO
Я предпочитаю PDO.
Как подключиться к PDO:
$db_connection = new PDO('mysql:host='. DB_HOST .';dbname='. DB_NAME . ';charset=utf8', DB_USER, DB_PASS);
Теперь вы хотите написать свой запрос и получить
$query = $db_connection->prepare("SELECT * FROM `MyDatabase` WHERE `id` = :id");
$query->execute(array(":id" => $myid));
$result = $query->fetchAll();
foreach($result as $user) {
echo $user['id'];
echo "<tr>";
echo "<td><input type=\"text\" name=\"ID\" value=\"" echo $row['id'] "\" /></td>";
echo "</tr>"}
Я надеюсь, что ничего не пропустил, но, пожалуйста, прочитайте документацию PDO: http://php.net/manual/en/book.pdo.php (или mysqli: http://php.net/manual/en/book.mysqli.php )
И если вы используете данные поста где-то в своем запросе, пожалуйста, смотрите другие посты о том, как предотвратить внедрение MySQL: Как я могу предотвратить внедрение SQL в PHP?
Используй это. И дополнительный Добавить LIMIT
потому что ваш запрос вернет только результат. Это дополнительный потенциал.
$id = $_SESSION['user_id']; // or something else.
$checkQuery = "SELECT * FROM MyDatabase WHERE id='$id' LIMIT 1";
$results = mysqli_query($checkQuery);
if ($result) $user=mysql_fetch_assoc($result);
// use now.
echo $user['user_name'];
echo $user['id'];