Avatar billede dingkee Nybegynder
15. august 2004 - 13:47 Der er 11 kommentarer og
1 løsning

Skal have sql ind i if

Jeg er ved at optrimere min side, så jeg får så meget så muligt ind i den samme fil, og så adskiller det med nogle if sætninger.

Nu går mit spørgsmål på om jeg kan få en sql sætning ind i en if sætning??

Har noget kode her:

Her er min if sætning:
<?
if( $side == "liste" )
echo "

Inde i det skulle jeg gerne have dette:

$sql = "SELECT * FROM kategori where id < 10 ORDER BY id";
$result = mysql_query($sql) or die (mysql_error());
while($r = mysql_fetch_array($result)) {
$navn = $r["navn"];
$kat_id = $r["id"];
$vis = $r["vis"];
$under = $r["under"];

echo "&nbsp;&nbsp;<a href='index.php?id=$kat_id&uid=$kat_id'><b>$navn</b></a>Vises siden: " . $r[vis] . " <a href='admin_ret.php?side=1&id=" . $r[id] . "'>Ret</a> -  <a href='admin_ret.php?side=2&id=" . $r[id] . "'>Slet</a><br> ";
Avatar billede arne_v Ekspert
15. august 2004 - 13:57 #1
Er det ikke bare:

if(...) {
  ...
}

altså hele kode blokken inden i { } ?
Avatar billede dingkee Nybegynder
15. august 2004 - 14:02 #2
Når jeg gør det får jeg denne fejl:
Parse error: parse error, unexpected '{', expecting ',' or ';' in /admin_ret.php on line 201
Avatar billede arne_v Ekspert
15. august 2004 - 14:19 #3
Må vi se koden med { } ?

Det burde være OK - se f.eks. http://www.w3schools.com/php/php_conditionals.asp
Avatar billede dingkee Nybegynder
15. august 2004 - 14:35 #4
Her er hele koden:

<?
if( $side == "liste" )
echo {
$sql = "SELECT * FROM kategori where id < 10 ORDER BY id";
$result = mysql_query($sql) or die (mysql_error());
while($r = mysql_fetch_array($result)) {
$navn = $r["navn"];
$kat_id = $r["id"];
$vis = $r["vis"];
$under = $r["under"];

echo "&nbsp;&nbsp;<a href='index.php?id=$kat_id&uid=$kat_id'><b>$navn</b></a>Vises siden: " . $r[vis] . " <a href='admin_ret.php?side=1&id=" . $r[id] . "'>Ret</a> -  <a href='admin_ret.php?side=2&id=" . $r[id] . "'>Slet</a><br> ";

      $sql1 = mysql_query("SELECT * FROM kategori WHERE id > 9 AND under = $r[id]");
      while ($r1 = mysql_fetch_array($sql1)) {
      echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;" . $r1[navn] . "</a> <a href='admin_ret.php?side=1&id=" . $r1[id] . "'>Ret</a> -  <a href='admin_ret.php?side=2&id=" . $r1[id] . "'>Slet</a><br>";
      }
    }
  }
;
else
;
?>
Avatar billede arne_v Ekspert
15. august 2004 - 14:37 #5
<?
if( $side == "liste" )
echo {
echo {
$sql = "SELECT * FROM kategori where id < 10 ORDER BY id";
...

skal ihvertfald være

<?
if( $side == "liste" ) {
echo {
$sql = "SELECT * FROM kategori where id < 10 ORDER BY id";
...
Avatar billede Slettet bruger
15. august 2004 - 14:43 #6
arne_v: Mener du ikke

if( $side == "liste" ) {
  $sql = "SELECT * FROM kategori where id < 10 ORDER BY id";

dvs uden echo først?
Avatar billede arne_v Ekspert
15. august 2004 - 14:48 #7
Jo.

Der gik vist totalt kage i den copy paste.
Avatar billede dingkee Nybegynder
15. august 2004 - 14:58 #8
Ja, så virker det...

Mange tak for det... Hvad gør vi med point??
Avatar billede arne_v Ekspert
15. august 2004 - 15:03 #9
Det er jo din beslutning.
Avatar billede Slettet bruger
15. august 2004 - 15:20 #10
Jeg er ganske overbevist om, at hvis Arne bare havde nået at se et par sekunder ekstra på den kode, så havde han selv fanget fejlen, så bare lad ham få alle pointene.
Avatar billede arne_v Ekspert
15. august 2004 - 15:23 #11
så ligger jeg svar
Avatar billede arne_v Ekspert
15. august 2004 - 15:25 #12
Men jeg havde slet ikke set at der var noget galt.

Først skrev jeg:

<?
if( $side == "liste" )
echo {
...

skal ihvertfald være

<?
if( $side == "liste" ) {
...

og så copy pastede jeg 2 linier i.s.f. 1 linie så det blev:

<?
if( $side == "liste" )
echo {
echo {
$sql = "SELECT * FROM kategori where id < 10 ORDER BY id";
...

skal ihvertfald være

<?
if( $side == "liste" ) {
echo {
$sql = "SELECT * FROM kategori where id < 10 ORDER BY id";
...
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