ホームページ  >  記事  >  バックエンド開発  >  phpによるデータベース出力の呼び出しに関する問題についてアドバイスをお願いします。

phpによるデータベース出力の呼び出しに関する問題についてアドバイスをお願いします。

WBOY
WBOYオリジナル
2016-06-13 13:37:162178ブラウズ

データベース出力を呼び出すphpの問題についてアドバイスを求めたいです
目的は、選択範囲を作成し、これらの範囲を通じてデータベースにクエリを実行し、出力結果をフォーマットすることです

しかし、実行中に問題が発生しました出力に長い時間を費やしましたが、理解できません
以下はコードのエラー部分です

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
mysql_query('set names gbk',$conn);
mysql_select_db('htc',$conn);
$count = 'select count(*) from phone';
$query = mysql_query($count,$conn);
//记录总数
$recordcount = mysql_result($query, 0,0);
//每页多条
$pagesize = 5;
//总页数
$pagecount = ceil($recordcount/$pagesize);
//当前页
$currpage = 1;
if($_GET){
    $currpage = (int)$_GET['p'];
    }
    $currpage = $currpage<1 ? 1 : $currpage;
    $currpage = $currpage>$pagecount ? $pagecount : $currpage;
                    
    $start = ($currpage-1)*$pagesize;
    $sql = "select * from phone order by id desc limit $start,$pagesize";
    $result = mysql_query($sql,$conn);
    while($row=mysql_fetch_array($result)){
    foreach ($row as $k=>$va){
    //echo '<pre class="brush:php;toolbar:false">';
    //print_r($row);
                            
    echo "<div class='p_list'>";
    echo "<div class='p_list_pic'><a><img src="."'image/'.$va[13]".">"."</img></a></div>";
    echo "<div class='p_list_con'>
        <p class='p_list_con_title'>$va[1]</p><br>
            $va[4],$va[5]<br>
            $va[6],$va[7]<br>
            $va[8],$va[9]<br>  
            <p class='p_list_con_state'>$va[10]</p></div>";
            echo "<div>售价:¥$va[3]<br>
            <img src='image/gm.gif'></img></div>";
            echo "</div>";
            //echo '
'; } } echo '首页 '; echo '下页 '; echo '上页 '; echo "末页 "; echo "[{$currpage}/{$pagecount}][共{$recordcount}记录,每页{$pagesize}条]"; ?>

エラー メッセージ
多くの行がありますが、基本的には


注意: 初期化されていない文字列オフセット: 6 in D:Program FilesApachehtdocsprophone_zone.php の 183 行目

注意: 初期化されていない文字列オフセット: 7 インチD:Program FilesApachehtdocsprophone_zone.php 行 183

アドバイスを求める

-----解決策---------------- ----
while($row=mysql_fetch_array($result)){ //mysql_fetch_array($result) は、foreach に 1 次元配列
を返します ($row as $k=>$va )//つまり、$va は単一値データです
//echo '

//print_r($row);

echo "
";
echo "
< a>"。 "
";
echo "

$va[1 ]



$va[4],$va[5 ]

$va[6],$va[7]
//だから $ va[6],$va[7] は 1 文字のみです。$val がそれほど長くない場合、エラーが報告されます

本来の意図は次のとおりであると思います

while($val=mysql_fetch_array($result)){
//foreach ($row as $k=> ;$va){

つまり: $va[6], $va [7]は6番目と7番目のフィールドの値です
------解決策------------------
foreach ループを削除します。
while($va = mysql_fetch_row($result) ){
// ...
}

ご質問 #2 については、正規表現がわからないので、できます。忙しいんだよ。
------解決策----------------------
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。