名前、電子メール、携帯電話番号、グループなどの異なるフィールドとパスワードフィールド、質問とは無関係のその他のフィールドを持つデータベースがデータベースにあります。
ここでは、メールが提供されるのかグループが提供されるのかに基づいてパスワードを変更したいと考えています。グループの列に基づいてグループのパスワードを変更してください
mysqli_query($con, "UPDATE test_taker SET test_taker_password = CONCAT(test_taker_password, SUBSTRING($select1, '$from1', '$to1')) where test_taker_email = '$mail' OR test_taker_group = '$group'");
と私は、この内部を使用しています:
私のパスワードを変更するための基本的なsql
クエリがある
$setRec = mysqli_query($con,"select * from test_taker where test_taker_email = '$mail' OR test_taker_group = '$group' ");
while($rec = mysqli_fetch_array($setRec))
{
mysqli_query($con, "UPDATE test_taker SET test_taker_password = CONCAT(test_taker_password, SUBSTRING($select1, '$from1', '$to1')) where test_taker_email = '$mail' OR test_taker_group = '$group'");
$password=$rec['test_taker_password'];
}
と私はメールでしようとしたとき、それは完全に正常に動作しますが、私はとしようとすると、グループのwhileループは、setRecで取得された行数の回数だけ複製します。
たとえば、パスワードがabcd10、abから名前、cdが電子メール、モバイルから10であり、指定されたグループに2つの行がある場合、返されるパスワードはababcdcd1010です。
メールを傷つけることなく、このグループの問題を解決する方法を教えてください。
「WHERE(test_taker_email = '$ mail' OR test_taker_group = '$ group') 'で試してください – devpro
重要なシステムにパスワードをハッシュとして保存してください。家庭用のクーポンデータベースは、必ずしも修飾されません – Drew
なぜループを使用しますか?更新クエリは、選択クエリが取得するレコードと同じレコードを対象とします。したがって、更新クエリは、外観だけで使用する必要があります。また、アップデートには、コードに定義されていないいくつかの変数があります。 – RamRaider