在php中使用explode函数后循环

时间:2014-01-30 09:48:17

标签: php mysql sql

我试图在使用explode函数拆分字符串后将数据循环到数据库中。我的代码中似乎有一些错误但是作为初学者,我现在似乎无法找到它。

任何建议都将不胜感激。

一旦这个工作,我将不得不在同一个循环中包含3个以上的值。将另一个值放在同一代码中循环的示例将不胜感激..

$con = mysql_connect('localhost','root','');
if (!$con) {
  die('Could not connect: ' . mysql_error());
}
mysql_select_db("cmsd", $con);
$pieces = explode(" ", $_POST['fname']);
$number = count($pieces); 
echo $number;
for ($i=0; $i<=$number; $i++) {
    $itno = $pieces[$i]; 
    $sql="INSERT INTO nametable (firstname, lastname) VALUES ('$itno', $_POST['lname'])";
}
if (!mysql_query($sql,$con)) {
    die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)

3 个答案:

答案 0 :(得分:0)

mysql_query($sql,$con)语句移到for循环中,否则只插入$ pieces中的最后一个值,因为它会在for循环内被覆盖,而不会插入。

$con = mysql_connect('localhost','root','');
if (!$con) {
  die('Could not connect: ' . mysql_error());
}
mysql_select_db("cmsd", $con);
$pieces = explode(" ", $_POST['fname']);
$number = count($pieces); 
echo $number;
for ($i=0; $i<=$number; $i++) {
    $itno = $pieces[$i]; 
    $sql="INSERT INTO nametable (firstname, lastname) VALUES ('$itno', $_POST['lname'])";
    if (!mysql_query($sql,$con)) {
        die('Error: ' . mysql_error());
}

}
echo "1 record added";
mysql_close($con);

答案 1 :(得分:0)

试试这个   

<body>





<?php

$con = mysql_connect('localhost','root','');

if (!$con)

  {

  die('Could not connect: ' . mysql_error());

  }



mysql_select_db("cmsd", $con);

 $pieces = explode(" ", $_POST['fname']);
 $number = count($pieces); 
 echo $number;
 for ($i=0; $i<=$number; $i++)
 {
 $itno = $pieces[$i]; 


$sql="INSERT INTO nametable (firstname, lastname)

VALUES

('$itno', $_POST['lname'])";

if (!mysql_query($sql,$con))

  {

  die('Error: ' . mysql_error());

  }

echo "1 record added";

 }





mysql_close($con)

?>

</body>

</html>

答案 2 :(得分:0)

你必须在更多的for循环上为另一个变量创建这样的循环。并​​且仅在{for循环检查$i<$number而不是$i<=$number,因为,如果数组的大小为5,那么你正在尝试从数组中获取第6个值,这将显示错误。

$con = mysql_connect('localhost','root','');
if (!$con) {
  die('Could not connect: ' . mysql_error());
}
mysql_select_db("cmsd", $con);
$pieces = explode(" ", $_POST['fname']);
$pieces2 = explode(" ", $_POST['sname']);
$number = count($pieces); 
$number2 = count($pieces2); 
echo $number;
for ($i=0; $i<$number; $i++) {
for ($j=0; $j<$number; $j++) {
    $itno = $pieces[$i]; 
    sql="INSERT INTO nametable (firstname, lastname) VALUES ('".$itno."', '".$_POST['lname']."')";
    if (!mysql_query($sql,$con)) {
         die('Error: ' . mysql_error());
     }
     else
          echo "1 record added";
}
}
mysql_close($con)