私はPHPで新しいです。私はちょうどランダムな名前(またはあなたが望むもの...)を生成したいです。それは動作します!しかし、コードの途中に「do/while」を置いて重複した名前を制御したり避けたりすると、うまくいきません....なぜですか?私のコードには何がありますか?私は疲れて、破壊される。PHPは、コントロールの生成時に重複します
<?php
require_once 'config.php';
require_once 'dbconn.php';
function getnome() {
$nome = ['tin', 'pin', 'nid', 'din', 'vin'];
return $nome[mt_rand(0, count($nome) - 1)];
}
for ($f =0; $f<6; $f++) {
$arr = [];
do {
$x = getnome();
}
while (in_array($x, $arr));
$arr[]=$x;
$query = "INSERT INTO ants (ant_id, nome) VALUES (NULL, '".getnome()."')";
$res = $mysqli->query($query);
if (!$res) {
echo('<br>Error' . $mysqli->error);
} else {
echo $mysqli->affected_rows . ' created';
}
}
?>
do/whileループでは何もしません。コードの残りの部分には影響しません。 – aynber
私は大変な努力をしていますが、重複した名前を避ける方法は見つけられません。私に何ができる? – AlessandroFlorean
最も簡単な方法は、テーブルのnomeカラムに一意のフラグを追加するか、挿入する前に存在するかどうかを確認することです。 – aynber