【问题标题】:Get all values from mysql then make variables从mysql获取所有值然后制作变量
【发布时间】:2011-06-01 03:04:59
【问题描述】:

您好,我想从 PHP 文件中获取值并使它们像数组一样可用。 我正在使用 jquery。 我应该如何格式化检索器和 php 文件来检索它们。

PHP 文件:我使用 switch 来检索 1 但这种方法很糟糕

<?php
 ob_start();
 session_start();
 include('mysql_config.php');

 $konto = $_SESSION['login'];
 $temp=mysql_fetch_array(mysql_query("SELECT `curchar` FROM `users` WHERE `login`='$konto'"));
 $id = $temp['curchar'];
 $gracz=mysql_fetch_array(mysql_query("SELECT * FROM `chars` WHERE `id`='$id'"));
 $gracz['max_pz']=94+($gracz['str']+$gracz['stm']*5);
 $gracz['max_pe']=7.1-($gracz['str']*0.1)+$gracz['stm']+$gracz['int']*2;
 $gracz['max_exp']=($gracz['lvl']*10)*25;
 if ($gracz['max_exp'] <= $gracz['exp']) 
 {
  $gracz['lvl']++;
  $zostalo = $gracz['exp']-$gracz['max_exp'];
  mysql_query("UPDATE `chars` SET lvl=lvl+1, stats=stats+3, exp='$zostalo' WHERE `id`='$id'");
  $gracz['exp']=$zostalo;
  $gracz['max_exp']=($gracz['lvl']*10)*25;
 }
 $lol=$_POST['name'];

 switch ($lol) {
    case 'pz':
   echo $gracz['pz'];
  break;
  case 'max_pz':
   echo $gracz['max_pz'];
  break;
  case 'pe':
   echo $gracz['pe'];
  break;
  case 'max_pe':
   echo $gracz['max_pe'];
  break;
  case 'max_exp':
   echo $gracz['max_exp'];
  break;
  case 'str':
   echo $gracz['str'];
  break;
  case 'dex':
   echo $gracz['dex'];
  break;
  case 'int':
   echo $gracz['int'];
  break;
  case 'stm':
   echo $gracz['stm'];
  break;
  case 'stats':
   echo $gracz['stats'];
  break;
  case 'exp':
   echo $gracz['exp'];
  break;
  case 'lvl':
   echo $gracz['lvl'];
  break;
  case 'mapa':
   echo $gracz['mapa'];
  break;
  case 'x':
   echo $gracz['x'];
  break;
  case 'y':
   echo $gracz['y'];
  break;
  default:
   echo "post jest pusty";
  break; 
 }
 ob_end_flush();
?>

JS 文件(检索器):这是获取 1 个变量的检索器,但它使用同步导致浏览器滞后,我不想要它

function get_char_val(merk)
{  
 var returnValue = null;
 $.ajax({   
    type:   "POST",
    async:  false,   
    url:    "char_info2.php",   
    data:  { name: merk },   
    dataType: "html",  
    success:  function(data)
         {
          returnValue = data;
         } 
  }); 
 return returnValue;
}

【问题讨论】:

  • 你有一个 SQL 注入漏洞。

标签: php javascript jquery mysql ajax


【解决方案1】:

使用 JSON。在您的 PHP 文件中,只需输出:

echo json_encode($gracz);

并更改您的 ajax 处理程序以接受 json 数据:

$.ajax({   
    type:   "POST",
    async:  false,   
    url:    "char_info2.php",   
    data:  { name: merk },   
    dataType: "json",  
    success:  function(data) {
        // Use data.max_pz or whatever here
    } 
}); 

【讨论】:

猜你喜欢
  • 2016-08-03
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 2016-03-09
  • 2014-01-14
相关资源
最近更新 更多