Ik kan standaardwaarde niet vervangen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lead C# Ontwikkelaar

Lead C# Ontwikkelaar vaste standplaats Nijmegen Organisatie Groeiend IT bedrijf, gericht op duurzaamheid en maatschappelijk verantwoord ondernemen. Contactpersoon Roel Kavelaar ; rkavelaar@search-consult.nl ; 06 449 49 337 Verantwoordelijkheden Meedenken over verder ontwikkelen van het bedrijf Leiding geven aan ontwikkelaars Doorspreken van lopende projecten met je teamleden Plannen en budgetteren van nieuwe projectaanvragen Met de klant en andere betrokken partijen functioneel en technisch ontwerp van de aangeboden oplossing opstellen Klanten adviseren over mogelijke oplossingen voor het koppelen van systemen Klanten adviseren over mogelijke oplossingen voor het koppelen van systemen Met de klant en andere betrokken partijen een ontwerp van de aangeboden

Bekijk vacature »

Pagina: « vorige 1 2

Tim S

Tim S

20/02/2013 13:15:13
Quote Anchor link
In de functie get_images geeft je ook andere namen dan de oorspronkelijke benaming van de kolom, 'id' => $images_row['image_id']. Misschien heeft dat er wat mee te maken...
 
PHP hulp

PHP hulp

25/09/2021 09:11:47
 
Rob Cnossen

Rob Cnossen

21/02/2013 22:47:20
Quote Anchor link
met print_r($images); is inderdaad alles te zien;
Array ( [0] => Array ( [id] => 122 [img_name] => KONICA MINOLTA DIGITAL CAMERA_1043.jpg [album] => 7 [timestamp] => 1355299786 [ext] => jpg ) [1] => Array ( [id] => 123 [img_name] => KONICA MINOLTA DIGITAL CAMERA_454.jpg [album] => 7 [timestamp] => 1356040162 [ext] => jpg ) [2] => Array ( [id] => 124 [img_name] => [album] => 7 [timestamp] => 1357907892 [ext] => ) [3] => Array ( [id] => 125 [img_name] => PICT0181.JPG [album] => 7 [timestamp] => 1358331529 [ext] => jpg ) [4] => Array ( [id] => 130 [img_name] => PICT0059.JPG [album] => 7 [timestamp] => 1359552936 [ext] => jpg ) )

Ik krijg twee Notice: Array to string conversion in. Het heeft te maken met de beide $image['id'] in dit gedeelte;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
echo '<img src="uploads/' . $image['album'] .
        '/' . $image['id'] .
        '.', $image['ext'] .
        '" alt="Afbeelding #' . $image['id'] . '">';
?>

var_dump($image['id']); laat dit zien;
array(5) { ["id"]=> string(3) "122" ["img_name"]=> string(38) "KONICA MINOLTA DIGITAL CAMERA_1043.jpg" ["album"]=> string(1) "7" ["timestamp"]=> string(10) "1355299786" ["ext"]=> string(3) "jpg" }

Wat kan er dan niet kloppen met $image['id']?
 
Tim S

Tim S

22/02/2013 02:05:20
Quote Anchor link
Ik heb op dit moment even geen beeld van de huidige code, misschien kan het totaal even plaatsen. Wat ik me wel afvraag is waarom je doet print_r($images) terwijl je $image['id'] wilt verkrijgen. Waarschijnlijk gebruik je hier foreach, ik zou even doen print_r($image).
 
Rob Cnossen

Rob Cnossen

22/02/2013 10:34: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
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
<?php
include 'core/init.php';

if (isset($_GET['album_id'])) {
    $album_id = $_GET['album_id'];
$album_data = album_data($album_id, 'name', 'description');

echo '<h3>', $album_data['name'], '</h3><p>', $album_data['description'], '</p>';

$albums = get_albums();
$images = get_images($album_id);

}


if (empty($images)) {
        echo 'Er zijn geen foto\'s in dit album';
}
else {
        foreach ($albums as $album) {      
        foreach ($images as $image) {
        if ($image['album'] === $album['id'])        
                echo'<a href="view_album.php?album_id=', $album['id'],'&image_id=uploads/', $image['album'], '/', $image['id'], '.', $image['ext'], '"><img src="uploads/thumbs/', $image['album'], '/', $image['id'], '.', $image['ext'], '" title="" /></a><a href="delete_image.php?image_id=', $image['id'],'">x</a> ';                
        }            
    }
}




    
    $image['id'] = isset($_GET['image_id']) ? intval($_GET['image_id']) : $images[0];
print_r($images);

    if(isset($image['album'], $image['id'], $image['ext']))
    {

        echo '<img src="uploads/' . $image['album'] .
        '/' . $image['id'] .
        '.', $image['ext'] .
        '" alt="Afbeelding #' . $image['id'] . '">';    
    }

    
    else
    {
        echo '<b>Fout</b><br>
        Eén van de benodigde waardes missen!<br>
        Wat ik wel heb:<br>
        <hr>
        '
. print_r($image, true) . '
        <hr>'
;
    }

?>

De gedachte was dat $images misschien niet de 'id' door zou geven, daarom print_r($images). Ook print_r($image) staat er nu bij.

Wanneer ik $images[0]; doe dan krijg ik de twee Notice: Array to string conversion in/allerlei mappen/ en dergelijke/ on line 112 en 114. Dat is in dit gedeelte;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
echo '<img src="uploads/' . $image['album'] .
        '/' . $image['id'] .
        '.', $image['ext'] .
        '" alt="Afbeelding #' . $image['id'] . '">';
?>

Daar waar er $image['id']; staat.

Wanneer ik $images['id']; doe dan krijg ik de melding Notice: Undefined index: id in/ op regel 105.

Zou het probleem inderdaad dan misschien in de functie get_images liggen?

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
<?php
function get_images($album_id) {
    $album_id = (int)$album_id;
    
    $images = array();
    
    $image_query = mysql_query("SELECT `image_id`, `image_name`, `album_id`, `timestamp`, `ext` FROM `images` WHERE `album_id`=$album_id");
    while ($images_row = mysql_fetch_assoc($image_query)) {
        $images[] = array(
        'id' => $images_row['image_id'],
        'img_name' => $images_row['image_name'],
        'album' => $images_row['album_id'],
        'timestamp' => $images_row['timestamp'],
        'ext' => $images_row['ext']
        );
    }

    return $images;
}

[
url]http://www.robcnossen.nl/view_album.php?album_id=7[/url]
?>
 
Tim S

Tim S

22/02/2013 12:58:23
Quote Anchor link
Wat zie je als je in de while lus in de functie doet echo $images_row['image_id'];. Ik zou er zelf voor kiezen om de kolom namen van de tabel aan te houden maar dat is een persoonlijke keuze.
 
Rob Cnossen

Rob Cnossen

22/02/2013 13:20:27
Quote Anchor link
Bedoel je zo?
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
<?php
$image
['id'] = isset($_GET['image_id']) ? intval($_GET['image_id']) : $images['img_name'];
//print_r($images);

    // kijk of alles wat we nodig hebben aanwezig is

    if(isset($image['album'], $images_row['image_id'], $image['ext']))
    {

        echo '<img src="uploads/' . $image['album'] .
        '/' . $images_row['image_id'] .
        '.', $image['ext'] .
        '" alt="Afbeelding #' . $image['id'] . '">';
        
    }

?>

Er veranderd helaas niets. Ik heb ook;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$image
['id'] = isset($_GET['image_id']) ? intval($_GET['image_id']) : $images_row['image_id'];
?>

geprobeerd, maar er is geen verschil, ook niet in de print_r($images) of print_r($image)informatie.
 
Tim S

Tim S

22/02/2013 13:40:35
Quote Anchor link
Ik bedoelde 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
<?php
function get_images($album_id) {
    $album_id = (int)$album_id;
    
    $images = array();
    
    $image_query = mysql_query("SELECT `image_id`, `image_name`, `album_id`, `timestamp`, `ext` FROM `images` WHERE `album_id`=$album_id");
    while ($images_row = mysql_fetch_assoc($image_query)) {

echo $images_row['image_id'];

        $images[] = array(
        'id' => $images_row['image_id'],
        'img_name' => $images_row['image_name'],
        'album' => $images_row['album_id'],
        'timestamp' => $images_row['timestamp'],
        'ext' => $images_row['ext']
        );
    }

    return $images;
}

?>
 
Rob Cnossen

Rob Cnossen

22/02/2013 13:59:53
Quote Anchor link
Oke, dat begreep ik verkeerd.

Wat het teruggeeft is 122123124125130. De id's van de foto's zonder spaties.
 
Tim S

Tim S

22/02/2013 14:24:03
Quote Anchor link
Ik was even vergeten dat je het id uit de url haalt, probeer van $images['id'] bijvoorbeeld eens $id te maken.

Toevoeging op 22/02/2013 14:30:35:

Waarschijnlijk bevat $images['id'] een array, zoals
$array = array('id' => array(1,2));
 
Rob Cnossen

Rob Cnossen

22/02/2013 14:36:01
Quote Anchor link
Het reageert precies hetzelfde als $images['id'].

Ik moet helaas naar mijn werk. Morgenavond ben ik weer thuis.
Denk je dat ik de get_images function echt nodig heb om de foto's te laten zien?
 
Tim S

Tim S

22/02/2013 15:23:58
Quote Anchor link
Voor de grote foto hoeft dit volgens mij niet, maar het probleem is dat je $images['id'] wilt weergeven terwijl dit waarschijnlijk een array is. probeer maar print_r($images['id']). Als je wat te zien krijgt is het een array.
 
Rob Cnossen

Rob Cnossen

24/02/2013 22:33:00
Quote Anchor link
Wanneer de pagina wordt geopend komt er nu wel een grote afbeelding in beeld, Images['id'] is veranderd in image['id']. Ook komt via print_r($image) netjes de array in beeld, in dit geval;
Array ( [id] => 0 [img_name] => PICT0059.JPG [album] => 7 [timestamp] => 1359552936 [ext] => jpg )

Maar als ik op een kleine foto klik komt er nog geen foto in beeld en de array laat dit zien;
Array ( [id] => 0 [img_name] => PICT0059.JPG [album] => 7 [timestamp] => 1359552936 [ext] => jpg )
Dus alleen de id is veranderd, de rest blijft allemaal hetzelfde. In de url komt wel netjes de goede image_id te staan. Ik hoop dat het een stapje de goede richting op is. Ik denk dat ik nu op zoek moet naar $_GET['image_id'], maar is dat ook zo en hoe moet ik dat doen?

De code is nu;
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
<?php
$image
['id'] = isset($_GET['image_id']) ? intval($_GET['image_id']) : $image['id'];
print_r($image['id']);

    // kijk of alles wat we nodig hebben aanwezig is
    if(isset($image['album'], $image['id'], $image['ext']))
    {

        echo '<img src="uploads/' . $image['album'] .
        '/' . $image['id'] .
        '.', $image['ext'] .
        '" alt="Afbeelding #' . $image['id'] . '">';
        print_r($image);
    }
    
    else
    {
        echo '<br><b>Fout</b><br>
        Eén van de benodigde waardes missen!<br>
        Wat ik wel heb:<br>
        <hr>
        '
. print_r($image, true) . '
        <hr>'
;
    }
[
url]http://www.robcnossen.nl/view_album.php?album_id=7&image_id=uploads/7/123.jpg[/url]
?>
 
Tim S

Tim S

25/02/2013 15:44:15
Quote Anchor link
Krijg je nog de "Notice: Array to string conversion"?

Krijg je je eigen fout melding te zien: "Fout Eén van de bonodigde......"?

Staat in de broncode van je website wel de img tag en eventueel andere waarde hierin?

Probeer een gewoon wat te echoën, bijvoorbeeld echo $image['album'], kijk zo wat er wel en niet goed gaat.
 
Teun Hesseling

Teun Hesseling

25/02/2013 17:01:47
Quote Anchor link
ik had die notice ook 2 dagen terug en ik had voor de grap een [0] er achter gezet dus $image['id'][0]. Het werkte wel en de error was weg.
 
Tim S

Tim S

25/02/2013 17:38:06
Quote Anchor link
Alleen is dit niet de netste oplossing, ik zou nog maar eens goed kijken naar de array.
 
Rob Cnossen

Rob Cnossen

27/02/2013 14:37:00
Quote Anchor link
Ik ben van alles aan het proberen geweest en ik denk dat het de goede richting in gaat. Ik krijg in ieder geval geen foutmeldingen meer.
De code ziet er nu zo uit;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if(isset($image['album'], $image['id'], $image['ext']));    
        $foto = '<img src="uploads/' . $image['album'] . '/' . $image['id'] . '.' . $image['ext'] . '" alt="Afbeelding #' . $image['id'] . '">';
        
$standaardwaarde=isset($_GET['image_id']) ? $_GET['image_id'] :$foto;
//print_r($foto);
    echo'<img src="' ,$standaardwaarde, '" title="" />';
?>

Als ik op een kleine foto klik komt de grote foto keurig in beeld. Alleen wanneer ik de pagina open komt de grote foto niet in beeld maar in de broncode staat de foto wel vermeld maar ziet het er een beetje vreemd uit, namelijk;

<img src="<img src="uploads/7/130.jpg" alt="Afbeelding #130">" title="" />

Er zitten nu twee img src's in elkaar en ik weet niet hoe ik het los van elkaar moet krijgen.

http://www.robcnossen.nl/view_album.php?album_id=7
 
Tim S

Tim S

27/02/2013 18:56:40
Quote Anchor link
Ik hoop dat je zelf ook ziet dat dat komt omdate je ook 2keer de img tag aanmaakt. Haal deze gewoon weg bij $foto en dan moet het wel werken.
 
Rob Cnossen

Rob Cnossen

27/02/2013 20:53:44
Quote Anchor link
Ah, dat had ik mij niet gerealiseerd, dank je voor je hulp, het werkt nu prima.
 

Pagina: « vorige 1 2



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.