2017-10-04 14 views
0

私のプロジェクトでは、DBから推測される値を持つテーブルが作成されています。 2つのテーブルを比較し、これらの値をループで出力した後、データベースへの保存を停止しました。私はrel_eqテーブルに保存しました。比較するとrel_eqテーブルはrel_catとなりました。この問題を解決してください。Ajaxデータベースへの書き込みエラー

ここで私はここで私は

<?php 
include_once($_SERVER['DOCUMENT_ROOT'].'/wp-config.php'); 
global $wpdb; 
$table_name = $wpdb->prefix . 'rel_eq'; 
if (isset($_POST['edit_row'])){ 
    $wpdb->update($table_name, array(
     'id'=>$_POST['row_id'], 
     'title' => $_POST['title_val'], 
     'anonce' => $_POST['anonce_val'], 
     'url' => $_POST['url_val'], 
     'relcat' => $_POST['cat_val']), 

    array('id' => $_POST['row_id']), 
     array('%s', '%s', '%s', '%s') 
    ); 
    echo mysql_insert_id(); 
    exit(); 
} 

if (isset($_POST['insert_row'])){ 
    $wpdb->insert($table_name, array(
     'title' => $_POST['title_val'], 
     'anonce' => $_POST['anonce_val'], 
     'url' => $_POST['url_val'], 
     'relcat' => $_POST['cat_val']), 
     array('%s', '%s', '%s', '%s') 
    ); 
    echo mysql_insert_id(); 
    exit(); 
} 

if (isset($_POST['delete_row'])){ 
    $wpdb->delete($table_name, array(
     'id'=>$_POST['row_id']), 
     array('%s') 
    ); 
    echo mysql_insert_id(); 
    exit(); 
} 

データベースにテーブルから編集データを書き込む私のAjaxは

を要求

<?php 
    global $wpdb; 
    $table_name = $wpdb->prefix . 'rel_eq'; 
    $table_cat = $wpdb->prefix . 'rel_cat'; 
    $eq_arr = $wpdb->get_results("SELECT * FROM $table_name JOIN $table_cat on $table_name.relcat = $table_cat.id"); 
?> 

    <table align="center" cellpadding="10" border="1" id="user_table"> 
<tr> 
<th>Title</th> 
<th>Anonce</th> 
<th>Url</th> 
<th>Category</th> 
<th>Action</th> 
</tr> 
<?php 
foreach($eq_arr as $row): 
?> 

    <tr id="row<?php echo $row->id;?>"> 
    <td id="title_val<?php echo $row->id;?>"><?php echo $row->title;?></td> 
    <td id="anonce_val<?php echo $row->id;?>"><?php echo $row->anonce;?></td> 
    <td id="url_val<?php echo $row->id;?>"><?php echo $row->url;?></td> 
    <td id="relcat_val<?php echo $row->id;?>"><?php echo $row->name; ?></td> 

    <td> 
    <input type='button' class="edit_button" id="edit_button<?php echo $row->id;?>" value="edit" onclick="edit_row('<?php echo $row->id;?>');"> 
    <input type='button' class="save_button" id="save_button<?php echo $row->id;?>" value="save" onclick="save_row('<?php echo $row->id;?>');"> 
    <input type='button' class="delete_button" id="delete_button<?php echo $row->id;?>" value="delete" onclick="delete_row('<?php echo $row->id;?>');"> 
    </td> 
</tr> 
<?php 
endforeach; 
?> 

ループで出力2つのテーブルと出力の列を比較

+0

uはワードプレスを使用している:

if (isset($_POST['delete_row'])){ $wpdb->delete($table_name, array( 'id'=>$_POST['row_id']), array('%s') ); echo mysql_insert_id(); exit(); } 

Wordpressのドキュメントの場合には、私は私が見ることができるものはっきり説明していませんでした、使用するための優れたリソースですか? –

+0

wordpressのプラグインです –

+0

一見すると、「編集」のための5つのフィールドを提供していますが、4つの置換のみを指定していますか? –

答えて

0

ここで「問題」と言っていることを完全には分からないが、それはうまくいかず、おそらく '編集'を正しく指定していないことが原因です。

あなたは4つの分野に加えて更新IDを指定しているので、次のように置換パラメータを修正する必要があります(「ID」の整数であると仮定した場合):

$wpdb->update($table_name, 
array('id'=>$_POST['row_id'],'title' => $_POST['title_val'],'anonce' => $_POST['anonce_val'],'url' => $_POST['url_val'],'relcat' => $_POST['cat_val']), 
array('id' => $_POST['row_id']), 
array('%d', '%s', '%s', '%s', '%s'), 
array(‘%d’)); 

また、「削除」で、されています'行ID'が文字列(%s)であることを確認しますか?

WordpressDB Update

WordpressDB Insert

関連する問題