0

誰かがこの解決策を手伝ってくれるかもしれません。私には少しトリッキーです。

_GET で長い数字 (102030 など) を参照します。ここで、この長い数字を短い数字 (10 20 30 など) に分割したいと思います。この短い番号は mysql のデータベースの id であり、id_name のすべての foreach 短い番号 (name-10 name-20 name-30 など) を取得したいと考えています。

長い数値を分割するために str_split を使用しましたが、この配列の使用方法がわかりません。

これが私のコードです。(データベースはこのコードの前に含まれています)

<?php
$long_id =$_GET[long_id];

if($_SESSION['test']) {
foreach($_SESSION['test'] as $split_id => $number) {

$split_id = str_split( $long_id, 2);

                $result = mysql_query("SELECT id, id_name FROM names"); 
//Here is my WHERE missing, because it's not working with split_id...
                list($id, $id_name) = mysql_fetch_row($result);
                while($row = mysql_fetch_array($result)){
                echo $id_name;

                }
}
} else {
   echo "test is empty";
}
?>

ありがとう

4

3 に答える 3

1

これを変える

   $long_id =$_GET[long_id];

 $long_id =$_GET['long_id'];

あなたはこれを試すことができます

  $result = mysql_query("SELECT id, id_name FROM names WHERE id= '$split_id[0]' ");

他の数字も必要な場合、これは最初の2桁を探します

追加することができます

    OR id= '$split_id[1]' OR  id= '$split_id[2]' ....
于 2013-04-11T10:07:13.573 に答える
0

$_GET['long_id'] が値「102030」を保持しているとしましょう。

次に、あなたの場所は次のようになります。

WHERE id=$split_id[0] OR id2=$split_id[1] OR id3=$split_id[2]

すべての個別の ID を表示するには、次のようにします。

$long_id =$_GET[long_id];
foreach ($split_id as $id)
{
  echo "This is a id: ".$id."<br />";
}

出力: これは ID: 10 これは ID: 20 これは ID: 30

于 2013-04-11T10:13:46.467 に答える
0

わかった。大ざっぱなデザイン パスをたたくのではなく、デザインについてもう一度考えてみましょう。

あなたのデータ

長い数字 が 1 つあり102030、それを分割します。どうやって?区切り文字がありません。PHP はどのようにして 1 つの数字の開始位置と 1 つの数字の終了位置を認識しますか? 「2 文字ごと」に落ち着いたようです。これは非常に厳格なコードです。

CSV アプローチを採用し、コンマを使用して数値を分割することをお勧めします。そうすれば、デバッグする必要がある場合にはるかに読みやすくなり、コードはより柔軟になります。1の代わりにまたは4904909を ID として使用できることを意味します01

データベース接続

非推奨のコードを使用しています! 非推奨のコードはサポートされなくなり、以降のバージョンの PHP ではWILL NOT WORKになります。コードをmysqliに更新するか、 PDOオブジェクトを使用する必要があります。

于 2013-04-11T10:10:28.893 に答える