Avatar billede cmau Nybegynder
12. april 2005 - 14:49 Der er 28 kommentarer og
1 løsning

Den nyeste skal så mellem <h1> og </h1>

Hvordan gør jeg sådan at den ting med det nyeste id kommer til at stå med <h1></h1>, når de bliver udskrevet?

Min kode er:

<?
include('sql.php');

$query = mysql_query("SELECT * FROM fuck_party WHERE status = 'over' ORDER BY id DESC") or

die(mysql_error());

while ($row = mysql_fetch_array($query)) {

echo '<a href="pictures_view_all.php?id='.$row[id].'">'.$row[date].' | '.$row[time].'<br>';

}

?>
Avatar billede ncp Nybegynder
12. april 2005 - 14:54 #1
du kunne gøre sådan her...

<?
include('sql.php');

$query = mysql_query("SELECT * FROM fuck_party WHERE status = 'over' ORDER BY id DESC") or

die(mysql_error());

$i = 0;

while ($row = mysql_fetch_array($query)) {

if ($i == 0) echo "<h1>";

echo '<a href="pictures_view_all.php?id='.$row[id].'">'.$row[date].' | '.$row[time].'<br>';

if ($i == 0) echo "</h1>";

$i == 1

}

?>
Avatar billede ncp Nybegynder
12. april 2005 - 14:55 #2
det skal være $i = 1; istedet for $i == 1 :)
Avatar billede cmau Nybegynder
12. april 2005 - 14:56 #3
Nej det der kommer ikke til at virke
Avatar billede cmau Nybegynder
12. april 2005 - 14:57 #4
Så skulle det være:

<?
include('sql.php');

$query = mysql_query("SELECT * FROM fuck_party WHERE status = 'over' ORDER BY id DESC") or die(mysql_error());

$i = 0;

while ($row = mysql_fetch_array($query)) {

$i++;

if ($i == 1) echo "<h1>";

echo '<a href="pictures_view_all.php?id='.$row[id].'">'.$row[date].' | '.$row[time].'</a>';

if ($i == 0) echo "</h1>";

echo "<br>";

}

?>
Avatar billede cmau Nybegynder
12. april 2005 - 14:58 #5
Men er der ikke noget nemmer end det?
Avatar billede ncp Nybegynder
12. april 2005 - 14:58 #6
howcome ?
Avatar billede ncp Nybegynder
12. april 2005 - 15:00 #7
altså det er jo faktisk meget nemt i forvejen...
Avatar billede Slettet bruger
12. april 2005 - 15:03 #8
Lidt mere overskkueligt: (Selvfølgelig en smagssag.... ;-) )

<?
include('sql.php');
$query = mysql_query("SELECT * FROM fuck_party WHERE status = 'over' ORDER BY id DESC") or die(mysql_error());
for ($i = 0; $row = mysql_fetch_array($query); $i++) {
  echo ((!$i) ? "<h1>" : "").'<a href="pictures_view_all.php?id='.$row[id].'">'.$row[date].' | '.$row[time].'<br>'.((!$i) ? "</h1>" : "");
}
?>
Avatar billede cmau Nybegynder
12. april 2005 - 15:04 #9
Overskuelig? :O.. ;P Synes min er nemmere
Avatar billede cmau Nybegynder
12. april 2005 - 15:05 #10
Hvis der ikke var andre måder end at bruge i++ og teste om den er li 1, så lukker, da jeg selv godt kunne den måde
Avatar billede Slettet bruger
12. april 2005 - 15:05 #11
Du ville jo på alle måder skulle tjekke op på om det er den første række du udskriver, ellers lave to udtræk hvilket ville være dumt.

Men man kunne da gøre koden lidt pænere :)

<?PHP
include('sql.php');
$i = 0;
$query = mysql_query("SELECT * FROM fuck_party WHERE status = 'over' ORDER BY id DESC") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
   
    $link = "<a href=\"pictures_view_all.php?id=$row[id]\">$row[date] | $row[time]</a>";
   
    if($i == 0) {
        echo "<h1>$link</h1>";
    } else {
        echo $link;
    }
   
    $i++;
}
?>
Avatar billede ncp Nybegynder
12. april 2005 - 15:06 #12
gartzen -> ja, den havde jeg ikke lige tænkt på :) - skal muligvis lukke <a>-tag'et igen :)
Avatar billede Slettet bruger
12. april 2005 - 15:06 #13
Hvis det er de ekstra linieskift du har, kan jeg da bare sætte dem på ? :S

<?
include('sql.php');

$query = mysql_query("SELECT * FROM fuck_party WHERE status = 'over' ORDER BY id DESC") or die(mysql_error());

for ($i = 0; $row = mysql_fetch_array($query); $i++) {

  echo ((!$i) ? "<h1>" : "").'<a href="pictures_view_all.php?id='.$row[id].'">'.$row[date].' | '.$row[time].'<br>'.((!$i) ? "</h1>" : "");

}
?>
Avatar billede Slettet bruger
12. april 2005 - 15:10 #14
Eller sådan:

<?
include('sql.php');

$query = mysql_query("SELECT * FROM fuck_party WHERE status = 'over' ORDER BY id DESC") or die(mysql_error());

$row = mysql_fetch_assoc($query);

echo '<h1><a href="pictures_view_all.php?id='.$row['id'].'">'.$row['date'].' | '.$row['time'].'</a><h1><br>';

while ($row = mysql_fetch_assoc($query)) {

  echo '<a href="pictures_view_all.php?id='.$row['id'].'">'.$row['date'].' | '.$row['time'].'<br>';

}
?>


Du har fået mange forslag nu.... :-)
Avatar billede Slettet bruger
12. april 2005 - 15:11 #15
(Dens sidste metode kan jeg IKKE anbefale!)

Hvorfor bruger du forresten mysql_fetch_array() ? Det er da overkill og helt unødvendigt. Brug istedet mysql_fetch_assoc() eller mysql_fetch_row(). (Altefter hvad du har brug for. Her et assoc.)
Avatar billede Slettet bruger
12. april 2005 - 15:27 #16
mysql_fetch_array er nemmere at arbejde med end mysql_fetch_row.
Avatar billede cmau Nybegynder
12. april 2005 - 15:28 #17
Hvad mener du med om jeg bruger mysql_fetch_array()?
Avatar billede Slettet bruger
12. april 2005 - 16:05 #18
wicez -> Læg mærke til hvad jeg skrev:
Brug istedet mysql_fetch_assoc() eller mysql_fetch_row(). (Altefter hvad du har brug for. Her et assoc.)

Det jeg mener er at man til "dagligt" brug bør bruge mysql_fetch_assoc(). Det er jo kun helt specielle tilfælde hvor man virkelig har brug for fetch_array.
Min personlige erfaring af hvor meget de 3 funktioner bliver brugt:
1. fetch_assoc
2. fetch_row
3. fetch_arry


cmau -> mysql_fetch_array() er en funktion som danner et array ud fra en række i en mysql-tabel. Det er nemmest at forklare hvad den gør, hvis man først har forstået fetch_assoc og fetch_row:

Hvis man nu fx har denne tabel:
table1
|id|field1|field2|

og laver denne query:
$query = mysql_query("SELECT * FROM table1");

og derefter smider en række ned i $row med mysql_fetch_assoc, vil $row indeholde et array med følgende keys: id, field1 og field2

Hvis du gjorde det med mysql_fetch_row, ville arrayet have følgende keys: 1, 2 og3.

Med mysql_fetch_array ville arrayet indeholde følgende keys: id, 1, field1, 2, field2 og 3.
Dermed bruger du 2 x så meget RAM + dobbelt så mange CPU-tid.


Her i starten betyder det ikke så meget. (Intet)
Men når du engang skal lave noget stort og krævende, er det godt at få det ydelsesmæssige med fra starten. I hvert fald når det er på det her plan.
Avatar billede Slettet bruger
12. april 2005 - 16:06 #19
<rettelse>
Hvis du gjorde det med mysql_fetch_row, ville arrayet have følgende keys: 0, 1 og 2.

Med mysql_fetch_array ville arrayet indeholde følgende keys: id, 0, field1, 1, field2 og 2.
</rettelse>
Avatar billede Slettet bruger
12. april 2005 - 16:11 #20
Ahh gartzen. Det var mig der klodsede lidt rundt i det :o)

Jeg tror forresten listen med hvad folk bruger hedder:

1. fetch_array
2. fetch_assoc
3. fetch_row

Selvom (næsten) alle bruger fetch_assoc's funktion, bliver fetch_array benyttet _rigtig_ mange steder.
Avatar billede Slettet bruger
12. april 2005 - 16:15 #21
wicez -> Det jeg mente var hvor meget jeg selv bruger dem :-)
Jeg er helt enig med din liste, hvis vi snakker om "alle".. De tutorials jeg har læst bruger også fetch_array().. Dårlig opdragelse ;-)
Avatar billede Slettet bruger
12. april 2005 - 17:17 #22
Det glæder mig vi er enige.. Jeg kendte egentlig ikke til fetch_assoc. Jeg troede at fetch_array gjorde det som assoc gør :o)
Avatar billede Slettet bruger
12. april 2005 - 17:19 #23
wicez -> Sådan tror jeg det er hos mange, det har jeg også selv troet engang.
Avatar billede Slettet bruger
12. april 2005 - 17:19 #24
Så er det jo dejligt at der er nogen der gider at forklare det for os uvidende :o)
Avatar billede Slettet bruger
12. april 2005 - 17:24 #25
Hehe ;-) Det er jo svært at vide andet, når alle online tutorials kun viser brugen af fetch_array().

Men det handler vel bare om at bruge en masse tid på php.net
Avatar billede Slettet bruger
12. april 2005 - 17:44 #26
Jep. Jeg har også lagt mærke til, at jeg selv er begyndt at bruge siden i stigende grad, i takt med at mine evner indenfor php er begyndt at udvikle sig.
Avatar billede cmau Nybegynder
12. april 2005 - 18:49 #27
Tusind tak for det :D Det vil jeg begynde at bruge i stedet, det eneste jeg skal gøre for at ændre det er bare at skifte fra array til assoc?
Avatar billede Slettet bruger
12. april 2005 - 18:58 #28
Yes. Hvis du kun vil tilgå dine felter i arrayet med rækken ($row) med navnene. fx $row['id'], så bør du bruge mysql_fetch_assoc();


:)
Avatar billede cmau Nybegynder
12. april 2005 - 20:40 #29
OK :)
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