Как я могу заставить это повторять или распечатывать результаты оператора select через php?

<?php
$username = "root";
$password = "root";
$hostname = "localhost";

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";
?>

<?php

$query="SELECT * FROM mydb.product";
$result=mysql_query($query);
echo "$result";
echo $result;
?>

Я зашел так далеко, но все равно ничего не возвращает. Проблема заключается в моей таблице mysql? Или он падает где-то еще

    <?php
$username = "root";
$password = "root";
$hostname = "localhost";

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";

$sth = $db->prepare("SELECT * FROM mydb.test;");
$sth->execute();

$result = $sth->fetchAll();
?>

<h1> Im here</h1>
<?php

foreach ($result as $row) {
    echo "<tr>";
    echo "<td>{$row['name']}</td>";
    echo "<td>" . $row['email'] . "</td>";
    echo "</tr>";
}

?>

<h1> Im still here</h1>

Спасибо за помощь

-1
theVSN 26 Фев 2015 в 06:23
Вам нужно использовать петлю. Либо while, либо foreach - выполните $result=mysql_query($query) or die(mysql_error());, и вы увидите ошибку вашего текущего метода.
 – 
Funk Forty Niner
26 Фев 2015 в 06:26
1
Вам нужно получить данные с помощью mysql_fetch_array() или аналогичного, возможно, в цикле, как предлагает @fred. прочитайте ссылку здесь
 – 
user1864610
26 Фев 2015 в 06:27
Согласно вашему редактированию: Вау, ковбой! - Вы смешиваете API MySQL, вы не можете этого делать. Вы подключаетесь к mysql_, а затем запрашиваете PDO. Прочтите о PDO code.tutsplus.com/tutorials/…
 – 
Funk Forty Niner
26 Фев 2015 в 06:37
Фред, я этого не понял, спасибо.
 – 
theVSN
26 Фев 2015 в 06:48

2 ответа

Вам нужно просмотреть результаты. Если в каждой строке есть, скажем, 3 столбца, ваш код будет выглядеть примерно так:

for($i=0;$i<mysql_num_rows($result);$i++) {
    $row_array=mysql_fetch_row($result);
    echo($row_array[0]." ".$row_array[1]." ".$row_array[2]."<br />");
}
0
Eamonn Gormley 26 Фев 2015 в 06:31

Как было предложено в комментариях, вам придется просмотреть полученные результаты:

$query="SELECT * FROM mydb.product";
$result=mysql_query($query);

// Add these lines:
while ($row = mysql_fetch_assoc($result)) {
  var_dump($row);
  // each item from the row could be used like this:
  // echo $row['field'];
}

Дополнительную информацию можно найти здесь: http://php.net/manual/en/ function.mysql-query.php

Обратите внимание, что mysql_query устарел, и вам следует подумать о переходе на mysqli (http://php. net/manual/en/book.mysqli.php) или PDO ( http://php.net/manual/en/ref.pdo-mysql.php)

0
Jonathan 26 Фев 2015 в 06:34
Я должен просто отказаться от mysql_query, если я использую php > 5.5? А дамп var сбрасывает все, и даже с эхом $row['field'] его много.
 – 
theVSN
26 Фев 2015 в 06:53
Да вы правы. Он устарел с версии PHP 5.5.0 и будет удален в будущем. Не потребуется много времени, чтобы переключить ваш код на mysqli (обратите внимание на "i"), или, если вы хотите узнать что-то другое, попробуйте PDO.
 – 
Jonathan
26 Фев 2015 в 06:56
Что касается суммы, которую вы повторяете, это потому, что вы в основном сбрасываете всю таблицу базы данных. Попробуйте изменить запрос на что-то вроде $query="SELECT * FROM mydb.product LIMIT 10";
 – 
Jonathan
26 Фев 2015 в 06:58