Avatar billede drj68 Nybegynder
26. maj 2003 - 16:48 Der er 24 kommentarer og
1 løsning

Problemer med php!!

Jeg er nybegynder til php, men kan ikke rigtig forstå at når jeg udskriver denne kode så bliver hele siden bare blank!! der burde være tabeller!! hvordan kan det være??

Siden består af:

index.php
detaljer.php
Avatar billede drj68 Nybegynder
26. maj 2003 - 16:49 #1
Index.php ser sådan ud:

<html>
<head>min første php side</head>
<body>
<?

$conn = mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db("lol") or die (mysql_error());

$sqlstr = mysql_query("select * from tabel")  or die (mysql_error());

while($row = mysql_fetch_array($sqlstr)) {
$varenr = $row["varenr"];
$varenavn = $row["varenavn"];
echo " <a href=\"detaljer.php?nr=$varenr\">$varenavn</a><br>";
}

mysql_close($conn);

?>
</body>
</html>
Avatar billede drj68 Nybegynder
26. maj 2003 - 16:50 #2
og detaljer ser sådan ud... og det er den der bliver blank!!!

<?
$nr = $_REQUEST["nr"];

$conn = mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db("lol") or die (mysql_error());

$sqlstr = mysql_query("select * from tabel where \"varenr = $nr\"")  or die (mysql_error());

while($row = mysql_fetch_array($sqlstr)) {
$navn
?>

<html>
<head>
<title><? echo $navn; ?> </title>
</head>´
<body background="C0C0C0">
<table border="1" cellspacing="1" width="88%" id="AutoNumber1" height="165">
  <tr>
    <td width="65%" height="9" colspan="3">Tilbehør</td>
  </tr>
  <tr>
    <td width="22%" height="4"><b><font size="2">Model</font></b></td>
    <td width="26%" height="4"><b><font size="2">Tekst</font></b></td>
    <td width="17%" height="4"><b><font size="2">Billed</font></b></td>
  </tr>
  <tr>
    <td width="22%" valign="top" height="45"></td>
    <td width="26%" valign="top" height="45"></td>
    <td width="17%" valign="top" height="45"></td>
  </tr>
  <tr>
    <td width="106%" valign="top" colspan="3" height="1">
      <hr color="#C0C0C0" size="1">
    </td>
  </tr>
  <tr>
    <td width="22%" valign="top" height="45"></td>
    <td width="26%" valign="top" height="45"></td>
    <td width="17%" valign="top" height="45"></td>
  </tr>
  <tr>
    <td width="106%" valign="top" height="19" colspan="3">
      <hr color="#C0C0C0" size="1">
    </td>
  </tr>
  <tr>
    <td width="22%" valign="top" height="19"></td>
    <td width="26%" valign="top" height="19"></td>
    <td width="17%" valign="top" height="19"></td>
  </tr>
  <tr>
    <td width="106%" valign="top" height="19" colspan="3">
      <hr color="#C0C0C0" size="1">
    </td>
  </tr>
  <tr>
    <td width="22%" valign="top" height="19"></td>
    <td width="26%" valign="top" height="19"></td>
    <td width="17%" valign="top" height="19"></td>
  </tr>
  <tr>
    <td width="106%" valign="top" height="19" colspan="3">
      <hr color="#C0C0C0" size="1">
    </td>
  </tr>
</table>
</body>
</html>
<?
}
mysql_close($conn);
?>
Avatar billede ohmish Nybegynder
26. maj 2003 - 16:55 #3
1) brug dette øverst:
if ($_GET['nr']) { $nr = $_GET['nr']; else { $nr = $_POST['nr']; }

2) mysql_query("select * from tabel where \"varenr = $nr\"") 
er forkert.

ret til:
mysql_query("select * from tabel where varenr = '$nr' ")
Avatar billede ohmish Nybegynder
26. maj 2003 - 16:58 #4
du printer jo heller ik rigtig noget fra databasen ud i detaljer.php ?

som jeg ser det har du kun en skabelon (tabel). uden værdier.
Avatar billede jakoba Nybegynder
26. maj 2003 - 17:06 #5
??? en løkke der udskriver et helt html-dokument for hver gennemgang:

while($row = mysql_fetch_array($sqlstr)) {
$navn      // et variabelnavn uden at sige noget om hvad det er og hvad det skal bruges til
?>

<html>        <!-- her starter HTML dokument for denne løkke!  skod html kode -->
<head>
...

Husk at den fil du genererer og sender til browseren skal være en gyldig HTML-fil. Test med browserens "show source" hvad du egentlig sender.

mvh JakobA
Avatar billede drj68 Nybegynder
26. maj 2003 - 17:07 #6
hmm det virker stadig ikke!
jeg bruger phpmyadmin!! og der har jeg oprettet de databaser der skal oprettes
Avatar billede drj68 Nybegynder
26. maj 2003 - 17:13 #7
---> JakobA
1)Er der noget galt med: while($row = mysql_fetch_array($sqlstr)) {
$navn ?>  ??
Sorry du må lige bære over med mig!! har ikke gjort så meget i php endnu :)


2) Skod html kode?? kan ikke helt se hvorfor den er skod!!
Avatar billede jakoba Nybegynder
26. maj 2003 - 17:21 #8
$navn ?>  ??
  jae, hvad forventer du der kommer ud af at skrive det variabelnavn på det sted?  Såvidt jeg kan se skulle det blive totalt ignoreret.


selve while linien er fin.
while gentager det der skrives indeni while løkken, så hvis løkken gentages bliver dit dokument til

<html>
...
</html>
<html>
...
</html>
osv osv.
Det er ikke et korrekte format for et html-dokument. der skal kun være EEN <html> kommando i toppen og tilsidst EEN </HTML> kommando til allersidst.

mvh JakobA
Avatar billede ohmish Nybegynder
26. maj 2003 - 17:21 #9
prøv at rette detaljer.php til:

<?php
if ($_GET['nr']) { $nr = $_GET['nr']; else { $nr = $_POST['nr']; }
$conn = mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db("lol") or die (mysql_error());

$sqlstr = mysql_query("select * from tabel where varenr = '$nr' ")  or die (mysql_error());
$row = mysql_fetch_array($sqlstr);
$navn = $row['feltet_fra_databasen'];
?>

<html>
<head>
<title><?php echo $navn; ?></title>
</head>´
<body background="C0C0C0">
<table border="1" cellspacing="1" width="88%" id="AutoNumber1" height="165">
  <tr>
    <td width="65%" height="9" colspan="3">Tilbehør</td>
  </tr>
  <tr>
    <td width="22%" height="4"><b><font size="2">Model</font></b></td>
    <td width="26%" height="4"><b><font size="2">Tekst</font></b></td>
    <td width="17%" height="4"><b><font size="2">Billed</font></b></td>
  </tr>

<?php
while($row) {
$felt1 = $row['et_felt_fra_databasen'];
$felt2 = $row['et_felt_fra_databasen'];
$felt3 = $row['et_felt_fra_databasen'];
?>
  <tr>
    <td width="22%" valign="top" height="45"> <?php echo $felt1; ?> </td>
    <td width="26%" valign="top" height="45"> <?php echo $felt1; ?> </td>
    <td width="17%" valign="top" height="45"> <?php echo $felt1; ?> </td>
  </tr>
<? } mysql_close($conn); ?>
</table>
</body>
</html>
Avatar billede ohmish Nybegynder
26. maj 2003 - 17:22 #10
hov... sidste php linie skal være:

<?php
$row = mysql_fetch_array($sqlstr); }
mysql_close($conn); ?>
Avatar billede drj68 Nybegynder
26. maj 2003 - 17:30 #11
jeg får fejl meddelsen: Parse error: parse error, unexpected T_ELSE in C:\Apache2\htdocs\minside\detaljer.php on line 2
Avatar billede drj68 Nybegynder
26. maj 2003 - 17:34 #12
$felt1 = $row['et_felt_fra_databasen'];            HVAD SKAL JEG SKRIVE HER?
$felt2 = $row['et_felt_fra_databasen'];            HVAD SKAL JEG SKRIVE HER?
$felt3 = $row['et_felt_fra_databasen'];            HVAD SKAL JEG SKRIVE HER?
Avatar billede ohmish Nybegynder
26. maj 2003 - 18:06 #13
ret linie 2 til:
if ($_GET['nr']) { $nr = $_GET['nr']; } else { $nr = $_POST['nr']; }

$felt1 = $row['et_felt_fra_databasen'];

det ska jo så være et felt fra databasen. du må vide hvilke felter du har og vil vise. ?
Avatar billede ohmish Nybegynder
26. maj 2003 - 18:07 #14
f.eks. tekst, model, billede ?
Avatar billede drj68 Nybegynder
26. maj 2003 - 18:38 #15
okay nu funger det!!
Kan du ikke lige fortælle mig hvad løkken while går ud på og hvor man bruger den?? altså kunne man ikke ligeså godt bruge echo til at udskrive disse variabler??
Avatar billede drj68 Nybegynder
26. maj 2003 - 19:44 #16
hvordan udskriver jeg $felt2 som et hyperlink?? dette felt er nemlig et billede!!

  <td width="26%" valign="top" height="45"> <?php echo $felt2; ?></td>
Avatar billede ohmish Nybegynder
26. maj 2003 - 20:05 #17
du ka sagtens bruge echo istedet for at escape php.

links ka du skrive sån her:

echo '<td valign="top"><a href="'.$felt2.'" target="_blank">'.$felt2.'</a></td>';
Avatar billede ohmish Nybegynder
26. maj 2003 - 20:09 #18
hov.. sådan her:

echo '<td valign="top"><a href="'.$felt2.'" target="_blank">'.$felt2.'</a></td>';
her skal du escape din echo når du vil printe en variabel ($), men html gåseøjne er ligemeget, fordi ved at bruge ' har du sagt til php at alt indenfor ' ' er tekst.

et alternativ:

echo "<td valign=\"top\"><a href=\"$felt2\" target=\"_blank\">$felt2</a></td>";
her behøver du ikke escape variabler. men html gåseøjne skal escapes.
Avatar billede ohmish Nybegynder
26. maj 2003 - 20:10 #19
hmm jeg gjorde det igen! SÅDAN her:

echo '<td valign="top"><a href="'.$felt2.'" target="_blank">'.$felt2.'</a></td>';
Avatar billede ohmish Nybegynder
26. maj 2003 - 20:11 #20
det er eksperten der laver ged i koden... lige efter første $felt (før gåseøjet) skal der være .' (punktum og apostrof)
Avatar billede drj68 Nybegynder
27. maj 2003 - 17:11 #21
ok jeg har fået det til at virke!!.. men jeg kunne nu godt tænke mig at vide:  hvad løkken while går ud på og hvor man bruger den?? har nemlig ikke helt fattet den :o))
Avatar billede jakoba Nybegynder
27. maj 2003 - 17:33 #22
while sætningen har formen:

while  (  betingelse )        // sålænge betingelsen er opfyldt udføres koden herefter
{                                // starter område der skal gentages
    php-kode der kan udføres
}                                // afsluttere område der skal gentages

fx:
$i = 5;
while ( $i > 0 )            // gentag sålænge $i er større end 0
{
    echo $i ."<br>";        // til eksemplet skriver vi bare værdien af $i
    $i--;                  // $i bliver mindre, 4, 3, 2, 1, 0 og tilsidst
                            // er betingelsen ikke opfyldt længere
}
echo "nu er betingelsen \$i > 0  ikke opfyldt længere.  \$i = " .$i ."<br>";

mvh JakobA
Avatar billede drj68 Nybegynder
27. maj 2003 - 18:45 #23
Tak for det JakobA!! nu forstår jeg bedre... synes altid det er svært at starte på et nyt sprog :o))

Men hvis du lige svarer så kan i 2 lige få jeres point...
Avatar billede jakoba Nybegynder
27. maj 2003 - 18:49 #24
lad ohmish få, jeg kommenterede bare.
Avatar billede drj68 Nybegynder
27. maj 2003 - 19:15 #25
ok så gør jeg det! jeg synes nu bare også du skal ha da du har forklaret mig while!!

Men tak til jeg begge to!!
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