Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 动态表内部联接_Php_Mysql_Database - Fatal编程技术网

Php 动态表内部联接

Php 动态表内部联接,php,mysql,database,Php,Mysql,Database,好的。。这是这里最新的信息。 我需要在每个ID递增时为其生成注释。即 我有顾客1。他/她注册后,我就有能力为他们的账户工作,无论我用它做什么。。我需要在那一页上留下评论。我能做到的 第二个客户注册,然后在用户2的链接上,我可以访问他们的帐户并留下评论,仅供管理员使用 我不能这样做,因为在插入中我只指向ID 1。。我不知道如何指向一个新的ID 第三个客户注册。。。等等等等。。 代码如下。我在这里也包括了所有的PHP代码。。您可以使用自己的数据连接在您的终端上进行测试 /* CREATING THE

好的。。这是这里最新的信息。 我需要在每个ID递增时为其生成注释。即 我有顾客1。他/她注册后,我就有能力为他们的账户工作,无论我用它做什么。。我需要在那一页上留下评论。我能做到的 第二个客户注册,然后在用户2的链接上,我可以访问他们的帐户并留下评论,仅供管理员使用

我不能这样做,因为在插入中我只指向ID 1。。我不知道如何指向一个新的ID

第三个客户注册。。。等等等等。。 代码如下。我在这里也包括了所有的PHP代码。。您可以使用自己的数据连接在您的终端上进行测试

/* CREATING THE TABLE Customers*/
      <?php
include('../includes/mysql_connect.php');
$query = "CREATE TABLE `Customers` (
`customer_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`cust_name` VARCHAR(50) NOT NULL,
INDEX (`customer_id`),
PRIMARY KEY (`customer_id`)
)engine=innodb";
if(@mysql_query($query,$dbc)){
echo '<p>Table for customers has been successfully created!</p><br/>';
} else {
echo '' . mysql_error($dbc)  .'<br/>';
}
mysql_close($dbc);
?>


/* CREATING THE TABLE Comments*/
<?php 
include('../includes/mysql_connect.php');
$query = "CREATE TABLE `Comments` (
`comment_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`customer_id` INT(10) UNSIGNED NOT NULL,
`comment` VARCHAR(255) NOT NULL,
PRIMARY KEY  (`comment_id`),
INDEX (`customer_id`),
FOREIGN KEY (`customer_id`) REFERENCES `Customers`
(`customer_id`)
)engine=innodb";

if(@mysql_query($query,$dbc)){
echo '<p>Table for Comments has been successfully created!</p><br/>';
} else {
echo '' . mysql_error($dbc)  .'<br/>';
}
mysql_close($dbc);
?>

/* So now that I have already created the tables, I work on getting the link for each customer. */

<?php
include('includes/mysql_connect.php');

$query = 'SELECT * FROM `Customers` ';
if($y = mysql_query($query,$dbc)){
while($row = mysql_fetch_array($y)){
//echo " {$row['id']} <br/>";

echo "<div id='container'>
<div id='first_wrapper'>
<a style='text-decoration:none'; href=\"http://www.mywebsite.com/master/account.php?id={$row['customer_id']}\"> 
Customer # " . $row['customer_id'] ." 
</a></div>";
}
}
mysql_close($dbc);
?>


/* The next step is to retrieve the info From the Customers table */
/* Select records for specific user based upon their ID */
<?php

include('includes/mysql_connect.php');

if(isset($_GET['id']) && is_numeric($_GET['id'])) { 

$query = "SELECT * FROM Customers WHERE `customer_id`={$_GET['id']}";
if($x = mysql_query($query,$dbc)){

$row = mysql_fetch_array($x); 

echo "{$row['cust_name']}<br/>";

echo '<input type="hidden" name="id" value="' . $_GET['id'] . '"/>';    
}
}
mysql_close($dbc);  

?>

/* My problem comes here on the comments table */


if($_SERVER['REQUEST_METHOD'] == 'POST'){
// NEEDS DATA CONNECTION
include('includes/mysql_connect.php');
// VARIABLE IF PROBLEM DOES NOT OCCUR
$problem = FALSE;
// VALIDATION HERE
if(!empty($_POST['comment'])){

$comment = mysql_real_escape_string(trim(strip_tags($_POST['comment'])), $dbc);
} else { // IF PROBLEM
echo '<p style="color:red;">Please enter comment!</p>';
$problem = TRUE;
}
//IF NO PROBLEM
if(!$problem){

// RUN QUERY

$query = "INSERT INTO `Comments`(`customer_id`,`comment`) VALUES (1,'$comment')";
// EXECUTE QUERY
if(@mysql_query($query,$dbc)){
echo '<p style="color:blue;">This comment has been added!<p>';
} else {// IF PROBLEM
echo '<p style="color:red;">Could not retrieve the information because <br/> 
'. mysql_error($dbc) .'.</p><p>The query run was '.$query.' </p>';
}
} // END OF VARIABLE IN NO PROBLEM
mysql_close($dbc); // CLOSING CONNECTION
} // END OF MAIN IF
?>
<html>
<head><title>DUMMY INSERTS</title></head>
<body>
<form action="self.php" method="post">
<textarea name="comment" cols="70" rows="10"/></textarea>
<br/>
<input type="submit" name="submit" value="Submit!"/>
</form>
</body>
</html>

请帮我解决这个问题。。这件事我已经做了一个星期了,我很累。。THX

根据davejal的评论:FK约束要求评论customers\u id中的每个值都必须是customers\u id中的值

所以肖恩说:首先在客户cust_name中插入值“$cust_name”,它使用客户对客户id的自动增量。然后在注释customer_id中插入注释值,最后插入注释id,“$comment”,它使用最后一个插入ID作为该自动增量选择的客户ID值,并使用注释“自动增量”作为注释ID

Per Sean&philipxy:customer insert AUTO_INCREMENT(客户插入自动增量)会为您生成一个新的客户id。如果您需要它,请立即使用LAST_insert_id;否则,当他们登录或管理员提供时,您将获得他们的id。根据Ryan Vincent的sqlfiddle:

Per Sean&Ryan Vincent:当您使用PHP进行i/o时,请在您的问题中显示它。如果您获得了一个客户id,您希望处理该id的评论;在您的表单中,这是通过$\u GET['customer\u id']插入或选择注释时使用的值


所有这些最小的修改代码、输入、输出,可能包括执行期间的调试输出,尽管这可能会影响bug和错误的表现,但修复代码的每个问题都应该包括这些。阅读并采取行动。

我忽略了这里的确切问题。是否要迁移数据或需要php代码,或者您的关联是否正确?您没有在INSERT中将客户id插入'comments`` comment` values'$comment',因此您将得到一个无法添加或更新子行的错误:外键约束失败。它将不允许您输入,因为您告诉它不要输入。在插入记录行时,您需要有一个客户id,我认为您需要更多的逻辑。请提供您的所有php代码,因为这并不是您需要指定客户id的全部内容,无论是从会话变量还是从注释表单输入的id,还是从其他地方输入的id。您如何知道评论是关于哪个客户的?您是否在将客户输入客户的同时输入评论。或者您是在以后添加评论的?第一次插入效果很好。无论发生什么,第二次插入都不会通过。。我已经尝试了所有可能的方法,但它只是不接受这个问题$query=INSERT INTO comments最后一次\u INSERT_ID,$comment'的注释值$query=插入注释值最后一次插入ID“$comment”$query=INSERT INTO commentscustomer_id,注释值LAST_INSERT_id,“$comment”;这成为了一件我永远不会放弃的事情,直到我理解它。我明白了这一点,即使我添加FK也无法检索信息,因为无法添加或更新子行:外键约束使我的_database.comments失败,约束注释\U ibfk\U 1外键客户\U id引用客户\U id。查询运行是插入到commentscustomers\U id、注释值LAST\U INSERT\U id、'test'中的。此外,它有助于在尘埃落定时清理注释。你真棒。。我身边唯一了解php的人是。。。我所以当我陷入困境时,我没有人能救我出来。。几天前我就是这样来到这里的