0


0

PHP foreachはランダムな場所でエラーが発生せず、特定のクエリでのみ失敗します

私は完全に困惑している問題です。

1つのパラメーターを使用して単純なクエリを実行し、結果を配列に入れてから、配列をループして情報をテーブルに表示しています。

私は最後にコードを投稿しますが、それは一種の高密度ですが、ほとんどの場合、PHPスクリプトがエラーなしで死ぬ原因を知りたいですか?

mysql情報が配列に入れられた後、foreachループの直前にそれを出力し、すべての情報が表示されることに注意してください。

エラー報告を有効にしました。

このエラーは、特定のパラメーターを持つクエリでのみ発生し、他のパラメーターでは発生しません。

エラーは常に同じ場所で発生するわけではありませんが、常に発生します。 レコードを通過するとき、いくつかのレコードがテーブルに描画された後、ランダムなポイントで停止します。

エラーが発生するため、機能に問題があるとは思わない。

とにかく、私はいくつかの愚かな監視をしていると思います。 フィードバックをお願いします。

'; ?>













    <?=$main_image?>
 +
[.small]# <?=highlight($row['city'],$_SESSION['search_param'])?>,
<?= $ row ['state']?>•<?= highlight($ row ['category']、$ _ SESSION ['search_param'])?>#
  • <?= highlight(getPersonName($ person、 'FL')、$ _ SESSION ['search_param'])?>

0)\ {?> image:ui / images / headphones.png [image]

2 Answer


1


エラーは表示されないと言いますが、エラーについては後で言及します。 エラーは「テーブルの残りの部分が表示されない」またはそのようなものですか?

出力ソースを調べて、どこで終了するかを確認しましたか?

無効な文字が印刷されている可能性があり、その結果、残りのHTMLが破損する可能性があります。 (他の場所にいない場合)HTMLサニテーションを調べたいかもしれません。 `htmlspecialchars()`を見てみてください

サイドノートとして、コードをそのまま読むのはかなり難しいです。 `と?>`をあまり使用する必要はありません。PHPコードをすべての行に配置する代わりに、より少ないセットに含めることができます。

また、「<?=」と「。」との一貫性を高めたい場合があります。 個人的には、速記版には近づかないため、一部のWebサーバーでは速記が許可されていません。 `

編集:コードのクリーンアップバージョンを以下に示します。 すべてのプログラマーは、コードをフォーマットする独自の方法を持っています。

EOT;
    $bg = 'alt2';
    //echo '',print_r($results['rows']),'

'; foreach($ results ['rows'] as $ row)\ {$ podcasts = getRelatedPodcasts( 'item'、$ row ['record_id']); $ images = getRelatedImages( 'item'、$ row ['record_id']); $ main_image = getAndShowMainImage( 'item'、$ row ['record_id']、 'mini'); $ color_class = str_replace( ''、 '-'、$ row ['category']); $ people = getRelatedPeople( 'item'、$ row ['record_id']); $ bg =($ bg == 'alt2'? 'alt1': 'alt2'); $ record_id = $ row ['record_id']; $ state = $ row ['state']; $ highlight_name_title = highlight($ row ['name_title']、$ _SESSION ['search_param']); $ highlight_city = highlight($ row ['city']、$ _SESSION ['search_param']); $ highlight_category = highlight($ row ['category']、$ _SESSION ['search_param']);エコー<<

$ main_image

$ highlight_name_title
[.small]# $highlight_city, $state • $highlight_category #

EOT; foreach($ people ['record_ids'] as $ key ⇒ $ person)\ {$ highlight_person = highlight(getPersonName($ person、 'FL')、$ _SESSION ['search_param']);エコー "

$ highlight_person

";} $ shortened_remarks = constrainLongText($ row ['remarks']、150); echo <<

$ shortened_remarks

EOT; if($ podcasts ['count']> 0)\ {echo "image:\%22ui / images / headphones.png \%22 [image]"; } echo <<

EOT; } エコー "

";} //結果を送信する場合は終了しますか?>


0


関数の1つに問題がありましたが、関数が別のファイルにあるという事実のため、エラーは表示されませんでした。 残念ながら、私のホストは残念で、php.iniにアクセスできませんが、各関数を削除し、基本的にゼロから開始することで、問題の場所が明らかになりました。 ポインタをありがとう。