Foto database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Luc

luc

27/07/2008 21:54:00
Quote Anchor link
Hallo,

Ik ben bezig met een simpel foto database script. Dit is mijn eerste geheel eigen geschreven script, dus het lijkt nog nergens op. Ik heb dit gemaakt met behulp van de MySQL tutorial van deze site.

Ik heb in een tabel onder andere vliegtuigtype, maatschappij, datum, locatie, fotograaf en comment staan. Nou heb ik deze code om kleine previews van de foto.s te laten zien:
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?
    //-- maak eerst de connectie met de database!
    $user = "****";
    $pass = "****";
    $host = "****";
    $dbdb = "****";
    
    if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
    {

        echo "Kan geen verbinding maken met de database.";
        exit();
    }

    
    unset($user);
    unset($pass);
    unset($host);
    unset($dbdb);

    //-- haal de nieuws berichten uit de database
    $sql = "SELECT id,producent,vtype,maatschappij,fotograaf,datum,locatie FROM foto ORDER BY id DESC";
    //-- via de functie mysql_query() kun je de SQL code
    //-- die in $sql staat uitvoeren.

    $res = mysql_query($sql);

    echo "<b>Alle foto's.</b><p>";
    
    //-- kijk via de functie mysql_num_rows() hoeveel
    //-- rijen er zijn. Deze moet groter of gelijk zijn
    //-- aan 1. Is dit dat niet, dan zijn er dus geen
    //-- rijen in de tabel nieuws, en dus ook geen
    //-- nieuwsberichten.

    if (mysql_num_rows($res) >= 1)
    {

        //-- met de functie mysql_fetch_array()
        //-- zet je alle resultaten in een array
        //-- en kun je deze aanroepen (in dit geval)
        //-- via de variabele $row. Voorbeeld: $row[id]
        //-- , $row[datum] en $row[titel] in dit geval omdat
        //-- alleen de kolommen id, titel en datum uit
        //-- de database worden geselecteerd (zoals
        //-- je boven kunt zien in de SQL code).
        
        //-- loop door de resultaten

        while ($row = mysql_fetch_array($res))
        {

            //-- maakt linkje naar foto.php?id=<nummer>
        
            //-- pak alleen de eerste 10 karakters van $row['datum']
            //-- zodat alleen de datum en niet ook de tijd wordt
            //-- getoond.

            $row['datum'] = substr($row['datum'], 0, 10);
            {

            
            echo "<table border='0' width='650' id='table1' bgcolor='#C0C0C0' style='font-family: Verdana; font-size: 8pt' cellspacing='0' cellpadding='0'>
    <tr>
        <td rowspan='2' width='250'>
        <img border='0' src='images/. $row['id'] ..jpg'></td>
        <td width='280' valign='top'>Vliegtuig: . $row['producent'] . $row['vtype'] .</td>
        <td width='120'>Datum: . $row['datum'] . <br>
        Locatie: . $row['locatie'] .</td>
    </tr>
    <tr>
        <td width='280' valign='top'>. $row['comment'] .</td>
        <td width='120' valign='top'>. $row['fotograaf'] .</td>
    </tr>
</table>
        }
    }
    //-- laat dit dus zien als er geen nieuwsberichten
    //-- zijn.
    else
    {
        echo "
Er zijn geen nieuwsberichten.";
    }

?>

Het is de bedoeling dat alle foto's onder elkaar komen te staan, ieder in een aparte tabel. Als ik hem zo opsla als index.php krijg ik allemaal errors. De MySQL tabel is voor zover ik het weet wel goed. Wat doe ik fout en hoe kan ik dit goed doen?

Alvast bedankt,

Luc de Wit
 
PHP hulp

PHP hulp

02/12/2021 20:09:05
 
Robert Deiman

Robert Deiman

27/07/2008 22:05:00
Quote Anchor link
Luc de Wit

Kijk in bovenstaande code (van jou) eens naar de kleuren, dan zie je dat er een en ander niet klopt.
 
Luc

luc

27/07/2008 22:17:00
Quote Anchor link
Ik ben hier niet zo ervaren mee, ik zou ook niet weten wat er fout is. Het enige wat ik me kan bedenken is dat de Echo waar de tabel in staat misschien niet goed is afgesloten. Zoals hij nu is krijg ik deze error:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/airbus/domains/aviaworld.gethost.nl/public_html/fd/index.php on line 57
 
Robert Deiman

Robert Deiman

27/07/2008 22:40:00
Quote Anchor link
Zoek de verschillen:

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?
    //-- maak eerst de connectie met de database!
    $user = "****";
    $pass = "****";
    $host = "****";
    $dbdb = "****";
    
    if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
    {

        echo "Kan geen verbinding maken met de database.";
        exit();
    }

    
    unset($user);
    unset($pass);
    unset($host);
    unset($dbdb);

    //-- haal de nieuws berichten uit de database
    $sql = "SELECT id,producent,vtype,maatschappij,fotograaf,datum,locatie FROM foto ORDER BY id DESC";
    //-- via de functie mysql_query() kun je de SQL code
    //-- die in $sql staat uitvoeren.

    $res = mysql_query($sql);

    echo "<b>Alle foto's.</b><p>";
    
    //-- kijk via de functie mysql_num_rows() hoeveel
    //-- rijen er zijn. Deze moet groter of gelijk zijn
    //-- aan 1. Is dit dat niet, dan zijn er dus geen
    //-- rijen in de tabel nieuws, en dus ook geen
    //-- nieuwsberichten.

    if (mysql_num_rows($res) >= 1)
    {

        //-- met de functie mysql_fetch_array()
        //-- zet je alle resultaten in een array
        //-- en kun je deze aanroepen (in dit geval)
        //-- via de variabele $row. Voorbeeld: $row[id]
        //-- , $row[datum] en $row[titel] in dit geval omdat
        //-- alleen de kolommen id, titel en datum uit
        //-- de database worden geselecteerd (zoals
        //-- je boven kunt zien in de SQL code).
        
        //-- loop door de resultaten

        while ($row = mysql_fetch_array($res))
        {

            //-- maakt linkje naar foto.php?id=<nummer>
        
            //-- pak alleen de eerste 10 karakters van $row['datum']
            //-- zodat alleen de datum en niet ook de tijd wordt
            //-- getoond.

            $row['datum'] = substr($row['datum'], 0, 10);
            
            
            echo '<table border="0" width="650" id="table1" bgcolor="#C0C0C0" style="font-family: Verdana; font-size: 8pt" cellspacing="0" cellpadding="0">
    <tr>
        <td rowspan="2" width="250">
        <img border="0" src="images/'
. $row["id"] .'.jpg"></td>
        <td width="280" valign="top">Vliegtuig: '
. $row["producent"] .' '. $row["vtype"] .'</td>
        <td width="120">Datum: '
. $row["datum"] .'<br>
        Locatie: '
. $row["locatie"] .'</td>
    </tr>
    <tr>
        <td width="280" valign="top">'
. $row["comment"] .'</td>
        <td width="120" valign="top">'
. $row["fotograaf"] .'</td>
    </tr>
</table>'
;
        }
    }

    //-- laat dit dus zien als er geen nieuwsberichten
    //-- zijn.

    else
    {
        echo "Er zijn geen nieuwsberichten.";
    }

?>
 
Luc

luc

27/07/2008 22:50:00
Quote Anchor link
Onderin is het één en ander in een andere kleur. Hartstikke bedankt voor de hulp. Hij doet het nu wel.. Krijg nu wel een andere error maar die probeer ik eerst zelf op te lossen.
 
Luc

luc

28/07/2008 00:32:00
Quote Anchor link
Nu zit ik met een volgend probleem. Ik wil een foto.php om een foto groot af te laten beelden. Ik wil het zo maken dat als je foto.php?id=1 je de foto die als ID in de database 1 heeft te zien krijgt en de gegevens die daarbij horen. Ik heb nu dit:

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
<?
    //-- maak eerst de connectie met de database!
    $user = "****";
    $pass = "****";
    $host = "****";
    $dbdb = "****";
    
   if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
    {

        echo "Kan geen verbinding maken met de database.";
        exit();
    }

    
    unset($user);
    unset($pass);
    unset($host);
    unset($dbdb);
//-- haal de nieuws berichten uit de database
    $sql = "SELECT id,producent,vtype,maatschappij,fotograaf,fotodatum,fotolocatie,comment,views,fotopad FROM fotodatabase WHERE id='<?php include('fotolijst.php'); ?>'");
    //-- via de functie mysql_query() kun je de SQL code
    //-- die in $sql staat uitvoeren.

    $res = mysql_query($sql);
echo '<center><img src="images/'. $row["fotopad"] .'.jpg"></center>
'
;
        }

?>


Maar dit werkt niet, ik krijg een error over een unexpected ) on line 20.
Heeft iemand een idee wat ik fout doe of een manier om dit anders te doen?

Alvast bedankt.
Gewijzigd op 01/01/1970 01:00:00 door luc
 
Raymond Oomen

Raymond Oomen

28/07/2008 00:41:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
//-- haal de nieuws berichten uit de database
    $sql = "SELECT id,producent,vtype,maatschappij,fotograaf,fotodatum,fotolocatie,comment,views,fotopad FROM fotodatabase WHERE id='<?php include('fotolijst.php'); ?>


moet zijn:

<?php
//-- haal de nieuws berichten uit de database
    $sql = "
SELECT id,producent,vtype,maatschappij,fotograaf,fotodatum,fotolocatie,comment,views,fotopad FROM fotodatabase WHERE id= fotolijst.php"
?>

Gewijzigd op 01/01/1970 01:00:00 door Raymond Oomen
 
Luc

luc

28/07/2008 00:45:00
Quote Anchor link
Dankjewel, die fout is weg. Nu zit ik weer met een melding, namelijk:
Parse error: syntax error, unexpected T_STRING in /home/airbus/domains/aviaworld.gethost.nl/public_html/fd/foto.php on line 24

foto.php:
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
<?
    //-- maak eerst de connectie met de database!
    $user = "****";
    $pass = "****";
    $host = "****";
    $dbdb = "****";
    
   if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
    {

        echo "Kan geen verbinding maken met de database.";
        exit();
    }

    
    unset($user);
    unset($pass);
    unset($host);
    unset($dbdb);

   //-- haal de nieuws berichten uit de database
    $sql = "SELECT id,producent,vtype,maatschappij,fotograaf,fotodatum,fotolocatie,comment,views,fotopad FROM fotodatabase WHERE id=' include('fotolijst.php');
    //-- via de functie mysql_query() kun je de SQL code
    //-- die in $sql staat uitvoeren.
    $res = mysql_query($sql);
echo '<center><img src="
images/'. $row["fotopad"] .'.jpg"></center>
';
        }

?>



Sorry dat ik zoveel vraag, maar ben nog niet zo ervaren in PHP met MySQL.

Edit:
Deze fout heb ik zelf gevonden. Maar nu kan hij de foto niet vinden, waarschijnlijk omdat hij het niet goed in de database opzoekt?
Overigens staat in fotolijst.php een 1, hij moet dus de gegevens van de foto met het ID 1 ophalen.
Gewijzigd op 01/01/1970 01:00:00 door luc
 
Luc

luc

28/07/2008 01:21:00
Quote Anchor link
Ik heb nu dit:

$sql = "SELECT id,producent,vtype,maatschappij,fotograaf,fotodatum,fotolocatie,comment,views,fotopad FROM fotodatabase WHERE id='{$_GET['id']}'";

Ik zou zeggen dat dit wel goed zou zijn, maar hij haalt de gegevens niet uit de database..

Iemand enig idee wat er fout is?
Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de http://www.phphulp.nl/imgs/forum/edit.gif knop om je tekst aan te passen.
Gewijzigd op 01/01/1970 01:00:00 door luc
 
Sven

Sven

28/07/2008 10:08:00
Quote Anchor link
Niet bumpen.

Krijg je een error of haalt ie het gewoon niet uit de database?

Je zou verder ook dit kunnen proberen:
$sql = "SELECT * FROM fotodatabase WHERE id='".$_GET['id']."'";
 
Luc

luc

28/07/2008 12:41:00
Quote Anchor link
Sorry van het bumpen. Hij geeft geen error. Gaf hij wel maar die heb ik er al uit gehaald. Hij haalt alleen de foto's niet uit de database. Helaas doet hij het met jouw aanpassing ook niet. :( Ik probeer nog wel even verder, maar als iemand ideeën heeft of het weet, is dat van harte welkom. :P
 



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.