0

我正在尝试从应用程序中提取一些信息,然后基于此数组创建表行,而我在这段代码中间迷失了我需要帮助。

提交代码为:

<?php
session_start(); // NEVER forget this!
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("webauth", $con);
$myusername = $_SESSION['myusername'];
//$result = mysql_query("SELECT * FROM user_pwd");
$sql5 = ("SELECT dept from `user_pwd` WHERE  name = '$myusername'");
$result5=mysql_query($sql5);
$row5=mysql_fetch_array($result5);
// echo "<br />";

mysql_close($con);
$url3 = 'http://localhost:1090/WebEmpLoad.hal';
$myvars3 = 'department='.$row5['dept'];
$ch3 = curl_init( $url3 );
curl_setopt( $ch3, CURLOPT_POST, 1);
curl_setopt( $ch3, CURLOPT_POSTFIELDS, $myvars3);
curl_setopt( $ch3, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch3, CURLOPT_HEADER, 0);
curl_setopt( $ch3, CURLOPT_RETURNTRANSFER, 1);
$response3 = curl_exec( $ch3 );
//echo $response3;
$arr = (explode(',',$response3,100));
$Num = sizeof($arr);
$rows = ($Num - 1)/2;
echo $rows;
?>

我正在尝试根据$arr.

在此处检查代码和脚本。

4

5 回答 5

1

可以做一些事情来改进你的脚本。由于您的问题如此广泛,我将指出其中的一些..

第一的..

$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

可以简写为

$con = mysql_connect("localhost","root","") or die('Could not connect: ' . mysql_error());

其次,您忘记在mysql_query(). 尽管此参数是可选的,但顺便说一下,您已经获得了变量名 ( $sql15),我假设您可能有多个连接。

$result5=mysql_query($sql5, $con);

另外,我不确定你在这里做什么..

$sql5 = ("SELECT dept from `user_pwd` WHERE  name = '$myusername'");

就我所知,你的语法可能完全有效,但我以前从未见过这样定义的字符串,快速的谷歌搜索也没有显示任何东西..所以你可能想把它改成..

$sql5 = "SELECT dept from `user_pwd` WHERE  name = '$myusername'";

接下来,在调用数据之前关闭连接。您可能希望将mysql_close()下移到 AFTER 之后的行$myvars3 = 'department='.$row5['dept'];

哦,您正在使用mysql_fetch_array()然后将其称为关联数组 ( $row5['dept'])。为了安全起见,像这样更改$row5=mysql_fetch_array($result5);$row5=mysql_fetch_assoc($result5);添加关联数组结果类型。$row5=mysql_fetch_array($result5, MYSQL_ASSOC);

最后,我们将解决您的数据上传问题。

我不知道您是如何解决的,但您基本上是在获取一个网页并将其分解为一个数组,无论哪里有逗号,并尝试将该数组上传到表格中。除非您确切知道该页面上出现了多少逗号,并且您知道该数字与表中的列数相匹配,否则这是一个非常糟糕的主意。我不知道您要完成什么,但我向您保证,有更好的方法。

并回答你实际的问题.. 插入行的 SQL 语法是 "INSERT INTO table (column1, column2) VALUES ('value1', 'value2')";

最后注..您使用的是旧 API,请切换到 PDO。在此处查看大红色警告

所以,把它们放在一起......

session_start(); // NEVER forget this!
$con = mysql_connect("localhost","root","") or die('Could not connect: ' . mysql_error());
mysql_select_db("webauth", $con);
$myusername = $_SESSION['myusername'];
//$result = mysql_query("SELECT * FROM user_pwd");
$sql5 = "SELECT dept from `user_pwd` WHERE  name = '$myusername'";
$result5=mysql_query($sql5, $con);
$row5=mysql_fetch_assoc($result5);
// echo "<br />";

$url3 = 'http://localhost:1090/WebEmpLoad.hal';
$myvars3 = 'department='.$row5['dept'];
mysql_close($con);
$ch3 = curl_init( $url3 );
curl_setopt( $ch3, CURLOPT_POST, 1);
curl_setopt( $ch3, CURLOPT_POSTFIELDS, $myvars3);
curl_setopt( $ch3, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch3, CURLOPT_HEADER, 0);
curl_setopt( $ch3, CURLOPT_RETURNTRANSFER, 1);
$response3 = curl_exec( $ch3 );
//echo $response3;
$arr = (explode(',',$response3,100));
$Num = sizeof($arr);
$rows = ($Num - 1)/2;
echo $rows;
于 2013-04-24T10:48:29.177 回答
0

好吧,我明白你在做什么。

试试这个。

echo "<table>";
$col = "left";
foreach($rows as $row){
    if($col == "left"){
        echo "<tr><td>$row</td>";
        $col = "right";
    }else{
        echo "<td>$row</td></tr>";
        $col = "left";
    }
}
echo "</table>";
于 2013-04-24T12:13:21.717 回答
0

@Tuna Fish:我使用了您的代码逻辑。伙计们,非常感谢所有的帮助,但我设法找到了解决这个问题的好方法。您可以检查以下代码

于 2013-04-27T14:36:23.050 回答
0
AS use have array of data.
user the code where your want to print the rows from this array
**<table>**
<?php 
foreach ($arr as $rows)
{
echo "<tr><td>".$rows."</td></tr>";
}
?>
**</table>**
于 2013-04-24T10:47:52.520 回答
0

我现在解决了你的 jsFiddle。有三种方法可以像您一样做某事,具体取决于您需要做什么。

第一种方法是创建一个带有完全准备好的行和列的 html 表,但隐藏所有行,并且只显示您想要使用 jQuerys .show() 和 .hide() 显示的行,具体取决于下拉列表的值添加按钮被按下。<tr id='row373' style='display:none'><td>..</td>..</tr>

第二种方法是使用隐藏的 html 元素(如包含 lis 的 div)发送表的所有数据,并用数据属性装饰所有 li <li id='row373' data-key='value'>,这些属性可以由 jQuery 使用 .data('key') 函数读取,其中 key 是每列数据的名称。

第三种可能是最好的方法是使用 ajax 请求将单行或多行加载为 .html 或 .json 数据。这需要您编写一个特殊的 .php 脚本,该脚本仅从数据库中读取数据并以您喜欢使用 jQuery 访问的格式将其输出。该脚本可以由 jQuerys .ajax() .get() 或 .post() 函数调用。

于 2013-04-24T15:50:09.740 回答