2015-11-02 6 views
0

Я новичок в PHP и SQL. Я просто хочу зарегистрировать пользователя после создания команды пользователей. Таблицы, которые я использовал -Вставить значения в таблицу с внешним ключом в php

команда

idTeam int(11) PK + AI 
teamName varchar(25) 

пользователь

idUser int(11) PK + AI 
name varchar(30) 
username varchar(30) 
password varchar(30) 
team int(11) FK 

Я использовал следующие код-

<?php 
session_start(); 
include('conn.php'); 

$name=$_POST['name']; 
$team=$_POST['team']; 
$username=$_POST['username']; 
$password=$_POST['password']; 

$qry="SELECT * FROM team WHERE idTeam='$team"; 

if(mysqli_query($con,$qry)){ 
    mysqli_query("INSERT INTO user(name, team, username, password)VALUES('$name', '$team', '$username', '$password')"); 

    header("location: add_user.php?remarks=success"); 
    mysqli_close($con); 
} 
else 
mysqli_error($con); 
?> 

я использовал для г и др error- Mysql ошибка 1452 - Невозможно добавить или обновить дочернюю строку: ограничения внешнего ключа failsMysql ошибка 1452 - Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа терпит неудачу

Пример - я предварительно вошел в содержание команды table-

idTeam - teamName 
    1  Arsenal 
    2  Chelsea 
    3  Liverpool 

Теперь, если я хочу, чтобы добавить пользователя, то я хотел бы добавить его, введя в пользователя table-

idUser team name username password 
    1  2 abc root  pass 

Итак, я не могу понять, какой запрос я должен использовать в PHP-коде?

+0

, пожалуйста, не используйте расширение базы данных 'mysql_' больше. Поскольку вы, очевидно, учитесь тратить свое время на изучение «PDO» или «MYSQLI_» [это сэкономит ваше время в конечном итоге] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql -functions-in-php) – RiggsFolly

+0

Вы также пытались расширять базы данных MIX 'mysql_' и' mysqli_'. ** ЭТО НЕ РАБОТАЕТ ** Придерживайтесь 'MYSQLI_' или' PDO' – RiggsFolly

+0

Возможно, было бы неплохо, если бы вы также показали нам код, который ** подключает этот скрипт к базе данных ** Используете ли вы 'mysql_' или' mysqli_' для этого ?? – RiggsFolly

ответ

0

Существует одна цитата в пределах Вашего первого запроса SQL около IDteam = '$ команде. idTeam - целочисленный тип. Поэтому он не нуждается в единой цитате. Убедитесь, что вы передаете значение переменной $ team, которая существует в таблице команд. Попробуйте выполнить следующий код.

$name=$_POST['name']; 
$team=$_POST['team']; 
$username=$_POST['username']; 
$password=$_POST['password']; 

$qry="SELECT * FROM team WHERE idTeam=$team"; 
$result = mysqli_query($qry); 
$num_rows = mysqli_num_rows($result); 
if($num_rows > 0){ 
    mysqli_query("INSERT INTO user(name, team, username, password)VALUES('$name', $team, '$username', '$password')"); 
}else{ 
    echo "Team is not valid!!!"; 
} 
mysqli_close($con); 
header("location: add_user.php?remarks=success"); 
+1

Вы тоже не заметили использование' mysql_' иногда и 'mysqli_' в другое время – RiggsFolly

+0

Спасибо за руководство. Исправлено. :) –

0

Там должно быть существует запись в таблице команды, которая соответствует значению передается в $team

+0

да, у меня есть несколько записей, хранящихся в таблице команд. Теперь я хочу добавить пользователя в таблицу пользователей. Какой запрос я должен использовать? – Kaus

+0

Если вы предоставите содержимое записи из таблицы команды, то я могу сделать вам вставить запрос примера –

+0

содержания команды table- IDteam - 1, 2, 3 teamName - Арсенал, Челси, Ливерпуль Теперь, если я хочет добавить пользователь, то я хотел бы добавить его на entering- idUser - 1 команды - 2 имени - а имя пользователь - корень пароля - передать – Kaus

0

иностранных ключевых отношений включают родительскую таблицу, которая содержит центральные значения данных, а также дочернюю таблицу с одинаковыми значениями, указывающими назад к своему родителю. Предложение FOREIGN KEY указано в дочерней таблице.

Он отклонит любую операцию INSERT или UPDATE, которая пытается создать значение внешнего ключа в дочерней таблице, если в родительской таблице нет соответствующего значения ключа-кандидата.

https://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

Смежные вопросы