【问题标题】:List number in array php数组php中的列表编号
【发布时间】:2017-09-05 12:13:25
【问题描述】:

对于我的工作,我必须使用 api 发送多个短信,我想从 mysql 中将数字放入数组中,如下所示:

(数字在我的数据库中)

我想要这样:

   $list_num = array(
        '0601020301','0601020302','0601020303','0601020304','0601020305','0601020306','0601020307','0601020308','0601020309','0601020310',
        '0601020311','0601020312','0601020313','0601020314','0601020315','0601020316','0601020317','0601020318','0601020319','0601020320',
        '0601020321','0601020322','0601020323','0601020324','0601020325','0601020326','0601020327','0601020328','0601020329','0601020330'
    );

我试过这个,但不起作用:

$result = mysql_query("SELECT * FROM test");
if (!$result) {
     die('Requête invalide : ' . mysql_error());
}
$a = array();
while ($row = mysql_fetch_assoc($result)) // moi je fais comme ca un mysql_fetch_* 
{
     $a[] = $row['numero'];
     foreach ($a as $val) {
          $ret .= "$val";
          if ($ret == end($a))
               //var_dump($val);
          {
               //echo "'".$val."'";
          }
          else
          {
               echo "'".$val."',";
          }
     }
}

可能是错误的方法,我之前在这里搜索过, 非常感谢。

【问题讨论】:

  • 这会发生什么?您应该缩进您的控制块并升级到mysqlipdo
  • stop using mysql_* functions These extensions 已在 PHP 7 中被删除。了解 PDO 和 @987654325 的 prepared 语句@ 并考虑使用 PDO,it's really pretty easy
  • 另外,如果mysql_fetch_*// moi je fais comme ca un 不在同一行,则会导致错误// 用于单行注释。
  • 谢谢,我在本地使用旧的 wamp 版本 (5) 我不能使用 pdo :'(

标签: php mysql arrays foreach


【解决方案1】:

这应该可以解决问题。您只需要根据您的需要调整名称/参数。我用的是json,如果需要可以做点别的,或者解码...

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

include"config.inc.php";

$mysqli = mysqli_connect("$host", "$user", "$mdp", "$db");

if (mysqli_connect_errno()) { echo "Error connecting : " . mysqli_connect_error($mysqli); }

$query = " SELECT id_test, name_test, phone_test FROM tbl_tests ";
$stmt = $mysqli->prepare($query);

$results = $stmt->execute();
$stmt->bind_result($id_test, $name_test, $phone_test);
$stmt->store_result();

if ($stmt->num_rows > 0) {
$phones = array();
$phone = array();
while($stmt->fetch()){
echo"[ $id_test -> $name_test -> $phone_test ]<br />";

$phone = "$phone_test";

array_push($phones, $phone);
 }
}
else
{ echo"[ no data ]"; }

//print_r($phones);
echo json_encode($phones);

?>

输出:["00544656347","0065465836","00656566745","0068456868","00626565064"]

编辑: 由于 mysql_* 在 PHP 5.5 中已被弃用(请参阅 PHP doc),您应该更喜欢 PPS : Prepared Parameterized Statements。这将有助于Preventing SQL injection

【讨论】:

  • 哇,这个技巧太棒了!多谢!! json输出太好了。
  • 很抱歉,但是用我的 php 脚本测试后,不起作用:'(
  • @Jeed:有什么错误吗?还是没有/错误的结果?如果您需要这种类型的结构作为数组,$list_num = array( '0601020301','0601020302'); 您可以轻松地将其从 json 格式中取出。要么修改脚本以使用 json 格式,要么只需阅读结构 -> 循环 -> 1 个条目 -> 一个 SMS。你用过 json_decode 吗?
【解决方案2】:

我的脚本不适用于输出 json,但这是一个好技巧。 如何制作这样的:

$data = array(
array(
'number 1 from my database',
'number 2 from my database',
'number 3 from my database',
'number 4 from my database',
'number 5 from my database',
'number 6 from my database',
'number 7 from my database'
),

【讨论】:

  • 我之前的评论(如下)-> 有什么错误吗?还是没有/错误的结果?如果你需要这种类型的结构作为你的数组,$list_num = array('0601020301','0601020302');您可以轻松地将其从 json 格式中取出。要么修改脚本以使用 json 格式,要么只阅读结构 -> 循环 -> 1 个条目 -> 一个 SMS。你用过 json_decode 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-27
  • 2018-03-02
  • 2012-06-05
  • 1970-01-01
相关资源
最近更新 更多