Avatar billede only-boy Nybegynder
22. november 2004 - 14:08 Der er 17 kommentarer og
1 løsning

Overskueligt PHP / tabel

Hejsa,

jeg håber at der er én som kan hjælpe mig med et lille kode problem i php ang. nogen tabeller. Jeg forstår ikke helt hvorfor jeg får fejl, så måske du kan hjælpe med at give mig det færdige resultat.

Via nedenstående tabel fremgår det, at jeg har en kolonne for overskrifter (titel) og en kolonne for datoer (dato). Nedestående skal stå øverst, med "titel" og "dato".

Derefter skal den selv oprette flere rækker i tabellen, alt efter hvor mange den henter frem i databasen (se min php kode). Det er for at siden bliver overskuelig og noget pænere iforhold til nu. Så overskrift samt dato kommer på række, og lige under hinanden.

Håber at du måske kan hjælpe.

<table border="0" width="100%">
  <tr>
    <td width="63%">Titel</td>
    <td width="37%">Dato</td>
  </tr>
</table>


<br>

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 7") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<br>';
   
    echo '<a href="news.display.php?id='.$row['id'].'">'.$row['title'].'</a>';
    echo $row['date'];


}
?>


Mvh.
Only-Boy
Avatar billede jaw Nybegynder
22. november 2004 - 14:10 #1
Hvilken fejl får du?
Avatar billede jaw Nybegynder
22. november 2004 - 14:12 #2
Og hvis du skal have den til at lave rækker, skal du jo noget i stil med:

<table border="0" width="100%">
  <tr>
    <td width="63%">Titel</td>
    <td width="37%">Dato</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp:</td>
  </tr>

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 7") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<br>';
    echo '<tr>'
    echo '<td><a href="news.display.php?id='.$row['id'].'">'.$row['title'].'</a></td>';
    echo '<td>'.$row['date'].'</td>';
    echo '</tr>';

}
?>

</table>
Avatar billede only-boy Nybegynder
22. november 2004 - 14:14 #3
Lige nu har jeg gjort sådan her, men laver fejl et sted tror jeg så håber på en løsning:

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 7") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<br>';


<table border="0" width="100%">

  <tr>
    <td width="63%">Titel</td>
    <td width="37%">Dato</td>
  </tr>

  <tr>
    <td width="63%">echo '<a href="news.display.php?id='.$row['id'].'">'.$row['title'].'</a>';</td>
    <td width="37%">echo $row['date'];</td>
  </tr>

</table>
   
}
?>

Det giver mig følgende fejl:
"Parse error: parse error in /home/virtual/syngre.net/public_html/news.old.php on line 36"

Linie 36 svare til der hvor tabellen starter :-)


hm.. oki, prøver lige dit forsøg på koden der
Avatar billede jaw Nybegynder
22. november 2004 - 14:16 #4
Hvis du vil bruge din egen, mangler du i hvert fald en echo:

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 7") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<br>';

echo'
<table border="0" width="100%">

  <tr>
    <td width="63%">Titel</td>
    <td width="37%">Dato</td>
  </tr>

  <tr>
    <td width="63%">echo '<a href="news.display.php?id='.$row['id'].'">'.$row['title'].'</a>';</td>
    <td width="37%">echo $row['date'];</td>
  </tr>

</table>';
   
}
?>
Avatar billede only-boy Nybegynder
22. november 2004 - 14:20 #5
Holder mig bare til din kode, for mine plejer ikke altid at virke efter hensigten *smiler*

Nu bruger jeg dit script, du kan evt. se med her: http://www.boyparty.dk/news.old.php

Jeg får nu fejl i linie 44, det er her:
    if ($i++ != 0) echo '<br>';
    echo '<tr>'

Der hvor ECHO starter
Avatar billede elskermad.dk Nybegynder
22. november 2004 - 14:21 #6
også skal der vel ikke være echo's inde i en echo? hehe
Avatar billede only-boy Nybegynder
22. november 2004 - 14:24 #7
Sådan her måtte det gerne se ud: http://www.boyparty.dk/news.old-test.php

Her trækker den bare selv det hele ud af databasen. Mit delemma er at den skal opdele det i en form for kolonner så det kommer lige under hinanden. Dato under dato og titel under titel.
Avatar billede jaw Nybegynder
22. november 2004 - 14:24 #8
Hvad er linie 43, hvis du bruger min?
Avatar billede only-boy Nybegynder
22. november 2004 - 14:26 #9
if ($i++ != 0) echo '<br>';

Det er linie 43
Avatar billede jaw Nybegynder
22. november 2004 - 14:27 #10
Prøv lige at paste det hele igen som det ser ud nu :) Men en ting jeg lige undrer mig, så bruger du $i, men du har da ingen startværdi på den? Ergo vil den vel _altid_ være anderledes end 0?
Avatar billede only-boy Nybegynder
22. november 2004 - 14:29 #11
Hele filen: news.old.php ser således ud:


<?php include ('banned/banned.php'); ?>

<HTML>
<HEAD>

<TITLE>:: P e t e r ::</TITLE>
<LINK href="css/layout.css" type="text/css" rel="stylesheet">

</HEAD>

<BODY><DIV align=center><A href="http://syngre.net">
<IMG height=102 alt="Peters hjemmeside ??" src="images/layout/top.jpg" width=622 border=0></A><BR>

<TABLE cellSpacing=0 cellPadding=0 width=622 border=0>
  <TBODY>
  <TR>
    <TD class=content vAlign=top width=418>

        <DIV class=blogcontent>
<h2>Tidligere nyheder</h2>

<p>Her har du mulighed for at se tidligere nyheder skrevet af mig, da man via
forsiden kun kan finde de 2 nyeste nyheder. De er opdelt efter dato, dvs. de
ældste er øverst.</p>

<div class="hr"></div>


<table border="0" width="100%">
  <tr>
    <td width="63%">Titel</td>
    <td width="37%">Dato</td>
  </tr>
  <tr>
    <td colspan="2">&nbsp:</td>
  </tr>

<?php
include('inc.config.php');
$query = mysql_query("SELECT id,title,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news ORDER BY id DESC LIMIT 7") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<br>';
    echo '<tr>'
    echo '<td><a href="news.display.php?id='.$row['id'].'">'.$row['title'].'</a></td>';
    echo '<td>'.$row['date'].'</td>';
    echo '</tr>';

}
?>


</DIV></TD><TD class=extra vAlign=top align=left width=142>


<?php include ('includes/menu.php'); ?>


</TD></TR></TBODY></TABLE>

<IMG height=3 alt="" src="images/layout/bottom.gif" width=622 border=0><BR>

        <table><tr><td><span class="copyright">© Copyright 2004 - Det er ej tilladt at benytte tekst, billeder eller koder fra denne side, uden skriftlig tilladelse fra Peter Schrøder.</span></td></tr></table></DIV>


<br>

<p align="center"><?php include ('includes/chart.php'); ?></p>


</BODY>

</HTML>
Avatar billede only-boy Nybegynder
22. november 2004 - 14:30 #12
Hov, skal egentlig også havde fjernet det "LIMIT 7" da den må vise alle dem som er
Avatar billede jaw Nybegynder
22. november 2004 - 14:31 #13
Ah, ja...

    if ($i++ != 0) echo '<br>';
    echo '<tr>' <-- der mangler et ;
Avatar billede wtd_nielsen Nybegynder
22. november 2004 - 14:35 #14
er det mig, eller skal der ikke lige nogle klammer efter if betingelsen?
altså
if ($i++ != 0) {
    echo '<br>';
    echo '<tr>'
    echo '<td><a href="news.display.php?id='.$row['id'].'">'.$row
    .....
    }
Avatar billede jaw Nybegynder
22. november 2004 - 14:37 #15
Komme an på hvordan man bruger det

Hvis du kun vil have den ene linie efter din if til at "ske" hvis betingelsen er opfyldt fungerer det uden klammer. Hvis du vil have hele delen med som i dit eksempel, så skal der klammer...

Det lød tosset, så et eksempel:

if($i++ != 0) //det her kommer med hvis if er opfyldt
//alt hernede kommer med lige gyldigt hvad

if($i++ != 0) {
  //nu kommer alt det her kun med hvis if er opfyldt
}
Avatar billede only-boy Nybegynder
22. november 2004 - 14:39 #16
jaw --> oki doki, men det ser ud til at virke nu så tak for hjælpen.. Så skal du jo blot smide et svar :-)
Avatar billede jaw Nybegynder
22. november 2004 - 14:42 #17
Og det skulle være til at klare :) Selv tak...
Avatar billede only-boy Nybegynder
26. december 2004 - 19:43 #18
Hey  jaw *igen* hehe :-)

Måske du lige kan hjælpe, hvis du evt. kan løse det hurtigt og nemt. Har opdaget at når jeg bruger ovenstående metode laver den også tabeller den anden vej.

Se evt. her: http://www.syngre.net/news.old.php

Ved hver nyhed laver den ikke kun én ny linie nedad, der kommer også større afstand fra den første og til den sorte streg oven over.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester