0

ここで私を助けてくれませんか。最後に挿入された ID を保存しようとしていますが、0 を保存し続けているため、理由がわかりません。ここで申し訳ありません:(ここに私のコードがあります

インデックス

<form action="save_member.php" method="POST">
            Enter your username: <input type="text" name="member"/>
            <input type="submit" value="Submit"/>
        </form>

save_member

include 'connect.php';
session_start();
$_SESSION['member_id'] = $_POST[member];
$sql = mysql_query("insert into users (idusers, member) values ('', '$_POST[member]')");
$_SESSION['last_id'] = mysql_insert_id();
header("Location: chat.php");

チャット

    <?php
    session_start();
    echo "hello" . " " . $_SESSION['member_id'];
    echo "<br/>";
    ?>
    <?php
    include 'connect.php';
    $q = mysql_query("select * from messages order by time_sent desc");
    while ($w = mysql_fetch_array($q)) {
        ?>
        <div id="show_messages" style="">
            <span id="wrap_messages" style="">
                <span id="message" style=""><?php echo $w['message']; ?> </span> :
                <span id="member_id" style=""><?php echo $w['member_id']; ?></span>
            </span>
        </div>
    <?php } ?>
    <br/>
    <div style="margin-right: 450px !important; width: 300px; float: right;">
        <form action="sent_chat_message.php" method="POST">
            <input type="hidden" name="member_id"/>
            <input type="text" name="chat"/>
            <input type="submit" value="Submit"/>
        </form>
    </div>

および sent_chat_message

include 'connect.php';
session_start();
$_SESSION['last_id'] = $last_id;
$r = mysql_query("insert into messages (idmessages, message, member_id) values ('', '$_POST[chat]', '.$last_id.')");
header("Location: chat.php")
4

4 に答える 4

1

挿入クエリが正常に実行されていますか?

それが、アスター挿入クエリ0の結果として得られる理由であるに違いありませんmysql_insert_id

idusers が主キーの場合、空の文字列の代わりに NULL 値を渡すことをお勧めします

$sql = mysql_query("insert into users (idusers, member) values ('', '$_POST[member]')");

あなたのクエリは

$sql = mysql_query("insert into users (idusers, member) values (NULL, '".mysql_real_escape_string($_POST[member])."')");
于 2012-07-24T08:02:19.823 に答える
1

php.netから:

前のクエリ (通常は INSERT) によって AUTO_INCREMENT 列に対して生成された ID を取得します。

ID フィールドは AUTO_INCREMENT に設定されていますか?

また、PDO または mysqli を使用します。mysql_* は非推奨です。

于 2012-07-24T08:06:46.610 に答える
0

このスレッドは解決しました。私がしたことは

if (isset($_SESSION['last_id']))
    $_SESSION['last_id'] = $_SESSION['last_id'];
else
    $_SESSION['last_id'];
于 2012-07-27T09:26:37.307 に答える
-1

ブラウザが NAME タグをサポートしていない場合に備えて、ID タグを追加することをお勧めします。

<form action="save_member.php" method="POST">
            Enter your username: <input type="text" name="member" id="member"/>
            <input type="submit" value="Submit"/>
        </form>
于 2012-07-24T08:00:44.307 に答える