Avatar billede danic Nybegynder
21. januar 2009 - 15:28 Der er 6 kommentarer og
2 løsninger

Mysql forespørgsel med php5

Jeg har her et gammel scripts som virker under php4, kan i oplyse mig om dette er en korrekt måde at hente data på ud fra et php5 perspektiv? f.eks. bør $headline altid være $_server['headline'] osv.?

<?
$result2 = mysql_query("select * from news where newsid='$newsid'");
while($row = mysql_fetch_array($result2)) {
    $headline    = $row[headline];
    $newsbody        = $row[newsbody];
}
?>
<?php echo "Overskriften"; ?>
<p><?=$headline?></p>
<?php echo "Nyheden"; ?>
<p><?=$newsbody?></p>
Avatar billede arne_v Ekspert
21. januar 2009 - 15:35 #1
mysql extension er stadig valid i PHP 5 omend der er andre muligheder f.eks. mysqli extension.

Det er absolut paenest at bruge '' omkring array indexes af type string.

Det virker mystisk at hente $headline og $newsbody i en while og kun udskrive de sidste.

Jeg kan ikek se hvor $_SERVER['headline'] kommer ind i billedet henne.
Avatar billede danic Nybegynder
21. januar 2009 - 15:40 #2
Jeg tænke på om det er bedre at skrive:

$result2 = mysql_query("select * from news where newsid='$newsid'");
while($row = mysql_fetch_array($result2)) {
    $_SERVER['headline'] = $row['headline'];
    $_SERVER['newsbody'] = $row['newsbody'];
}
<p><?=$_SERVER['headline'];?></p>
<p><?=$_SERVER['newsbody'];?></p>

Er der en bedre både en while? (der vil altid kun være et hit)
Avatar billede arne_v Ekspert
21. januar 2009 - 16:02 #3
$_SERVER er et array som bliver sat af PHP.

http://us2.php.net/manual/en/reserved.variables.server.php

Du skal ikke bruge det til dine data.
Avatar billede danic Nybegynder
21. januar 2009 - 16:05 #4
ah.. tak for linket.
Avatar billede hmortensen Nybegynder
21. januar 2009 - 16:07 #5
Glem det der $_SERVER noget, det er nogle pre-definerede variabler som du ikke skal blande sammen med dine egne.

Hvis der kun er et hit, kan du gøre sådan her:

$result2 = mysql_query("select * from news where newsid='$newsid'");
if (mysql_num_rows($result2) == 1)
{
  $row = mysql_fetch_assoc($result2);
  echo "<p>" . $row['headline'] . "</p>";
  echo "<p>" . $row['newsbody'] . "</p>";
}
else
{
  echo "Ugyldigt nyhedsid!";
}


Brug altid <?php ?> og ikke <? ?>, da det ikke vil virke hvis short tags ikke er tilladt (hvilket kan give problemer med XML tags).
Avatar billede danic Nybegynder
21. januar 2009 - 16:20 #6
Fint fint!! I må gerne smide et svar :-)
Avatar billede arne_v Ekspert
21. januar 2009 - 16:37 #7
svar
Avatar billede hmortensen Nybegynder
21. januar 2009 - 16:43 #8
Svar
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
Computerworld tilbyder specialiserede kurser i database-management

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