Avatar billede fritter Nybegynder
17. november 2002 - 00:44 Der er 18 kommentarer og
1 løsning

Læg indhold sammen

Hejsa. Jeg er igang med at simulere et hotel, hvor det er muligt for brugerne at se leje film over lokal netværket. Jeg har oprettet en MySQL database, hvor jeg har "vaerelse","dato/tid","pris" og "ydelse". Hvis nu en bruger ser flere film i løbet af et ophold, så skal den samlede pris skrives udskrives. Grundideen er, at man fra receptionens side, skal kunne skrive værelses nummeret i et textfelt og derefter se hvilke film brugeren har set, hvornår han har set dem og hvad de koster stykket. Derefter trykker de på en knap "Udskriv" og derefter kommer den samlede regning for det pågældende værelse. Jeg har fået lavet det meste, men jeg mangler at få lavet funktionen der udskriver det samlede beløb. Er der nogen som lige gider kaste et blik på min kode, og fortælle mig hvor fejlen er?
Desuden har jeg sikret mig, at alt er skrevet med småt i databasen, såvel som i kildekoden.
<html>
<body>

<?
if($soeg){

    $db = mysql_connect("127.0.0.1", "root");
    mysql_select_db("Account",$db);

    $foresp = mysql_query("SELECT * FROM hotel WHERE vaerelse = '$query'");
 
    echo mysql_num_rows($foresp)." Resultat(er) fundet<BR><BR>";

    while($data=mysql_fetch_array($foresp)){
      echo "Værelse    : $data[0]<BR>";
      echo "Dato og Tid : $data[1]<BR>";
      echo "Pris i kr.  : $data[2]<BR>";
      echo "Ydelse      : $data[3]<BR><BR><BR>";
    }
    echo "<FORM METHOD=POST ACTION=$PHP_SELF>";
    echo "<INPUT TYPE=SUBMIT VALUE=Tilbage>\t";
        echo "<INPUT TYPE=HIDDEN VALUE=$query>";
        echo "<INPUT TYPE=SUBMIT NAME=Slet VALUE=Slet>\t";
    echo "<INPUT TYPE=SUBMIT NAME=Print VALUE=Udskriv>";

//---------------------------------------------------------------------- 
//---------------------SLETNING AF DATABASE-----------------------------
//---------------------------------------------------------------------- 

  }elseif ($Slet) {
   
    $db = mysql_connect("127.0.0.1", "root");
        mysql_select_db("Account",$db);
     
    echo "Databasen er nu slettet";
   
   
      echo "<FORM METHOD=POST ACTION=$PHP_SELF>";   
      echo "<INPUT TYPE=SUBMIT VALUE=Tilbage>";

    mysql_query("DELETE FROM hotel WHERE vaerelse = '$query'");

//----------------------------------------------------------------------
//-----------------Udskrivning af det samlede beløb---------------------
//----------------------------------------------------------------------
 
}elseif ($Print){
      $db = mysql_connect("127.0.0.1", "root");
        mysql_select_db("Account",$db);

$result=mysql_query("SELECT SUM(pris) AS samlet FROM hotel WHERE vaerelse = '$query'");
$row=mysql_fetch_array($result);

echo $row["samlet"];


echo "<INPUT TYPE=SUBMIT NAME=Print VALUE=Print Onclick=print()>";
echo "<FORM METHOD=POST ACTION=$PHP_SELF>";   
echo "<INPUT TYPE=SUBMIT VALUE=Tilbage>";   


//----------------------------------------------------------------------

}else{
?>
    <FORM METHOD=POST ACTION=<?echo $PHP_SELF;?>>
      Indtast Værelses Nummer
      <INPUT TYPE=TEXT  NAME="query">
      <INPUT TYPE=SUBMIT NAME="soeg" VALUE=Søg>
      <INPUT TYPE=Reset  VALUE=Nulstil>
    </FORM>
<?
  }
?>     
  </body>
</html>
Avatar billede Slettet bruger
17. november 2002 - 04:17 #1
Har et bud!
Det kunne nok skyldes at rækken pris er af typen varchar eller text (eller en anden streng type).
så gå det ikke at "select sum(pris) from whatever";
Du skal nok ændre den rækkes type til integer eller float!
Avatar billede fritter Nybegynder
17. november 2002 - 10:47 #2
Nej. pris var af typen int. Nu prøvede jeg at ændre den til float, double og tinyint, men intet hjalp.
Avatar billede fritter Nybegynder
17. november 2002 - 11:25 #3
Er der slet ikke nogen som lige kan se løsningen på mit probelm?
Avatar billede fritter Nybegynder
17. november 2002 - 11:40 #4
problem!!
Avatar billede Slettet bruger
17. november 2002 - 14:31 #5
prøv:
$sql ="SELECT SUM(pris) AS samlet FROM hotel WHERE vaerelse = '$query'";
echo $sql;
$result=mysql_query($sql);
$row=mysql_fetch_array($result);

Hvad får du af fejlmeddelelse?
echo $row["samlet"];
Avatar billede fritter Nybegynder
17. november 2002 - 17:45 #6
Hmmm. Jeg får ikke nogen fejlmeddelelse, men tilgengæld skriver den følgende ud på skærmen : SELECT SUM(pris) AS samlet FROM hotel WHERE vaerelse = ''
Avatar billede fritter Nybegynder
17. november 2002 - 17:47 #7
Og så min Print og tilbage knap
Avatar billede fritter Nybegynder
17. november 2002 - 17:50 #8
Jeg ændrede den nu til :
$sql =mysql_query("SELECT SUM(pris) AS samlet FROM hotel WHERE vaerelse = '$query'");
echo $sql;
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
echo $row["samlet"];
Og får nu fejlen :

Resource id #2
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmer\easyphp\www\index.php on line 54
Avatar billede Slettet bruger
17. november 2002 - 17:53 #9
Din fejl er:
        echo "<INPUT TYPE=HIDDEN VALUE=$query>";
Dette skal være
echo "<INPUT TYPE=HIDDEN VALUE=$query name=query>";
Avatar billede fritter Nybegynder
17. november 2002 - 18:00 #10
Jeg får stadig denne fejl : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmer\easyphp\www\index.php on line 54
Avatar billede Slettet bruger
17. november 2002 - 18:02 #11
Dette skulle du ALDRIG have gjort:
$sql =mysql_query("SELECT SUM(pris) AS samlet FROM hotel WHERE vaerelse = '$query'");
echo $sql;
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
echo $row["samlet"];
Avatar billede Slettet bruger
17. november 2002 - 18:02 #12
Ret det og så er jeg næsten sikker på at det virker efter hensigten!
Avatar billede fritter Nybegynder
17. november 2002 - 18:13 #13
Jeg må desværre skuffe dig. Jeg får nu igen fejlen :Resource id #2
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmer\easyphp\www\index.php on line 54

Jeg smider lige koden op, så kan du se hvor det går galt

<html>
<body>

<?
if($soeg){

    $db = mysql_connect("127.0.0.1", "root");
    mysql_select_db("Account",$db);

    $foresp = mysql_query("SELECT * FROM hotel WHERE vaerelse = '$query'");
 
    echo mysql_num_rows($foresp)." Resultat(er) fundet<BR><BR>";

    while($data=mysql_fetch_array($foresp)){
      echo "Værelse    : $data[0]<BR>";
      echo "Dato og Tid : $data[1]<BR>";
      echo "Pris i kr.  : $data[2]<BR>";
      echo "Ydelse      : $data[3]<BR><BR><BR>";
    }
    echo "<FORM METHOD=POST ACTION=$PHP_SELF>";
    echo "<INPUT TYPE=SUBMIT VALUE=Tilbage>\t";
        echo "<INPUT TYPE=HIDDEN VALUE=$query name=query>";
        echo "<INPUT TYPE=SUBMIT NAME=Slet VALUE=Slet>\t";
    echo "<INPUT TYPE=SUBMIT NAME=Print VALUE=Udskriv>";

//---------------------------------------------------------------------- 
//---------------------SLETNING AF DATABASE-----------------------------
//---------------------------------------------------------------------- 

  }elseif ($Slet) {
   
    $db = mysql_connect("127.0.0.1", "root");
        mysql_select_db("Account",$db);
     
    echo "Databasen er nu slettet";
   
   
      echo "<FORM METHOD=POST ACTION=$PHP_SELF>";   
      echo "<INPUT TYPE=SUBMIT VALUE=Tilbage>";

    mysql_query("DELETE FROM hotel WHERE vaerelse = '$query'");

//----------------------------------------------------------------------
//-----------------Udskrivning af det samlede beløb---------------------
//----------------------------------------------------------------------
 
}elseif ($Print){
      $db = mysql_connect("127.0.0.1", "root");
        mysql_select_db("Account",$db);

$sql =mysql_query("SELECT SUM(pris) AS samlet FROM hotel WHERE vaerelse = '$query'");
echo $sql;
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
echo $row["samlet"];


echo "<INPUT TYPE=SUBMIT NAME=Print VALUE=Print Onclick=print()>";
echo "<FORM METHOD=POST ACTION=$PHP_SELF>";   
echo "<INPUT TYPE=SUBMIT VALUE=Tilbage>";   


//----------------------------------------------------------------------

}else{
?>
    <FORM METHOD=POST ACTION=<?echo $PHP_SELF;?>>
      Indtast Værelses Nummer
      <INPUT TYPE=TEXT  NAME="query">
      <INPUT TYPE=SUBMIT NAME="soeg" VALUE=Søg>
      <INPUT TYPE=Reset  VALUE=Nulstil>
    </FORM>
<?
  }
?>     
  </body>
</html>
Avatar billede Slettet bruger
17. november 2002 - 18:16 #14
$sql =mysql_query("SELECT SUM(pris) AS samlet FROM hotel WHERE vaerelse = '$query'");
echo $sql;
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
echo $row["samlet"];

Skal være:
$sql = "SELECT SUM(pris) AS samlet FROM hotel WHERE vaerelse = '$query'";
echo $sql;
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
echo $row["samlet"];
Avatar billede fritter Nybegynder
17. november 2002 - 18:44 #15
Nu får jeg teksten : "SELECT SUM(pris) AS samlet FROM hotel WHERE vaerelse = '100'80" skrevet ud på skærmen
Avatar billede Slettet bruger
17. november 2002 - 19:01 #16
80 er den samlede pris hvor vaerelse='100'!
fjern linien: "echo $sql;"
og så virker skidtet som du vil ha' det til!
Avatar billede fritter Nybegynder
17. november 2002 - 19:10 #17
FANTASTISK!!!!! Nu virker det perfekt. Mange tusind tak. Det er fandme et vidunderligt forum dette her!!!
Kan du ikke lige give mig et svar, så jeg kan tildele dig nogle point?
Avatar billede Slettet bruger
17. november 2002 - 19:23 #18
seføli!
Avatar billede fritter Nybegynder
17. november 2002 - 19:24 #19
Værd så artig!!!
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