Avatar billede matz Nybegynder
06. februar 2007 - 20:37 Der er 18 kommentarer og
1 løsning

antal poster i databasen

Hvis jeg har 10 bøger af den samme slags og 3 af dem er udlånt. Så har jeg 7 tilbage.

Hvordan laver jeg det i kode? Er der en som kan vise mig et eksempel?
Avatar billede kalp Novice
06. februar 2007 - 20:40 #1
select count(bog) as antal from Bøger where Udlånt <> 'Udlånt';

nu er det ren sql det der.. uden at vide hvad dine tabeller hedder, men du fik ven ideen der
Avatar billede matz Nybegynder
06. februar 2007 - 20:42 #2
Kan det kun laves i sql på den måde ved at rette til mine egne tabeller?
Avatar billede kalp Novice
06. februar 2007 - 20:42 #3
nej du skal bare rette sql'en så den passer med navnene på din kolonner og tabel
Avatar billede kalp Novice
06. februar 2007 - 20:43 #4
det giver mening jeg bare skriver et eksempel.. jeg desværre ikke synsk så kan ikke helt regne ud hvad dine kolonner og tabel hedder.. hvordan db'en ser ud.

og istedet for at spørge først så smed jeg bare et eksempel på sql'en.. den der henter alt fra db'en som ikke er udlånt og gemmes i "antal" og så har du dit tal
Avatar billede matz Nybegynder
06. februar 2007 - 20:56 #5
Ok du får lige database her:

CREATE TABLE `boger` (
  `id` int(11) NOT NULL auto_increment,
  `bnavn` varchar(255) NOT NULL default '',
  `forfatter` varchar(255) NOT NULL default '',
  `txt` text NOT NULL,
  `isbn` varchar(255) NOT NULL default '',
  `katid` int(11) NOT NULL default '0',
  `billedesti` varchar(255) NOT NULL default '',
  `hits` varchar(255) NOT NULL default '',
  `antal` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=11 ;


CREATE TABLE `udlaan` (
  `id` int(11) NOT NULL auto_increment,
  `bid` varchar(255) NOT NULL default '',
  `dato` varchar(255) NOT NULL default '',
  `bogid` varchar(255) NOT NULL default '',
  `antal` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;

Kan du vise mig det udfra de oplysninger? :)
Avatar billede matz Nybegynder
06. februar 2007 - 20:56 #6
Jeg er lidt lost på det lige nu
Avatar billede kalp Novice
06. februar 2007 - 21:15 #7
hvilken kolonne fortæller dig om noget er udlånt?
Avatar billede matz Nybegynder
06. februar 2007 - 21:24 #8
Det gør "udlaan".
Avatar billede kalp Novice
06. februar 2007 - 21:27 #9
ja det er så en tabel..

og det fortæller mig ikke hvordan du ved om den er udlånt.

hvis den ikke er udlånt så findes der heller ikke en række i udlaan tabellen? eller?
Avatar billede matz Nybegynder
06. februar 2007 - 21:31 #10
Altså når jeg skal låne en bog så hiver den id fra boger og over i udlaan. Der kommer så noget i bogid, dato og id. På den måde ved jeg når en bog er lånt.
Avatar billede kalp Novice
06. februar 2007 - 21:36 #11
SELECT count(forfatter) as antal FROM boger INNER JOIN udlaan ON boger.id = udlaan.bid

burde være den
Avatar billede matz Nybegynder
06. februar 2007 - 21:39 #12
Ok, hvordan ligger jeg den så ind i koden? Jeg har har ikke haft med den type sql at gøre før.  Men foregår det ligesom hvis man skal vise med en while?
Avatar billede kalp Novice
06. februar 2007 - 21:43 #13
ja:)

og du kan desuden være din sql skal se sådan her ud.
SELECT count(id) as antal FROM boger INNER JOIN udlaan ON boger.id = udlaan.bid
group by id;
Avatar billede matz Nybegynder
06. februar 2007 - 21:53 #14
Kan du lige hjælpe mig med at få den ind:

Her er min kode og jeg har indsat den, ved bare ik om det er rigtigt. Men den melder fejl:

<?php
include('connect.php');
?>

<?php

$result1 = mysql_query("SELECT * FROM boger WHERE id='".$_GET['id']."'");
mysql_query("UPDATE boger SET hits=hits+1  WHERE id='".$_GET['id']."'") or die(mysql_error());

while ($row1 = mysql_fetch_array($result1, MYSQL_ASSOC)) {
?>

<?php
/*
if($_GET['laant'] == "2"){

$tjek = mysql_query("SELECT * FROM udlaan WHERE bid = '".$time."'") or die (mysql_error());
$antal = mysql_num_rows($tjek);

if($antal >=1){
    echo "<font size=1 face=Verdana color=#000000><b>Bogen er allerede udlånt!</b></font></b>";
 
}else{ */

if($_GET['udlaan'] == '1')
{
    echo '<font size=1 face=Verdana color=#000000><b>Bogen er nu lånt!</b></font>';
   
    $time = time();
   
    $result2 = mysql_query("INSERT INTO udlaan (dato, bogid) VALUES ('".$time."', '".$_GET['id']."')");
    echo $result2;
}


?>
<?php
$result3 = mysql_query (SELECT count(id) as antal FROM boger INNER JOIN udlaan ON boger.id = udlaan.bid
group by id);

while ($row2 = mysql_fetch_array($result3, MYSQL_ASSOC)) {

?>

<table class="table" width="400" border="0">
  <tr>
    <td valign="top" ><b><?php echo $row1['bnavn']; ?> <img src="<?php echo $row1['billedesti']; ?>" hspace="4" border="1" align="right" /></b><br />
    Forfatter: <?php echo $row1['forfatter']; ?><br />
    <br /></td>

  </tr>
  <tr>
    <td><br /><?php echo nl2br(htmlspecialchars($row1['txt'])) ?></td>

  </tr>
  <tr>
    <td><br /><?php echo $row2['antal']; ?></td>

  </tr>
    <tr>
    <td><div align="right"><br />
        <a href="?page=boger&udlaan=1&id=<?php echo $row1['id']; ?>">Lån bogen</a></div></td>

  </tr>
</table>


<?php
}

mysql_free_result($result1);

?>
Avatar billede kalp Novice
06. februar 2007 - 22:18 #15
du mangler i hvertfald at skrive "" rundt om sql'en
Avatar billede matz Nybegynder
06. februar 2007 - 22:19 #16
Det er ændret nu...den udskriver:

Parse error: parse error, unexpected $
Avatar billede matz Nybegynder
06. februar 2007 - 22:20 #17
Kig på den her istedet for, da jeg lige har tilføjet en "}" som manglede:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/hotels/.dk/playboi/html/bog/vis_bog.php on line 41
Avatar billede matz Nybegynder
31. oktober 2007 - 11:04 #18
kalp vil du have points
Avatar billede kalp Novice
31. oktober 2007 - 12:18 #19
:)
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