Флажки и База данных не работает - PullRequest
0 голосов
/ 09 августа 2011

Итак, я пытался получить user_id пользователей, если их флажок установлен, и сохранить его в базе данных, но мой код не работает.

$invites = $_POST["invite"];
mysql_query("INSERT INTO group_members (fan_id, group_id) VALUES ('$invites',     '$group_id')") or die(mysql_error());

while ($row = mysql_fetch_array($friends)) {
                echo "<div id=\"groupFanBox\"><a href=\"profile.php?id=" . $row['user_id'] . "\">" . $row['full_name'] . "</a><br><input type=\"checkbox\"value=" . $row['user_id'] . " name=\"invite[]\"></br></div>";
                echo $row['user_id'];

Что не так?

Ответы [ 3 ]

1 голос
/ 09 августа 2011

Запросы вставки не возвращают наборы результатов, поэтому mysql_fetch_array() не с чем работать. Возможно, вам нужен запрос SELECT:

SELECT user_id, full_name
FROM group_members
0 голосов
/ 09 августа 2011

Более простой способ как увидеть, что не работает, так и разобраться с вашим кодом позже, - вывести html, который вы хотите, с php без операторов echo.

Итак, это:

while ($row = mysql_fetch_array($friends)) {
                echo "<div id=\"groupFanBox\"><a href=\"profile.php?id=" . $row['user_id'] . "\">" . $row['full_name'] . "</a><br><input type=\"checkbox\"value=" . $row['user_id'] . " name=\"invite[]\"></br></div>";
                echo $row['user_id'];

становится таким:

while($row=mysql_fetch_array($friends)){
//close your php before the loop ends
?>
<div id="groupFanBox">
<a href="profile.php?id=<?php print $row['user_id'];?>"><?php print $row['full_name'];?></a>
<br/>
<input type="checkbox" value="<?php print $row['user_id'];?>" name="invite[]">
<br/>
</div>";
<?php //then close the loop afterwards
}
?>

Помимо читабельности, я думаю, что проблема, с которой вы столкнулись, связана с указанием вами названия флажка. name='invites[]' Я не верю, что это эквивалентно сообщению $_POST['invites'], которое вы пытаетесь получить. снимите скобки с name='invites' и посмотрите, работает ли он.

0 голосов
/ 09 августа 2011

Вы пытаетесь сохранить массив в своей базе данных!

Вы должны выполнить вставку для каждого флажка:

foreach($_POST['invites'] as $fanId) {
    mysql_query("INSERT INTO group_members (fan_id, group_id) VALUES ('" . intval($fanId) . "', '" . intval($groupId . "')") or die(mysql_error());
} 

Я полагаю, что ваш оператор вставки является реальным вопросом, а цикл while предназначен только для того, чтобы показать, как вы создаете флажки :-) Если нет, мой ответ может оказаться неправильным; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...