PHP для выбора нескольких строк базы данных MYSQL

#mysql

#mysql

Вопрос:

Мне нужен некоторый php-код для извлечения из базы данных mysql в Xampp. Затем мне нужно перенести значения no1 и no2 в javascript для вычислений. Данные mysql прикреплены. Эта программа выбирает только последнюю строку, однако я хотел бы, чтобы она прошла по всем строкам и показала новые значения переменных no1 и no2.

У меня есть этот код ниже:

 <[enter image description here][1]?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "database";



$conn = new mysqli($servername, $username, $password, $dbname);


if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT s_num, movie, no1, no2 FROM table_1";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {
echo "Name: " . $row["s_num"]. " Movie: " . $row["movie"]. $row["no1"].                

$row["no2"]. "<br>";

$no1 = $row['no1'];

$no2 = $row['no2'];

echo "Number 1 is $no1"; 
echo "Number 2 is $no2"; 

echo $no1   $no2;
}
} else {
echo "0 results";
}

$conn->close();
?>

<script type="text/javascript">

var no_1 = <?php echo $no1 ?>; 
var no_2 = "<?php echo $no2 ?>"; 

alert (no_1);

alert ("The value is:" no_1);

alert (no_2);

</script>
  

Ответ №1:

вы можете попробовать использовать fetch_all() функцию для извлечения результирующего набора в массив и выполнить итерацию по нему после:

 //Copy result into a associative array
$resultArray = $result->fetch_all(MYSQLI_ASSOC);

//Copy result into a numeric array
$resultArray = $result->fetch_all(MYSQLI_NUM);

//Copy result into both a associative and numeric array
$resultArray = $result->fetch_all(MYSQLI_BOTH);
  

итак, используя ассоциативную опцию, ваш код будет выглядеть следующим образом:

 $conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT s_num, movie, no1, no2 FROM table_1";
$result = $conn->query($sql);
?>
<script type="text/javascript">
    var values = [];
<?php
if ($result->num_rows > 0) {
    $resultArray = $result->fetch_all(MYSQLI_ASSOC);

    foreach ($resultArray as $row){
        echo "values.push({no1: ".$row['no1'].", no2: ".$row['no2']."});";
    }
}

$conn->close();
?>
</script>
  

теперь у вас есть ваши значения в javascript-массиве values , вы можете перебирать его и получать свои значения строка за строкой

Комментарии:

1. Я довольно новичок в mysql. Какой из них мне нужно использовать и где мне его разместить? Кроме того, заменит ли это что-нибудь?

2. Я добавил пример

3.кстати. ваша последняя часть кода не находится в цикле, поэтому переменным $no1 $no2 будет присвоено значение последней итерации цикла. Вероятно, это причина, по которой вы получаете значения только для последней строки. На самом деле я не уверен, что вы пытаетесь сделать с этой <script> частью, поэтому я не уверен, куда поместить ее в цикл

4. Большое спасибо JohnnyAW. То, что я пытаюсь сделать, это извлечь значения для значений no1 и no2 из базы данных с помощью PHP из каждой строки. Затем я хочу перенести значения из PHP в Javascript. Большинство моих формул для вычислений написаны на Javascript, поэтому я хочу это сделать. Таким образом, он будет извлекать значения no1, а затем no2 из строки 1. Затем формулы будут выполняться в Javascript. Затем он извлек бы значения no1 и no2 из строки 2. Затем формулы будут выполняться в Javascript.

5. хорошо, я обновил ответ. Я не тестировал его, поэтому он может содержать синтаксические ошибки