小编Dar*_*ren的帖子

在函数中通过引用传递给isset()&empty()

基本上我想避免做这样的事情:

if((isset($var_1) && !empty($var_1)) || (isset($var_2) && !empty($var_2)) ...) { ....
Run Code Online (Sandbox Code Playgroud)

所以我创建了一个函数来尝试解决它:

function set($item) {
    return (isset($item) && !empty($item));
}
Run Code Online (Sandbox Code Playgroud)

传入未设置的变量时,请以此为例:

$args = ['derp'];
if(set($args[0]) || $args[1]) {....
Run Code Online (Sandbox Code Playgroud)

我得到一个抛出的声明说明"Offset 1没有设置,但当我将函数更改为注释$itemby-reference时,它会删除PHP注意:

function set(&$item) {
    return (isset($item) && !empty($item));
}
Run Code Online (Sandbox Code Playgroud)

这是一个演示

我的问题是 - 这是如何工作的?是因为它引用了原始$args数组吗?我疯了吗?

php pass-by-reference

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

返回总和而不是像SQL查询那样的数据透视表中的值?

我有一个很好的小查询几乎可以做到我需要它除了一点点.我不需要返回"Orange"和"Lemon"列下的值,而是需要知道该属性和水果的提交数量.

这是我的表和一些测试数据:

CREATE TABLE `fruits` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `fruit` varchar(11) DEFAULT NULL,
  `fruit_attribute` varchar(11) DEFAULT '',
  `submissions` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;

INSERT INTO `fruits` (`id`, `fruit`, `fruit_attribute`, `submissions`)
VALUES
    (1,'Orange','tough peel',59),
    (2,'Lemon','tough peel',70),
    (3,'Orange','citrus',100),
    (4,'Orange','juice',90),
    (5,'Lemon','juice',75),
    (6,'Lemon','tart',35),
    (7,'Lemon','citurs',65),
    (8,'Orange','breakfast',110),
    (9,'Lemon','lemonaid',120),
    (10,'Orange','florida',50);
Run Code Online (Sandbox Code Playgroud)

这是查询:

SELECT
  fruit_attribute, submissions,
  MAX(IF(t1.fruit = 'Orange', t1.fruit_attribute, NULL)) AS Orange,
  MAX(IF(t1.fruit = 'Lemon', t1.fruit_attribute, NULL)) AS Lemon
FROM fruits t1
GROUP BY
  fruit_attribute;
Run Code Online (Sandbox Code Playgroud)

这是一个演示的sqlfiddle页面

非常感谢所有帮助!

mysql sql

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

PHP多个对象函数调用

这可能是一个愚蠢的问题.

我试图了解这些对象调用是如何进行的.Laravel雄辩方法中的示例 http://laravel.com/docs/eloquent

$affectedRows = User::where('votes', '>', 100)->update(array('status' => 2));
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个自定义框架,我喜欢Laravel框架的想法.有人可以告诉我它是什么以及如何实现这一目标.

php mysql frameworks laravel

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

PHP - MySQL到PDO

所以我决定最终转移到PDO而不是使用旧的mysql_

但我注意到我的网站加载速度较慢.这是一个500行的表格,我的mysql_查询加载速度稍快(0.5-1秒).

我想知道这是否只是PDO的工作方式,或者我是否在某处犯了一些错误.我从MySQL到PDO的变化不大.

这是我原来的mysql_代码:

<?php
                    $sql = mysql_query("SELECT * FROM rookstayers ORDER BY level DESC LIMIT 0, 500");
                    $id = 1;
                    $last_player_lvl = '';

                    while($row = mysql_fetch_array($sql)){
                        $name = $row['name'];
                        $level = $row['level'];
                        $world = $row['world'];
                        $account = $row['accountstatus'];
                        $status = $row['onlinestatus'];
                        $country = $row['country'];
                        $lastlogindate = $row['lastlogin'];
                        $lastlogin2 = utf8_decode($lastlogindate);
                        $lastlogin = str_replace("?", " ", $lastlogin2);
                        $onrow = '';
                        $typeServ = '';

                        $Date = $lastlogin;
                        $Date = substr($Date, 0, strpos($Date, " CE"));
                        $now  = date('Y-m-d');
                        $datetime1 = …
Run Code Online (Sandbox Code Playgroud)

php mysql sql database pdo

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

Mysqli num_rows()返回undefined属性

我正在尝试计算我的数据库中注册用户的数量,但是,我遇到了num_rows的问题..因为它给出了一个错误.

这是我的index.php代码:

<?php
require 'connections.php';
$con->query("SELECT users, UserID from users");
$totalplayers = $con->num_rows;
?>
Run Code Online (Sandbox Code Playgroud)

这是我的connections.php:

<?php
ob_start();
session_start();
$con = mysqli_connect("localhost", "root", "", "website");

if (isset($_SESSION['UserID'])) {
    $result = $con->query("select * from users where UserID=".$_SESSION['UserID']);
    $row = $result->fetch_assoc();
Run Code Online (Sandbox Code Playgroud)

但是,它给出了这个错误,我不知道该怎么做!:

注意:未定义的属性:第4行的C:....\index.php中的mysqli :: $ num_rows

php mysql mysqli

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

问:编辑新密码PHP Mysql

有人帮我处理我的代码.我创建了一个包含当前密码,新密码和确认密码的编辑密码页面.这是我的代码:

edit_password.php

<form action="editpassword_process.php" method="post">
<table>
    <tr class="form-group has-feedback has-success">
        <td><h4>Current Password</h4></td>
        <td><div class="control-group input-lg"><input type="password" placeholder="" passfield="true" id="currentpassword" name="currentpassword"></div></td> <!-- class="input-sm" required -->
        <td><span id="messagebox"></span></td>
    </tr>
    <tr>
        <td><h4>New Password</h4></td>
        <td><div class="control-group input-lg"><input type="password" placeholder="" passfield="true" id="newpassword1" name="newpassword1"></div></td> <!-- required class="input-sm" -->
    </tr>
    <tr>
        <td><h4>Confirm Password</h4></td>
        <td><div class="control-group input-lg"><input type="password" placeholder="" passfield="true" id="newpassword2" name="newpassword2" onKeyUp="checkPass(); return false;"></div></td> <!-- required class="input-sm" -->
        <span id="confirmMessage" class="confirmMessage"></span>
    </tr>
</table>
    <button class="btn btn-info">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

这是我的editpassword_process.php代码

<?php

include('connection.php');

$currentpw = $_POST['currentpassword'];
$newpw = $_POST['newpassword1'];
$confirmnewpw …
Run Code Online (Sandbox Code Playgroud)

php mysql forgot-password

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