В чем проблема с этим php-кодом?

#php #mysql #windows #apache #xampp

#php #mysql — сервер #Windows #апач #программе XAMPP #mysql #apache #xampp

Вопрос:

Это простой php-код, который я использую для просмотра содержимого форума. Проблема в том, что он нормально работает на одном из моих ноутбуков, но во втором он не показывает выходные данные.

   // Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name ORDER BY id DESC";
// OREDER BY id DESC is order result by descending
$result=mysql_query($sql);
?>
<table width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td width="6%" align="center" bgcolor="#E6E6E6"><strong>#</strong></td>
<td width="53%" align="center" bgcolor="#E6E6E6"><strong>Topic</strong></td>
<td width="15%" align="center" bgcolor="#E6E6E6"><strong>Views</strong></td>
<td width="13%" align="center" bgcolor="#E6E6E6"><strong>Replies</strong></td>
<td width="13%" align="center" bgcolor="#E6E6E6"><strong>Date/Time</strong></td>
</tr>

<?php
while($rows=mysql_fetch_array($result)){ // Start looping table row
?>
<tr>
<td bgcolor="#E6E6E6"><? echo $rows['id']; ?></td>
<td bgcolor="#E6E6E6"><a href="view_topic.php?id=<? echo $rows['id']; ?>"><? echo $rows['topic']; ?></a><BR></td>
<td align="center" bgcolor="#E6E6E6"><? echo $rows['view']; ?></td>
<td align="center" bgcolor="#E6E6E6"><? echo $rows['reply']; ?></td>
<td align="center" bgcolor="#E6E6E6"><? echo $rows['datetime']; ?></td>
</tr>
  

Я проверил все остальное, и, похоже, с ними все в порядке. Данные присутствуют в базе данных, но они не отображаются на форуме. Кто-нибудь может мне в этом помочь?
операционная система : win7

Комментарии:

1. Пожалуйста, опубликуйте весь ваш код и структуру вашей базы данных.

2. Я не вижу, где $tbl_name это определено. Используете ли вы этот код на своих ноутбуках или он размещен в другом месте?

3. Возможно, короткие теги отключены. Изменить <? echo $rows[‘id’]; ?> в <?php echo $rows[‘id’]; ?> и все остальные строки, начинающиеся с <? to <?php

4. Вы уверены, что у вас такая же установка mysql, с таким же логином / паролем?

Ответ №1:

пора учиться отладке, приятель.

Хорошее место для начала: http://www.ibm.com/developerworks/library/os-debug /

для mysql чрезвычайно удобно запускать запросы таким образом:

 $result=mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
  

и убедитесь, что вы можете видеть все возникшие ошибки.
если вы не можете быстро исправить ситуацию, вы можете добавить эти строки в начало скрипта

 ini_set('display_errors',1);
error_reporting(E_ALL);
  

но для рабочего состояния display_errors значение должно быть изменено на 0

Также рекомендуется проверять исходный код HTML вместо просмотра отображаемой страницы в браузере. Он сообщит вам, есть ли у вас какие-либо проблемы с короткими тегами или нет. Всегда полезно знать, есть ли у вас какие-либо проблемы, прежде чем приступать к их устранению.

Ответ №2:

вы должны использовать

<?php echo $rows['id']; ?> вместо <? echo $rows['id']; ?>

короткий тег может быть отключен.