Toon posts:

[php] call error

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een scriptje dat alle pictures in een array leest.

Dit scriptje moet foto voor foto laten zien en dan aangeven of het mogelijk is verder te gaan en de vorige foto te laten zien.

De eerste foto laat die zien zonder fout. Wanneer ik echter naar de tweede, en verdere, wil krijg ik echter deze error:

Warning: Wrong datatype in sort() call in /home/sites/site39/web/partycenter/zaaloverzicht.php on line 644

met deze code:
PHP:
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?
// Configuratie
$dir = "zalen/$naam"; //dir waar de foto's in staan
$kolom = "1"; // aantal kolommen
$rij = "1"; // aantal rijen
$tabel = ($kolom * $rij); //totaal aantal cellen in tabel
$file_nr = ($tabel * $page); // startplek in de array die uitgelezen moet worden

// dir lezen en bestanden in array plaatsen
$open = opendir($dir); 
$i=0;
while (false !== ($bestanden = readdir($open))) {
if(($bestanden<>".") AND ($bestanden<>"..") AND ($bestanden<>"thumbnails") AND (substr($bestanden,-3)=="jpg")){ 
  $bestandslijst[$i] = $bestanden; 
  $i++; 
} 
} 
closedir($open); 

//start pagenavigatie

// totaal aantal entry's in array
$aantalEntries = count($bestandslijst);

// page navigatie systeem 
$amountpages = ceil( $aantalEntries / $tabel ); 
$int1 = 0; 
if (!$page) 
{ 
    $page = "0"; 
} 
while ($int1 < $amountpages) 
{ 
    $int2 = $int1 + 1; 
    if ($int1 == $page) 
    { 
        $pages .= "$int2 | "; 
    } 
    else 
    { 
        $pages .= "<A HREF=\"$PHP_SELF?page=$int1&dir=$dir&activiteit=$activiteit\" title=\"Pagina $int2\">$int2</A> | "; 
    } 
    $int1++; 
}

$vorige = $page - 1;
$volgende = $page + 1;
$lastpage = $amountpages - 1;

$back = "<A HREF=\"$PHP_SELF?page=$vorige&dir=$dir&activiteit=$activiteit\" title=\"Vorige pagina\">&lt;</A>";
$next = "<A HREF=\"$PHP_SELF?page=$volgende&dir=$dir&activiteit=$activiteit\" title=\"Volgende pagina\">&gt;</A>";

if ($page == 0) {
$navigatie = "$next"; 
}
elseif ($page == $lastpage) {
$navigatie = "$back"; 
} 
else {
$navigatie = "$back $next";
}

// einde pagenavigatie en navigatie opgeslagen in $navigatie

echo "<p>\n";

// tabel opbouwen
echo "<table border=\"0\">\n";
echo "<tr>\n";

// array alfabetisch sorteren
sort($bestandslijst);

// begin for lus en aangeven startpositie in array
for ($i=$file_nr;$i<count($bestandslijst);$i++) { 

// informatie over image ophalen
$size = getimagesize("$dir/$bestandslijst[$i]");

// uitlezen pictures
  $file_nr++;
  $count++; 
  echo "<td align=\"center\" valign=\"top\">\n";
  echo "[img]\"$dir/$bestandslijst[$i]\"[/img]\n";
  echo "</td>\n";
  
  if(($count % $kolom == 0) && ($count != $tabel)) {
  echo "</tr>\n<tr>\n"; 
  }   
  if ($count == $tabel) 
  { 
  break; 
  }   
}

echo "</tr>\n</table>\n";
echo "</p>\n";

// invoegen page navigatie systeem
echo "<p align=\"right\">$navigatie &nbsp;</p>\n";
echo "<br>";
?>


De regel met de fout is deze:
PHP:
1
2
3
<?
sort($bestandslijst);
?>

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
P&W is geen 'post-hier-je-code-en-we-fixen-het-voor-je' service. Je zult zelf eens wat moeite moeten doen....
oa. De error eens goed interpreteren.

https://fgheysels.github.io/


Verwijderd

ik zie de fout nog niet in de buurt van die regel. Ik zie wel allerlei andere dingen.

regel 11 t/m 16: je hebt geen $i nodig, toevoegen doe je met $bestandenlijst[] = $bestand;
regel 12: !== ???? werkt dat in php? (ok in php werkt veel maar het hoort != te zijn)
je kunt daar overigens gewoon while($bestanden = readdir($open) doen, hij assigned en dan checked ie $bestanden dus die $false != is overbodig.

Verwijderd

en als je er dan nog niet uitkomt is het handig om eerst je foutmelding eens in google in tevullen

zie hier het
resultaat

kan me niet indenken dat daar niet ergens de oplossing staat :)

succes!

  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 31-03 16:47

CyberSnooP

^^^^ schrijft --->

Verwijderd schreef op 04 september 2002 @ 11:14:
regel 12: !== ???? werkt dat in php? (ok in php werkt veel maar het hoort != te zijn)
je kunt daar overigens gewoon while($bestanden = readdir($open) doen, hij assigned en dan checked ie $bestanden dus die $false != is overbodig.
Je kunt toch al een tijdje met PHP type vergelijken.

zo geeft (0 == false) true, maar (0 === false) geeft false (0 is integer, false is boolean, geen match dus). En hetzelfde kan met != en !==... gewoon goed PHP dus :)

|_____vakje______|


Verwijderd

ok wist ik niet. wat is de zin ervan in deze regel code? voor de duidelijkheid, waarom zou ie hier !== doen ipv != ?

Verwijderd

Verwijderd schreef op 04 september 2002 @ 11:22:
ok wist ik niet. wat is de zin ervan in deze regel code? voor de duidelijkheid, waarom zou ie hier !== doen ipv != ?
stel je voor dat je ineens een string "false" terug krijgt, dan zit je wel met de gebakken peren ;)

(weinig nut in dit geval)

Verwijderd

false != "false"

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier


Dat is dus true.
true == "false" is 'true' voor php.
echter niet true === "false", dat levert 'false' op.

Verwijderd

Topicstarter
bedankt voor al jullie commentaar en jullie reacties
heb het probleem inmiddels opgelost en zal wat met jullie feedback doen om de code door te lopen

en die $i gebruik ik om te tellen en het startpunt in de array te bepalen
Pagina: 1