Toon posts:

[php] Limit functie blokkeert uitvoer

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

ik zit in de volgende situatie. Met een database gestuurd systeem kan men een event toevoegen. Bij elk event kunnen 4 foto's meegestuurd worden. De filenaam van deze foto wordt opgeslagen in de database (velden pic1 t/m pic4) en de foto's zelf in een map op de server.

Nu zit ik met de uitvoer met 2 problemen. Zou graag alleen het laatst toegevoegde event willen uitlezen. Hiervoor gebruik ik de LIMIT 1,1 in de query. Het probleem is nu dat ie nu geen uivoer meer geeft na de body.
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
<?
 
include("login.php"); 

$sql = "SELECT * FROM events ORDER BY id DESC LIMIT 1,1"; 
$result = mysql_query($sql); 

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

$text = $row[veld3]; 

$text = eregi_replace("\\[b\]","<b>", $text); 

?> 

<table border="0" width="100%" cellpadding="0" cellspacing="0">  
<tr> 
<td width="50%"> 
<b><font face="verdana" size="2" color="#000000">Events</font> 
<br> 
<font color="0066CC" face="verdana" size="3"><? echo $row[veld2]; ?></font></b> 
</td> 
<td width="50%"> 
<p align="right"><font size="2"><a href="../menu.html"><b>Terug</b></a> 
</font> 
</td>  
</tr> 
</table> 
<p> 
<div align="center"> 
  <center> 
  <table border="0" cellpadding="0" cellspacing="2" width="100%"> 
    <tr> 
            <td width="100%"><center> 
<? 
if(FILE_EXISTS("images/$row[pic1]")) 
{ 
echo "[img]\"images/$row[pic1]\"[/img]"; 
} 
else 
{ 
//file niet weergeven 
} 
?> 
</td> 
    </tr> 
    <tr> 
      <td width="100%"><font face="arial" size="2"><b><? echo $row[veld1]; ?><b></td> 
    </tr> 
    <tr> 
      <td width="100%"><font face="arial" size="2"><br> 
      <b><? echo nl2br ($text); ?><b></td> 
    </tr> 
  </table> 
  </center> 
</div> 

<? 
} 
?> 
?>

Een ander probleem is dat ie in de file FILE_EXISTS functie de variabelen niet uit de database leest.

Wie kan mij helpen

  • gvtulder
  • Registratie: December 2001
  • Laatst online: 27-12-2024
De eerste regel van het resultaat van de query is geen 1, maar 0. Als je dus alleen de eerste regel van de query wilt hebben, moet je LIMIT 0,1 gebruiken. LIMIT 1,1 is de tweede regel. Als die er toevallig niet is, krijg je niets.

Misschien helpt het als je in de file_exists de bestandsnaam iets anders samenstelt: "images/".$row["pic1"]

gvtulder.f2o.org


Verwijderd

Topicstarter
bedankt voor je snelle reactie.

maar nu komt het :

hij leest ook nix uit wat boven deze limit functie staat. Dus tabel met vaste waarden wordt ook niet uitgelezen.

En inderdaad foutje, 1 en 0 maar ik moet dus de laatst toegevoegde hebben dus is dat LIMIT 0, 1 ???

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

dat is gewoon LIMIT 1

Klaar voor een nieuwe uitdaging.


  • gvtulder
  • Registratie: December 2001
  • Laatst online: 27-12-2024
Op maandag 18 februari 2002 21:51 schreef chem het volgende:
dat is gewoon LIMIT 1
Weer wat geleerd, hoewel ik 0,1 misschien wel duidelijker vind, maar dat is denk ik meer een kwestie van smaak.
Op maandag 18 februari 2002 21:50 schreef Ketje het volgende:
hij leest ook nix uit wat boven deze limit functie staat. Dus tabel met vaste waarden wordt ook niet uitgelezen.
Wat bedoel je precies met 'tabel met vaste waarden'? Ik zie maar één query.

gvtulder.f2o.org


Verwijderd

Topicstarter
<table border="0" width="100%" cellpadding="0" cellspacing="0"> <tr> <td width="50%"> <b><font face="verdana" size="2" color="#000000">Events</font> <br> <font color="0066CC" face="verdana" size="3"><? echo $row[veld2]; ?></font></b>

hij laat zelfs eerste cel niet zien en dat is toch geen dynamische inhoud

  • gvtulder
  • Registratie: December 2001
  • Laatst online: 27-12-2024
Je bedoelt de html-tabel, ik zat te denken aan een MySQL-tabel. Nee, inderdaad. Je zou zeggen dat die tabel dan wel gewoon zou moeten worden weergegeven. Zit er misschien in login.php, dat je aan het begin include()t, iets dat die weergave tegen houdt. De bron van de pagina zoals die na verwerking van het script wordt verstuurd naar de browser kan daar denk ik meer over vertellen.

Wat ook kan, is dat er in login.php een fout staat. Heb je error_reporting aan staan? Anders stopt het script en dus de uitvoer na een fout.

Voor de oplossing van dit probleem zegt het php-script niet zo veel, daar moet je de source van de uiteindelijke html voor hebben.

gvtulder.f2o.org


Verwijderd

Topicstarter
heb nu via limit 0,1 de uitvoer opgelost

het andere probleemm, de file exsist, nog niet

hij kent de waarde $row[pic1] niet, want in de bron staat als source voor de pic images/ dus zonder bestandsnaam. hiervoor heb ik $row[pic1] in de f.e. statement vervangen door een vaste waarde, de bestandsnaam om te kijken wat ie verkeerd doet

Verwijderd

Topicstarter
ook wanneer ik een andere notatie gebruik leest die de var niet uit

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op maandag 18 februari 2002 21:51 schreef chem het volgende:
dat is gewoon LIMIT 1
Maar dat is niet de officiele mysqldefinitie toch? officielee moet je limit 0,1 gebruiken imo

Verwijderd

Topicstarter
ja ik heb ook limit 0, 1 gebruikt nu en nu werkt de inhoud wel.

nu werkt alleen de $row[pic#] niet.

wie weet hoe dat kan?

heb nu dit als code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
 
if(FILE_EXISTS("images/$row[pic1]"))
{ 
echo "&amp;nbsp;&amp;nbsp;[img]\"images/$row[pic1]\"[/img]";
}
else
{ 
//file niet weergeven 
} 
?>

en nu is het vreemde als ik <? echo $row[pic1]; ?> doen dan leest die wel een waarde uit maar zo in de functie niet.
Pagina: 1