Avatar billede gizmo1234 Nybegynder
04. oktober 2003 - 11:31 Der er 6 kommentarer og
1 løsning

extract problem

Hej.
Jeg har lidt problemer med et nyhedssystem jeg er ved at lave.
Når man skriver noget tekst, og trykker tilføj, går den ind på vis.php siden, og den viser også designet på siden, men den overfører ikke teksten.
Den skriver følgende:

Warning: extract() expects first argument to be an array in /usr/www/psychokatten_dk/public_html/new/vis.php on line 14

Her er teksten som står i vis.php filen:

<html>
<head>
</head>
<body bgcolor="#EFEFEF">

<font face="verdana" size="1">
<left>

<?php
require("setup.php");
$resultat = mysql_query("select navn, mail, overskrift, tekst, dato from news order by dato DESC")

while ($raekke = mysql_fetch_array($resultat)or die(mysql_error()); {
  extract($raekke);

echo "

<table width=500 height=18 border=0 cellpadding=1 cellspacing=1 bgcolor=#000000>
  <tr>
    <td width=97 bgcolor=#FFFFFF><table width=495 border=0 cellpadding=1 cellspacing=0 bgcolor=#000000>
        <tr>
          <td width=352 height=18 bgcolor=#FFFFFF><font face=verdana size=1>$overskrift</td>
          <td width=139 bgcolor=#FFFFFF><font face=verdana size=1>$dato</td>
        </tr>
      </table></td>
  </tr>
</table>
<br>
<table width=500 height=355 border=0 cellpadding=1 cellspacing=1 bgcolor=#000000>
  <tr>
    <td width=97 valign=top bgcolor=#FFFFFF><iframe name=tekstboks width=100% height=300 border=0 frameborder=0 src=tekst.php></iframe></td>
  </tr>
</table>
<br>
<table width=250 height=18 border=0 cellpadding=1 cellspacing=1 bgcolor=#000000>
  <tr>
    <td width=250 height=18 bgcolor=#FFFFFF><font size=1 face=Verdana, Arial, Helvetica, sans-serif>Skrevet
      af: <a href=mailto:$mail>$navn</a></font></td>
  </tr>
</table><br><br>";

}
mysql_close($conn);
?>

I kan prøve at gå ind på siden:
http://www.psychokatten.dk/new/add.php, og skrive noget tekst, og trykke tilføj, så kan i se hvad der sker...
Avatar billede ttc Nybegynder
04. oktober 2003 - 11:41 #1
prøv at kigge her : http://dk.php.net/manual/en/function.extract.php

[snip]
If you're using extract with mysql_fetch_assoc, and only grabbing one line you can nestle it:
extract(mysql_fetch_assoc(mysql_query("SELECT * FROM table")));

If you're doing this in a while statement it will fail.  Using something like...

$mysql_data = mysql_query("SELECT * FROM everywhere");
while (extract(mysql_fetch_assoc($mysql_data))) {
  .. }

...will not work, while using...

while ($row = mysql_fetch_assoc($mysql_data)) {
  extract($row);
  ...
}

...will.  The only reason I find as an explination for this is annoyance
[snip]
Avatar billede gizmo1234 Nybegynder
04. oktober 2003 - 11:46 #2
Hmm, har prøvet med dette nu:

<html>
<head>
</head>
<body bgcolor="#EFEFEF">

<font face="verdana" size="1">
<left>

<?php
require("setup.php");

while ($row = mysql_fetch_assoc('select navn, mail, overskrift, tekst, dato from news order by dato DESC')or die(mysql_error()); {
  extract($row);
}
echo "

<table width=500 height=18 border=0 cellpadding=1 cellspacing=1 bgcolor=#000000>
  <tr>
    <td width=97 bgcolor=#FFFFFF><table width=495 border=0 cellpadding=1 cellspacing=0 bgcolor=#000000>
        <tr>
          <td width=352 height=18 bgcolor=#FFFFFF><font face=verdana size=1>$overskrift</td>
          <td width=139 bgcolor=#FFFFFF><font face=verdana size=1>$dato</td>
        </tr>
      </table></td>
  </tr>
</table>
<br>
<table width=500 height=355 border=0 cellpadding=1 cellspacing=1 bgcolor=#000000>
  <tr>
    <td width=97 valign=top bgcolor=#FFFFFF><iframe name=tekstboks width=100% height=300 border=0 frameborder=0 src=tekst.php></iframe></td>
  </tr>
</table>
<br>
<table width=250 height=18 border=0 cellpadding=1 cellspacing=1 bgcolor=#000000>
  <tr>
    <td width=250 height=18 bgcolor=#FFFFFF><font size=1 face=Verdana, Arial, Helvetica, sans-serif>Skrevet
      af: <a href=mailto:$mail>$navn</a></font></td>
  </tr>
</table><br><br>";

}
mysql_close($conn);
?>


Men nu skriver den:

Parse error: parse error in /usr/www/psychokatten_dk/public_html/new/vis.php on line 12
Avatar billede gizmo1234 Nybegynder
04. oktober 2003 - 11:51 #3
<html>
<head>
</head>
<body bgcolor="#EFEFEF">

<font face="verdana" size="1">
<left>

<?php
require("setup.php");


$mysql_data = mysql_query("SELECT navn, mail, overskrift, tekst, dato from news order by dato DESC");

while ($row = mysql_fetch_assoc($mysql_data)) {
  extract($row);

echo "

<table width=500 height=18 border=0 cellpadding=1 cellspacing=1 bgcolor=#000000>
  <tr>
    <td width=97 bgcolor=#FFFFFF><table width=495 border=0 cellpadding=1 cellspacing=0 bgcolor=#000000>
        <tr>
          <td width=352 height=18 bgcolor=#FFFFFF><font face=verdana size=1>$overskrift</td>
          <td width=139 bgcolor=#FFFFFF><font face=verdana size=1>$dato</td>
        </tr>
      </table></td>
  </tr>
</table>
<br>
<table width=500 height=355 border=0 cellpadding=1 cellspacing=1 bgcolor=#000000>
  <tr>
    <td width=97 valign=top bgcolor=#FFFFFF><iframe name=tekstboks width=100% height=300 border=0 frameborder=0 src=tekst.php></iframe></td>
  </tr>
</table>
<br>
<table width=250 height=18 border=0 cellpadding=1 cellspacing=1 bgcolor=#000000>
  <tr>
    <td width=250 height=18 bgcolor=#FFFFFF><font size=1 face=Verdana, Arial, Helvetica, sans-serif>Skrevet
      af: <a href=mailto:$mail>$navn</a></font></td>
  </tr>
</table><br><br>";

}
mysql_close($conn);
?>

Så skriver den ingen fejl, men den viser hellere ikke noget på siden, hvad sker der?
Avatar billede gizmo1234 Nybegynder
04. oktober 2003 - 12:00 #4
Yes, fik det til at virke nu! :)
Mange tak ttc
Avatar billede ttc Nybegynder
04. oktober 2003 - 12:00 #5
du bruger en echo til at skrive det hele ude så være gang du har en variable skal du huske at skrive ".$var."

dette løser måske dit problen
Avatar billede gizmo1234 Nybegynder
04. oktober 2003 - 12:01 #6
Nej, flyttede { i denne linie:

while ($row = mysql_fetch_assoc($mysql_data)) {
  extract($row);


Fra efter mysql_data ned til efter row); så virkede det :)
Takker
Avatar billede ttc Nybegynder
04. oktober 2003 - 12:02 #7
dvsl. jeg sender en regning *gg*
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