私は同様の質問を検索しましたが、私の具体的な答えを見つけることができません。私のテーブル(テーブル)には、カンマで区切られた値(IDなど)を含む列(データ)があります。PHP、SQL、in_array、csv、whileループのみ整数を取得中
- 行1 = 4,5,45
- 行2 = 5,8,9
- 行3 = 5
方にはoccurancesの数を取得するin_array関数を使用whileループ内の$ data値。したがって、SQL関数を使用して、 '5'などの特定の値がwhileループ内のすべての行で発生する回数を取得します。
$data
の値を取得できるのは、自分自身の場合(つまり、整数だけのコンマは使用しないため)、リストの例に基づいて5回(行3)を取得できるということです。すべての行に表示される3倍の値 '5'を取得したいと思います。私のコードは以下の通りです。助けていただければ幸いです。 $ selectiontext変数は、ユーザーがフォームから入力する変数です。
$sql_frnd_arry_mem1 = mysql_query("SELECT data, id FROM table WHERE data='$selectiontext'");
while($row=mysql_fetch_array($sql_frnd_arry_mem1)) {
$datacheck = $row["data"];
$id = $row["id"];
}
$frndArryMem1 = explode(",", $frnd_arry_mem1);
if (($frnd_arry_mem1 !=="") && (!in_array($id, $frndArryMem1))) {echo $id;}
ありがとうございます。
ここで '$ frndArryMem1'と' $ frnd_arry_mem1'はどこから来ますか? – davogotland
こんにちはdavogotland、変数$ frndArryMem1はexpoded関数です。$ frnd_arry_mem1は空の変数で、csvの配列を保持し、$ id変数をフィールドに挿入します。だから$ frnd_arry_mem1 = "$ frnd_arry_mem1、$ id" – Raja
これは今何度も答えられています...そして第1位の答えは、まずデータを正常に正規化しておかなければならないということです。 tも存在する –