小编jos*_*krz的帖子

我怎么能避免在PHP的While循环中使用MySQL查询

我有一个输出类列表的while循环.在类数据库中,教师名称由用户数据库中的教师ID确定.

这是我的数据库结构.

Classes Database
-----------------------------
ID       CLASS              TEACHER
1        product design     3

User Database
-----------------------------
ID       NAME
3        John Doe
Run Code Online (Sandbox Code Playgroud)

因此,当列出我的类时,我需要它将"3"转换为"John Doe".

这是我目前的代码:

<?php 
  $classdetails = mysql_query("SELECT * FROM class");
  while($class = mysql_fetch_array($classdetails)) {
    $marklist_class = $class['class'];
    $marklist_teacher = $class['teacher']; //This is a userid                                   

    //------Somewhere here i need to get the userid and look it up in the user database
    if($marklist_class=="") {

    } else {
      echo $marklist_class . ' ' . $marklist_teacher;}
    }
  }
?>
Run Code Online (Sandbox Code Playgroud)

我理解只是放入另一个mysql查询会降低性能并且不建议,所以如何在不向while循环中添加查询的情况下查找每行的用户数据库.

谢谢.

php mysql database loops while-loop

4
推荐指数
1
解决办法
987
查看次数

我是否可以传递GET变量,同时仍然保留PHP中的旧GET变量

我使用GET进行分页,?page = 1是第一页,依此类推.

问题是,我想对数据进行排序,使用GET是更好的方法,因为:

?page=1&sort=date
Run Code Online (Sandbox Code Playgroud)

如果我尝试并单击第2页,它将转到?page = 2并且松散排序.

我也尝试过,$_SERVER['QUERY_STRING']但是当我?page=#从一个页面到另一个页面时,我最终会在地址栏中累积.

以下是我的分页链接的生成方式:

<a href='{$_SERVER['PHP_SELF']}?page=$nextpage'>Next</a>
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

php sorting get

4
推荐指数
1
解决办法
1559
查看次数

如何使用PHP提取具有密码的ZIP文件?

我在这里只看到一个问题,但它没有回答我的问题.我正在运行一个典型的LAMP服务器,它具有最新的PHP 5和MYSQL 5与Redhat Linux.

我需要找到一个只有PHP的解决方案,因为我的主机不允许我使用shell.

这是我的代码,它提取未从vBulletin上传到另一个目录的ZIP:

if ($_GET['add'] == TRUE){
$zip = new ZipArchive;
 $res = $zip->open($SOURCE FOLDER);
 if ($res === TRUE) {
     $zip->extractTo('$DESTINATION FOLDER/');
     $zip->close();
     echo 'File has been added to the library successfuly';
     //Add a flag to that file to indicate it has already been added to the library.
     mysql_query("UPDATE attachment SET library = 1 WHERE filedataid='$fileid'");    
 } else {
     echo 'A uncompression or file error has occured';
 }}
Run Code Online (Sandbox Code Playgroud)

必须有一些方法来使用PHP,当然!谢谢.

更新:我的主机通知我gzip已安装在服务器上,但不是7-Zip.我也在研究shell访问.

php passwords redhat unzip

4
推荐指数
2
解决办法
9439
查看次数

在没有JQuery的IE中使用Javascript检索"占位符"值

我有一些Javascript代码,用于检查浏览器是否支持占位符,如果不支持占位符,则会自行创建.现在这适用于一些较旧的浏览器,但不是全部,尤其是IE.

我需要做的就是获取"占位符"值,此时IE9中​​的占位符是"未定义".

这是我的代码:

//Test if Placeholders are supported
var test = document.createElement("input");
if ("placeholder" in test) {
  var testholder = true;
  }
else {
  var testholder = false;
  }

//Fix unsupported placeholders
function placeHolder(id)
{
var demo = document.getElementById(id);

    demo.className = "fix-hint";
    demo.value = demo.placeholder;

    demo.onfocus = function()
    {
        if (this.className == "fix-hint")
        { 
        this.value = ""; this.className = "fix-nohint"; 
        }
    };

    demo.onblur = function()
    {
        if (this.value === "")
        { 
        this.className = "fix-hint"; this.value = demo.placeholder; 
        }
    };
    return …
Run Code Online (Sandbox Code Playgroud)

javascript internet-explorer

2
推荐指数
1
解决办法
1万
查看次数

如何使用备份还原information_schema数据库

我有一个来自WAMP服务器MYSQL数据库的备份,我需要在我的工作WAMP设置中安装它。

我目前无法访问原始数据库,因此,不能仅导出特定的表。

这是phpmyadmin消息:

SQL query:

--
-- Database: `information_schema`
--
CREATE DATABASE  `information_schema` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


MySQL said: 

#1044 - Access denied for user 'root'@'localhost' to database 'information_schema' 
Run Code Online (Sandbox Code Playgroud)

information_schema数据库似乎已锁定,并且在phpmyadmin中还原失败。在MYSQL Workbench中,它会继续执行备份,而忽略“拒绝访问”消息,但会在中途崩溃。

我曾尝试删除sql文件中的database_schema行,但它看起来像一堆乱七八糟的东西,无法弄清楚如何删除它。

另一件事是我真的需要吗?或者我可以将其删除。我不太确定那里存储了什么信息。

谢谢。

php mysql wamp phpmyadmin information-schema

1
推荐指数
1
解决办法
1万
查看次数

这对PHP中的用户输入是否足够安全

可能重复:
最终的清洁/安全功能

在阅读了PHP安全性之后,我觉得我编码的任何东西都是不安全的.因此,为了解决用户输入的安全问题,我创建了一个函数,允许我在任何使用情况下转义并删除用户输入.

我想知道这实际上是否安全,如果我能使它更安全.这会阻止什么样的攻击?从我可以通过使用_GET告诉XSS,HTML输入和MYSQL注入将被阻止?

function _INPUT($name,$tag,$sql,$url)
{
if ($_SERVER['REQUEST_METHOD'] == 'GET')
    $filter = ($_GET[$name]);//Assign GET to filter variable

    if ($tag == true)//Remove all HTML, PHP and JAVASCRIPT tags
    {
        $filter = strip_tags($filter);
    }
    if ($sql == true)//If MYSQL escaping is enabled
    {
        $filter = mysql_real_escape_string($filter);
    }
    if ($url == true)//If URL encoding is enabled
    {
        $filter = urlencode($filter);
    }
    return $filter;     

}

$output = _INPUT('name',true,true,true);
Run Code Online (Sandbox Code Playgroud)

我也将使用MYSQL的预处理语句,虽然我需要更多地阅读它们以完全理解它如何防止注入.

感谢您的时间.

php mysql security escaping input

1
推荐指数
1
解决办法
258
查看次数

在Javascript中获取文本框元素

我需要遍历页面上的所有文本框并收集它们的ID,以便我可以在IE7中具有向后兼容的占位符文本.

这是我的代码:

var boxes = document.getElementsByTagName('input');
for(i = 0; i < boxes.length; i++) {
placeHolder(boxes[i].id);
}
Run Code Online (Sandbox Code Playgroud)

这很好用,但它也选择了我不想要的提交按钮.

我的文本框唯一的共同点是type="text".那么有没有在Javascript中获得文本类型的元素?

javascript dom textbox

1
推荐指数
1
解决办法
1172
查看次数