sql — Попытка создать простой скрипт кумулятивного сложения в PHP (или JS):

Попытка создать простой скрипт кумулятивного сложения в PHP (или JS):

1) введите любое целое число (4 цифры или меньше), нажмите кнопку Отправить, введенный номер отображается и сохраняется на той же веб-странице

2) введите другой номер, нажмите «отправить», введенный номер добавляется к предыдущему номеру, а общая сумма сохраняется и отображается на веб-странице.

Повторение …….

Пример: счетчик мантр на garchen.net

Ниже приведен код, который я до сих пор
В Index.php:

<form method="post" action= "process-mantra-form-ami.php" >
<p><strong>Amitabha Million Mantra Accumulation: </strong><br></p>
<div style="margin-left: 20px;">
<p>OM AMI DEWA HRI</p>
<input type="text" name="accumulation" size="10" maxlength="6">
<input type="submit" value="Submit Your Mantra" name="B1"><br>
<span id="mani">Amitabha Mantra Count: <?php echo $newValue; ?> </span>
<p></p>
</div>
</form>

Я запутался насчет обработки php. Я пытаюсь использовать мой локальный сервер mamp для БД. Создать ли соединение, создать базу данных и таблицу, вставить данные формы в таблицу и получить данные обратно в index.php одновременно в файле process-mantra-form-ami.php?

Вы, ребята, сделали это простым в моем последнем посте, но, похоже, многое из этого. Я знаю, что мой код ниже неполный и не совсем правильный. Помогите!

PROCESS-MANTRA-FORM-AMI.PHP код ниже

<?php

// Create connection
$con=mysqli_connect("localhost:8888","root","root","my_db");

// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// escape variables for security
$accumulation = mysqli_real_escape_string($con, $_POST['accumulation']);

// Create database
$sql="CREATE DATABASE my_db";
if (mysqli_query($con,$sql)) {
echo "Database my_db created successfully";
} else {
echo "Error creating database: " . mysqli_error($con);
}

// Create table "Mantras" with one column 'Num'
$sql="CREATE TABLE Mantras (Num INT)";
if (mysqli_query($con,$sql)) {
echo "Table mantras created successfully";
} else {
echo "Error creating table: " . mysqli_error($con);
}

// Insert form data into table
$sql="INSERT INTO Mantras (Num INT)
VALUES ('$num')";

if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}

// update database
mysqli_query($con,"UPDATE Mantra SET Num = num + 1");

}

mysqli_close($con);?>

<div>
<h2>Thank you for your <?php echo $num; ?> Amitabha Mantras!</h2>

<p>Remember to dedicate your merit.</p>

<p><a href="index.php">Return to the main site</a></p>

</div>

-3

Решение

попробуйте это … (извините, скучно сегодня вечером)

<?php
$host = 'localhost';  // localhost:8888
$user = 'root';
$pass = '';           // root
$dbnm = 'test';
$conn = mysqli_connect($host,$user,$pass,$dbnm)
or die('Error ' . $conn->connect_error);

// for testing.... so i can run the code over and over again and not
// get errors about things existing and stuff
run_statement($conn,"drop database if exists `my_db`;",'cleared old db');
run_statement($conn,"drop table    if exists `mantras`;",'cleared old table');
run_statement($conn,"drop table    if exists `two_col_table`;",'cleared old table');

// Create database
$sql  = 'create database my_db';
$err = run_statement($conn,$sql,'Database creation');
if (!$err) $conn->select_db('my_db');

// Create table "Mantras" with one column 'Num'
$sql = 'create table mantras (num int)';
$err = run_statement($conn,$sql,'Table mantras');

if (!$err) {
$sql  = 'insert into mantras (num) values ( ? )';
$stmt = $conn->prepare($sql);
$stmt->bind_param('d',$num);   // d is for digit but s (string) would work too
$num = 1;
$stmt->execute();
$num = 2;
$stmt->execute();
$stmt->close();
echo ($conn->error) ? "insert errored: {$conn->error}" : 'insert ran succesfully';

// update database
$sql = 'update mantras set num = num + 1';
run_statement($conn,$sql,'Update database');
}// Create table "test" with two columns
$sql = 'create table two_col_tbl (num int, txt varchar(10))';
$err = run_statement($conn,$sql,'Table two_col_tbl');

if (!$err) {
// demonstrating how to bind multiple values
$sql  = 'insert into two_col_tbl values ( ?, ? )';
$stmt = $conn->prepare($sql);
$stmt->bind_param('ds',$num,$txt);
$num = 1; $txt = 'hello';
$stmt->execute();
$num = 2; $txt = 'world';
$stmt->execute();
$stmt->close();

// select statement
$sql  = 'select num, txt from two_col_tbl';
$stmt = $conn->prepare($sql);
$stmt->bind_result($db_num, $db_txt);
$stmt->execute();
print '<table><tr><th colspan=2>two_col_tbl</tr><tr><th>num</th><th>txt</th></tr>';
while ($stmt->fetch()) {
print "<tr><td>$db_num</td><td>$db_txt</td></tr>";
}
print '<table>';
$stmt->close();
}

$conn->close();function run_statement($conn,$statement,$descr) {
if ($conn->query($statement))
echo "$descr ran successfully";
else echo "$descr failed: {$conn->error}";
return $conn->error;
}
?>

<div>
<h2>Thank you for your <?php echo $num; ?> Amitabha Mantras!</h2>
<p>Remember to dedicate your merit.</p>
<p><a href="index.php">Return to the main site</a></p>
</div>
1

Другие решения

Других решений пока нет …