0

選択クエリでループを使用するにはどうすればよいですか? クエリは、選択クエリから一度に 1 つの行のみをフェッチします。選択クエリで複数の行をフェッチしたいが、ループを介して

IDを選択

$id=$_REQUEST['id'];
function get_id($id){
    $result1=mysql_query("select * from products where id='$id'") 
    or die("Id Problem"."<br/><br/>".mysql_error());
    $results1= array();
    $k=0; // add the new line
    while($row1=mysql_fetch_assoc($result1)){
        $results1[] = $row1['id'];
        $k++;
    }
    return $results1;
}

Pid 配列

 $pid1=get_id($id);
 <?php 
     $max1=count($pid1);
     for($n=0; $n<$max1; $n++)
     {?>
         <input type="hidden" name="pid[]" value="<?php echo $pid1[$n]?>" />
 <?php }?>

Pid セッション

$_SESSION['pid']=$_POST['pid'];

fetch選択クエリで複数の行が必要ですが、ループを介して

<?php 
$pid = join(',',$_SESSION['pid']); 
$result=mysql_query("SELECT id AS wid FROM mywishlist 
where pid='$pid'") 
or die("Id     Problem"."<br/><br/>".mysql_error());
$results= array();
$i=0; // add the new line
while($row=mysql_fetch_array($result)){
    $results[$i] = $row['wid'];
    $i++;
}
echo $results;

$max=count($results);
for($j=0; $j<$max; $j++)
{
?>
    <input type="text" name="wid[]" value="<?php echo $results[$j]; ?>" />
<?php }?>
4

1 に答える 1

1

自動操縦で問題なく動作するものを追跡および制御するという、難しい方法でいくつかのことを行っています。たとえば、 for ループでは長さを知る必要がありますが、 foreach ループは完了するまで実行されます。

インデックスを割り当てる代わりに [] を使用して配列インデックスを PHP に処理させると、労力も節約できます。また、各ループは実際には 1 つのことしか実行しないため、波括弧は必要ありません。

$result=mysql_query('SELECT id AS wid FROM mywishlist where pid="'.$pid.'"') or die(); 
$results= array();
while($row=mysql_fetch_array($result)) 
    $results[]=$row['wid'];
foreach($results as $wid)
    echo '<input type="text" name="wid[]" value="'.$wid.'" />';

もちろん、どちらも基本的に同じデータを処理するため、これらのループのいずれかを排除できます...

$result=mysql_query('SELECT id AS wid FROM mywishlist where pid="'.$pid.'"') or die(); 
while($row=mysql_fetch_array($result)) 
    echo '<input type="text" name="wid[]" value="'.$row['wid'].'" />';

さらに、キーを id から wid に再識別してもあまり意味がありません。結果にはフィールドが 1 つしかないため、わざわざそれを特定する必要はありません。行をフェッチするだけです。

$result=mysql_query('SELECT id FROM mywishlist where pid="'.$pid.'"') or die(); 
while($row=mysql_fetch_row($result)) 
    echo '<input type="text" name="wid[]" value="'.$row[0].'" />';

あ、2行にしよう

$result=mysql_query('SELECT id FROM mywishlist where pid="'.$pid.'"') or die(); 
while($row=mysql_fetch_row($result)) echo '<input type="text" name="wid[]" value="'.$row[0].'" />';
于 2013-04-27T00:52:51.723 に答える