2017-07-30 12 views
0

PHP7と互換性を持たせるために、mysqlからPDOへのマスター/ディテール設定を更新しようとしています。私はマスタページを正確に動作させる必要があります。オーディオファイルをリストするテーブルが作成されます。タイトルをクリックすると、オーディオプレーヤが表示される詳細ページに移動します。詳細ページのコーディングに問題があり、マスターページのIDが詳細ページに渡され、タイトルと作成者がHTML5オーディオプレーヤーと共に表示されます。ここでPDOの詳細ページに行のIDを渡す

は、マスターページのコードです:

<?php 
$doc->addScript(JURI::root(true).'/templates/nfhop/js/sorttable.js') 
?> 

<?php 
require_once JPATH_SITE.'/includes/dbAudio.php'; ?> 

<?php $query = $handler->query('SELECT * from audio ORDER BY subject ASC'); ?> 

<article class="left"> 
<div class="formwrap"> 
<table class="members-audiolist table-striped sortable" border="0" align="left"> 
<thead> 
<tr class="audio_header"> 
<td><p class="house-red">Subject</p></td> 
<td><p class="house-red">Title</p></td> 
<td><p class="house-red">Author</p></td> 
</tr> 
</thead> 

<?php 

while($r = $query->fetch(PDO::FETCH_OBJ)) { ?> 
<tbody> 
<tr> 
<td width="25%"><?php echo $r->subject; ?></td> 
<td><a href="index.php/audioplayer-pdo?recordID=<?php echo $r->id; ?>"> <?php echo $r->title; ?></a></td> 
<td><?php echo $r->author; ?></td> 
</tr> 
<?php } ?> 
</tbody> 
</table> 
<div class="clearfix"></div> 

</div> 
<div style="margin-left:18px"> 
<p style="margin-top: 8px; font-size: 1em">To listen: click on title</p> 
<p style="font-size: 1em">To download: right click on title and select save link as...</p> 
<p style="font-size: 1em">You can sort by subject, title or author, just click on heading at top of column</p> 
</div> 
</article> 

そして、これは、詳細ページのコードで私の試みです:

<?php 
require_once JPATH_SITE.'/includes/dbAudio.php'; 

$query = $handler->query('SELECT * FROM audio WHERE id = ?'); ?> 

?> 

<hr class="divider" /> 

<h2><?php echo $r->title; ?> </h2> 

<p>Speaker: <?php echo $r->author; ?> </p> 

<p><?php echo $r->date; ?> </p> 

<p><span style="font-style: italic">Category: <?php echo $r->subject; ?> </p><br /> 
<audio controls> 
<source src="http://media.nfhop.org/<?php echo $r->audio_location; ?>" type="audio/mp3"> 

</audio> 

<p class="margin-T10"><a href="http://www.nfhop.org/<?php echo $r->notes_location; ?>"> <img src="http://www.nfhop.org/<?php echo $r->image; ?>"></a></p> 

<p><a href="/index.php/resources/audio">return to audio list</a> 

が仕事にこれを得ることにどのような援助のために感謝されます!

+0

'$ handler'とは何ですか?どのように定義しますか? –

+0

$ handler = new PDO - データベースファイルにアクセスするためのパラメータ – nfhopmike

答えて

1

$handlerはPDOのインスタンスである場合は、このようにそれを行うことができます:プロパティは、あなたが出力することができ$rであるところによると

<?php 
require_once JPATH_SITE.'/includes/dbAudio.php'; 
// Audio id is stored in `$_GET['recordID']` 


$stmt = $handler->prepare('SELECT * FROM audio WHERE id = ?'); 
$stmt->bindParam(1, $_GET['recordID']); 
$stmt->execute(); 
$r = $stmt->fetch(PDO::FETCH_OBJ); 
print_r($r);?> 

+0

現時点では、WHERE id =によってSQLステート[42000]エラーメッセージがスローされています。 – nfhopmike

+0

私はエラーメッセージを推測すると思いますか? –

+0

私のエラー - 複製クローズphpタグ!すべてこれは今のところうまくいくはずです、u_mulderありがとう – nfhopmike

関連する問題