繁体   English   中英

如何使此php代码按我想要的方式工作?

[英]How do I make this php codes work the way I want it?

我试图将if语句放入我自己的php代码中,该代码用于我正在创建的站点中,但是需要绝望的帮助以使事情按我想要的方式工作,而不会损坏原始代码。

编写这些代码是为了创建随机单词的翻译。

  1. 首先,当创建一个新词是从选择的话,我做什么wordslist
  2. 然后出现此翻译表 ,我可以通过它添加翻译。
  3. 然后,如果我单击保存(“добави”)按钮,则会创建翻译。

不幸的是,当您单击“保存”时,翻译将在数据库中创建为新的翻译,具有新的word_id,但它们未链接到我从wordslist中选择的单词,而实际上它具有word_id号。

因此,从根本上讲,是否有机会将翻译链接到现有的word_id数字,而不是创建新的数字?

这是我当前正在使用的三个php文件:

// insert_lang.php

require_once("session.php");
require_once("class.user.php");

$auth_user = new USER();
$user_id = $_SESSION['user_session'];

$stmt_word = $auth_user->runQuery("SELECT * FROM words WHERE word_id IN (19,20, 21)");
$stmt_word->execute();
$num = $stmt_word->rowCount();
$wordRow=$stmt_word->fetchAll(PDO::FETCH_ASSOC);

if($wordRow)
{
    foreach($wordRow as $k => $v)
    {
        $stmt_word1 = $auth_user->runQuery("INSERT INTO word_language_meanings SET word_id = '".$v['word_id']."', word_language = 'English', word_meaning = '".$v['word_name']."'");
        $stmt_word1->execute();

        $stmt_word2 = $auth_user->runQuery("INSERT INTO word_language_meanings SET word_id = '".$v['word_id']."', word_language = 'Български', word_meaning = '".$v['word_name']."'");
        $stmt_word2->execute();

        $stmt_word3 = $auth_user->runQuery("INSERT INTO word_language_meanings SET word_id = '".$v['word_id']."', word_language = 'Гръцки', word_meaning = '".$v['word_name']."'");
        $stmt_word3->execute();

        $stmt_word4 = $auth_user->runQuery("INSERT INTO word_language_meanings SET word_id = '".$v['word_id']."', word_language = 'Латински', word_meaning = '".$v['word_name']."'");
        $stmt_word4->execute();

        $stmt_word5 = $auth_user->runQuery("INSERT INTO word_language_meanings SET word_id = '".$v['word_id']."', word_language = 'Нидерландски', word_meaning = '".$v['word_name']."'");
        $stmt_word5->execute();

        $stmt_word6 = $auth_user->runQuery("INSERT INTO word_language_meanings SET word_id = '".$v['word_id']."', word_language = 'Старобългарски', word_meaning = '".$v['word_name']."'");
        $stmt_word6->execute();

        $stmt_word7 = $auth_user->runQuery("INSERT INTO word_language_meanings SET word_id = '".$v['word_id']."', word_language = 'Старогръцки', word_meaning = '".$v['word_name']."'");
        $stmt_word7->execute();
    }
}

// insert_trans.php
require_once("session.php");
require_once("class.user.php");

$auth_user = new USER();
$user_id = $_SESSION['user_session'];

$word_id = $auth_user->insertQuery("INSERT INTO words SET word_name = '".addslashes($_POST['word_name'])."', word_language = '".addslashes($_POST['word_language'])."', word_status = '1', date_added = '".date('Y-m-d H:i:s')."'");

if(isset($_POST['word_language_meanings']))
{
    foreach($_POST['word_language_meanings'] as $k => $v)
    {
        $stmt_word1 = $auth_user->runQuery("INSERT INTO word_language_meanings SET word_id = '".$word_id."', word_language = '".addslashes($_POST['word_language_meaning_lang'][$k])."', word_meaning = '".addslashes($v)."', date_added = '".date('Y-m-d h:i:s')."'");
        $stmt_word1->execute();
    }
}

//echo '<pre>'; print_r($_POST); print_r($_FILES); exit;

header('Location: dictionary.php?word_id='.$word_id.'&language='.$_POST['word_language'].'&page=trans');
exit;

// save_trans.php

require_once("session.php");
require_once("class.user.php");

$auth_user = new USER(); 
$user_id = $_SESSION['user_session'];

$stmt_word = $auth_user->runQuery("UPDATE words SET word_name = '".addslashes($_POST['word_name'])."', word_language = '".addslashes($_POST['word_language'])."' WHERE word_id = '".$_POST['word_id']."'");
$stmt_word->execute();

$stmt_word1 = $auth_user->runQuery("DELETE FROM word_language_meanings WHERE word_id = '".$_POST['word_id']."'");
$stmt_word1->execute();

if(isset($_POST['word_language_meanings']))
{
    foreach($_POST['word_language_meanings'] as $k => $v)
    {
        $stmt_word1 = $auth_user->runQuery("INSERT INTO word_language_meanings SET word_id = '".$_POST['word_id']."', word_language = '".addslashes($_POST['word_language_meaning_lang'][$k])."', word_meaning = '".addslashes($v)."', date_added = '".date('Y-m-d h:i:s')."'");
        $stmt_word1->execute();
    }
}

//echo '<pre>'; print_r($_POST); print_r($_FILES); exit;

header('Location: dictionary.php?word_id='.$_POST['word_id'].'&language='.$_POST['word_language'].'&page=trans');
exit;

检查该值是否已经存在,您可以尝试根据需要操作以下代码,直到它起作用为止。 如注释中所建议,请使用mysqli_num_rows函数检查以下代码是否存在ID:

$sql0 = "SELECT * FROM word_language_meanings WHERE word_id='".$v['word_id']."', word_language = 'English', word_meaning = '".$v['word_name']."'");
$result0 = mysqli_query($conn, $sql0);
    //check to see if id exists by counting rows found
    if (mysqli_num_rows($result0) > 0) {
    //write a query to do "update" instead of insert
}
else {
    //write a query to insert
}

根据您的需要,您可能需要检查多个不同的ID,如果这样的话,使用“ AND”编辑带有少量添加/更改的“检查是否存在”查询并不困难。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM