2016-04-28 18 views
0

Ich baue eine Forum-Seite und das ist mein erstes PHP-Projekt. Ich habe es geschafft, meine Tabellen- und Speicherwerte in PHPMYADMIN zu verbinden, aber sie werden nicht auf meiner Hauptforumseite angezeigt. Was passiert stattdessen, wenn die angezeigten Zeilen erhöht werden, aber sie leere Werte speichern, irgendwelche Ratschläge?PHP-Tabelle mit leeren Werten

<?php 

include ('includes/session.php'); 
include ('includes/header.php'); 

$host = "localhost"; 
$username = "fses16g6"; 
$password = "fses16g6"; 
$db_name="fses16g6"; // Database name 
$tbl_name="forum_question"; // Table name 
// 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="#FFFFFF"> 
<tr> 
<td width="6%" align="center" bgcolor="#000000"><strong>#</strong></td> 
<td width="53%" align="center" bgcolor="#000000"><strong>Topic</strong></td> 
<td width="15%" align="center" bgcolor="#000000"><strong>Views</strong></td> 
<td width="13%" align="center" bgcolor="#000000"><strong>Replies</strong> </td> 
<td width="13%" align="center" bgcolor="#000000"><strong>Date/Time</strong> </td> 
</tr> 

<?php 

while($rows=mysql_fetch_array($result)){ 
?> 

<tr> 
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td> 
<td bgcolor="#FFFFFF"><a href="view_topic.php?id=<? echo $rows['id']; ?>"> <echo $rows['topic']; ?></a><BR></td> 
<td align="center" bgcolor="#FFFFFF"><? echo $rows['view']; ?></td> 
<td align="center" bgcolor="#FFFFFF"><? echo $rows['reply']; ?></td> 
<td align="center" bgcolor="#FFFFFF"><? echo $rows['datetime']; ?></td> 
</tr> 
<?php 
// Exit looping and close connection 
} 

mysql_close(); 
?> 
<tr> 
<td colspan="5" align="right" bgcolor="#black"><a href="create_topic.php"> <strong>Create New Topic</strong> </a></td> 
</tr> 
</table> 
<?php 
//if ($is_user) { 

    //echo 'Welcome to Gamers Paradise' 

//else echo 'You must be logged in to post.' 
      //} 
if ($is_admin) { 
       echo '<button type="button">EDIT</button>'; 
       echo '<button type="button">DELETE</button>'; 
      } 

include ('includes/footer.html'); 
?> 

Hier ist der Tisch

CREATE TABLE `forum_question` 
(`id` int(4) NOT NULL auto_increment,`topic` varchar(255) NOT NULL default'', 

`detail` longtext NOT NULL, 
`name` varchar(65) NOT NULL default '', 
`email` varchar(65) NOT NULL default '', 
`datetime` varchar(25) NOT NULL default '', 
`view` int(4) NOT NULL default '0', 
`reply` int(4) NOT NULL default '0', 
PRIMARY KEY (`id`) 
) TYPE=MyISAM AUTO_INCREMENT=1 ; 
+0

Sie nehmen nur an, dass die Abfrage erfolgreich war. '$ res = mysql_query ($ sql) oder sterben (mysql_error());' –

+3

Versuchen Sie 'mysql_fetch_assoc ($ result)' anstelle von 'mysql_fetch_array ($ result)'. Und dann benutze 'mysql_ *' Erweiterungen nicht mehr; Verwenden Sie mysqli_ * 'oder' PDO' – WillardSolutions

+0

und wetten Sie die Short-Tags. ändere das '

Antwort

0

Ändern Sie diese Zeile:

while($rows=mysql_fetch_array($result)){ 

zu ...

while($rows=mysql_fetch_assoc($result)){ 

Sie versuchen, Ihre Ergebnisse als assoziatives zugreifen Array, also müssen Sie sie holen m die Datenbank auch als assoziatives Array.

Aber noch wichtiger, müssen Sie aufhören, mysql_* Funktionen zu verwenden. Sie sind veraltet und unsicher.

+1

Nein "Gibt ein Array von Strings zurück, das der abgerufenen Zeile entspricht, oder FALSE, wenn keine Zeilen mehr vorhanden sind. Der Typ des zurückgegebenen Arrays hängt davon ab, wie result_type definiert ist. Mit MYSQL_BOTH (** default **) bekomme ein Array mit assoziativen und Zahlenindizes. "http://php.net/manual/en/function.mysql-fetch-array.php –

+0

Hmm. Ich habe das versucht, zeige immer noch keine Ergebnisse. Jedes Mal, wenn ich einen Beitrag hinzufüge, wird er inkrementiert und zeigt eine neue Zeile an, aber immer noch keinen Text. – RHK

0

Wie Dagon und matt kent wies darauf hin, meine Echo-Tags fehlten die Eröffnung php Abgrenzung, dies wurde keiner der Werte angezeigt.

Anstatt also:

<td align="center" bgcolor="#FFFFFF"><?echo $rows['view']; ?></td>

ich brauchte:

<td align="center" bgcolor="#FFFFFF"><php?echo $rows['view']; ?></td>

Dies tat dies mit allen Zeilen, und sie werden nicht angezeigt.

Vielen Dank für Ihre Hilfe.

+1

um fair zu sein Ich wies darauf hin eine Stunde vor :-) –

+0

@Dagon, sorry! Ich hatte es so eilig, es zur Arbeit zu bringen, ich schaute an dem vorbei, was du hattest. – RHK

Verwandte Themen