簡體   English   中英

如何在PHP中添加從數組填充的表行

[英]How to add table rows filled from array in PHP

我試圖從應用程序中獲取一些信息,然后基於此數組創建表行,而我在此代碼中間迷失了,我需要幫助。

提交代碼為:

<?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的值創建raw。

此處檢查代碼和腳本。

可以做一些事情來改善您的腳本。 由於您的問題如此廣泛,我將指出其中的一些問題。

第一..

$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()添加resource參數。 盡管此參數是可選的,但順便說一下,您已經獲得了變量名( $sql15 ),我認為您可能具有多個連接。

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

另外,我不確定您在這里做什么。

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

您的語法對我所知道的可能是完全有效的,但是我以前從未見過像這樣定義的字符串,並且快速的Google搜索沒有向我顯示任何內容..所以您可能希望將其更改為..

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

接下來,在調用數據之前,請關閉連接。 您可能希望將mysql_close()向下移動到$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;
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>**

好吧,我知道你在做什么。

試試看

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>";

我現在算出了您的jsFiddle。 可以按照自己的實際需要執行三種操作來完成類似的操作。

第一種方法是使用完全准備好的行和列創建html表,但隱藏所有行,並僅根據jQuery的值顯示要使用jQuery.show()和.hide()顯示的行。按下添加按鈕。 <tr id='row373' style='display:none'><td>..</td>..</tr>

第二種方法是使用隱藏的html元素(例如包含lis的div)使用隱藏的html元素發送表的所有數據,並用數據屬性<li id='row373' data-key='value'>裝飾所有li由jQuery使用.data('key')函數實現,其中key是每個數據列的名稱。

第三種也是最好的方法是使用Ajax請求將單個或多個行作為.html或.json數據加載。 這要求您編寫一個特殊的.php腳本,該腳本僅從數據庫中讀取數據並以您希望使用jQuery訪問的格式將其吐出。 該腳本可以由jQuerys .ajax().get()或.post()函數調用。

@Tuna Fish:我使用了代碼的邏輯。 伙計們,非常感謝所有幫助,但是我設法找到了解決此問題的好方法。 您可以檢查以下代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM