Ingewikkelde database handling

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jonathan

Jonathan

17/09/2006 14:05:00
Quote Anchor link
Eerst even een tip van mij: om een database van Excel of Access zeer eenvoudig over te zetten naar MySQL gebruik ik nu Navicat. Zeer handig programmaatje:)

Om mijzelf php en MySQL eigen te maken probeer ik een voorbeeld-internetshop in elkaar te knutselen. Ik heb nu een test-MySQL-database van 8 kolommen en 4 rijen. De eerste kolom betreft product IDs, de tweede de titel van een boek, de derde de schrijver, etc.

Mijn php-code print de rijen afzonderlijk op het scherm. Is het ook mogelijk om iedere 'cel' apart op het scherm te printen? Ik wil nl. een href-link maken op een van de cellen van de kolom die correspondeert met het ID (kolom 1) en dit ID in meestuurt naar een volgende pagina. Misschien is dit wel voor super-gevorderden, maar is over dit onderwerp (MySQL database-gebruik voor shops) misschien een goed boek geschreven?? Misschien kan een van jullie mij een klein zetje in de goede richting geven....

Hier is mijn code tot nu toe (opmaak van de website met menu's etc. in html, javascript laat ik achterwege)

<html>
<head></head>
<body>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php

// open connection to MySQL server
$dbcnx = @mysql_connect('localhost', 'root', '#');
if (!$dbcnx) {  echo( '<P>Unable to connect to the database server at this time!</P>' );  exit();}

// select database
mysql_select_db('book') or die ('Unable to select database!');

// create and execute query
$query = 'SELECT * FROM data';
$result = mysql_query($query)
or die ('Error in query: ' . mysql_error());

// check if records were returned
if (mysql_num_rows($result) > 0)
{

    // print HTML table
    echo '<table width=100% cellpadding=10 cellspacing=0 border=1>';
    echo
'<tr><td><b>ID</b></td><td><b>Title</b></td><td><b>Author</b></td><td><b>Publisher</b></td><td><b>Year</b></td><td><b>Pages</b></td><td><b>Price</b></td><td><b>Comment</b></td>';
    
    while($row = mysql_fetch_row($result))
    {

        echo '<tr>';
        echo '<td>' . $row[0] . '</td>';
        echo '<td>' . $row[1] . '</td>';
        echo '<td>' . $row[2] . '</td>';
        echo '<td>' . $row[3] . '</td>';
        echo '<td>' . $row[4] . '</td>';
        echo '<td>' . $row[5] . '</td>';
        echo '<td>' . $row[6] . '</td>';
        echo '<td>' . $row[7] . '</td>';
        echo '</tr>';
    }
    
    echo '</table>';
}

else
{
    echo 'No rows found!';
}


// processing complete; free result set
mysql_free_result($result);

// close connection
if ($connection)
{

    mysql_close($connection);
}



?>




</body>
</html>
 
PHP hulp

PHP hulp

26/01/2025 12:55:04
 
Frank -

Frank -

17/09/2006 14:13:00
Quote Anchor link
Voordat je verder gaat, ga je eens verdiepen in normalisatie. De schrijver van een boek, staat niet in dezelfde tabel als de titel van het boek. 1 schrijver kan namelijk meerdere boeken hebben geschreven en in een goed opgestelde database sla je data slechts 1x op. Je kunt dus niet bij ieder boek wéér de naam van de schrijver opslaan.

Zie http://www.phphulp.nl/php/tutorials/3/150/

Tabel boeken:
id
titel

Tabel schrijvers:
id
naam

Koppeltabel:
id_boeken (foreign key met 'boeken')
id_schrijvers (foreign key met 'schrijvers')

En gebruik zo veel mogelijk de innoDB-engine van MySQL en dus niet de MyISAM-engine die default in PHPmyAdmin wordt gekozen. Anders kun je geen foreign keys gebruiken en hangen de tabellen als los zand aan elkaar.

Edit: Of gebruik PostgreSQL wanneer je met een 'echte' database wilt leren werken... (Kom maar op met het commentaar!)
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Andreas Warnaar

Andreas Warnaar

17/09/2006 15:27:00
Quote Anchor link
Ik zou het vast wel ergens anders vinden maar wat is dan het verschil tussen PostgreSQL en MySQL?

Nog ff een mooie bron..:
http://nl.wikipedia.org/wiki/Tabel_%28informatica%29
 
Jonathan

Jonathan

17/09/2006 15:33:00
Quote Anchor link
Goed, ik kan 1 willekeurige cel in mijn query stoppen met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
= 'SELECT Title FROM data WHERE id=3';
?>


En stel ik wil er twee uit 1 rij, dan doe ik gewoon:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
= 'SELECT Title, Author FROM data WHERE id=3';
?>


Piece of cake, maar ik wil graag een query waarbij kolom 1 en kolom 2 naast elkaar komt, maar waarbij ik bij kolom 2 nog een href-je kan plaatsen. Eigenlijk een query in twee delen dus... Is dat mogelijk??
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.