#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. хорошо, я обновил ответ. Я не тестировал его, поэтому он может содержать синтаксические ошибки