[PHP-MYSQL] waarde database word niet uitgelezen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
In php-pagina laat ik een plaatje zien uit de mysql database. Dit plaatje is een thumb die weer doorlinkt naar een php-pagina met het grote plaatje.
Het gewoon uitlezen en linken hiernaartoe gaat prima, alleen heb ik hier aan toegevoegd dat het plaatje verborgen moet worden zodra het veld in de database leeg is.

Zo ziet de code eruit:
PHP:
1
2
3
4
5
6
7
8
 <?php 
if ($row_DetailRS1['Foto1'] == ""){ 
echo (""); }    
else{   
echo '<a href="Bungalowparken_foto1.php?recordID=".$row_DetailRS1["Id"]."">
[img]"../afbeeldingen/bungalowparken/".$row_DetailRS1["Foto1_thumb"]."">
</a[/img]'; } 
?>

Het plaatje word wel getoond als ik bij <img src> gewoon een pad naar het plaatje geef. Ook dus zonder het "weglaat" script word de afbeelding gewoon getoond.

Zit er nu een fout in dit stukje php of moet ik het elders zoeken?


was misschien wat onduidelijk, maar ff wat extra uitleg:
Foto1 = de naam van het veld waar de naam van de afbeelding instaat.
Id = de parameter die ik via de url meegeef om deze detail pagina te laten zien en ook zodat de grote foto weet welke record die moet hebben uit de tabel.

PHP:
1
2
3
4
<?php if ($row_DetailRS1['Icoon_bar'] == "blanco.gif"){
echo (""); }
else{
echo ('[img]"../afbeeldingen/icoontjes/bar.png">');[/img]

Dit werkt wel gewoon (na een beetje hulp van hier ook)

[ Voor 57% gewijzigd door Verwijderd op 25-06-2004 16:28 ]


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Je zegt dat het werkt, maar als ik de highlighting bekijk ziet het er wat raar uit, mee eens? Ik vind je manier van checken of er een plaatje is ook een beetje vreemd, je gebruikt allemaal variabelen door elkaar. Kun je het Id niet gewoon op 0 zetten als er geen plaatje ist?

Waarschijnlijk is je veld null ipv een lege string "". De if-clause wordt dan:

PHP:
1
$row_DetailRS1['Foto1'] == "" || $row_DetailRS1['Foto1']  == null

[ Voor 74% gewijzigd door Skaah op 25-06-2004 16:20 ]


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Skaah schreef op 25 juni 2004 @ 16:18:
PHP:
1
$row_DetailRS1['Foto1'] == "" || $row_DetailRS1['Foto1']  == null
http://nl.php.net/empty


@TS:
Je echo is verkeerd. Kijk maar eens naar ' en "

[ Voor 21% gewijzigd door LuCarD op 25-06-2004 16:21 ]

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

Vervang bij je echo de ' door " en escape (\) de "-s die je wilt echo-en.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 25 juni 2004 @ 16:34:
Vervang bij je echo de ' door " en escape (\) de "-s die je wilt echo-en.
Dan krijg ik de volgende error:
Parse error: parse error, unexpected T_BAD_CHARACTER, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Inetpub\wwwroot\weekend in zeeland\html\bungalowparken_details.php on line 118

Waarbij in regel 118 de echo staat.

Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
2
3
echo "<a href=\"Bungalowparken_foto1.php?recordID=".$row_DetailRS1["Id"]."\">
[img]\"../afbeeldingen/bungalowparken/".$row_DetailRS1["Foto1_thumb"]."\">
</a[/img]";

Zo moet ie gewoon werken...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 25 juni 2004 @ 16:46:
php code
Zo moet ie gewoon werken...
thanx, zo werkt het idd, ik zie nu ook waar ik de fout heb gemaakt.
Ik moet toch nog eens wat beter gaan kijken hoe het met die escape zit 8)7

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
LuCarD schreef op 25 juni 2004 @ 16:20:
[...]

http://nl.php.net/empty


@TS:
Je echo is verkeerd. Kijk maar eens naar ' en "
PHP:
1
2
3
4
5
$a = 0;
$b = "0";

echo empty($a);
echo empty($b);

|:(

[ Voor 21% gewijzigd door Skaah op 25-06-2004 17:23 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Skaah schreef op 25 juni 2004 @ 17:22:
[...]

PHP:
1
2
3
4
5
$a = 0;
$b = "0";

echo empty($a);
echo empty($b);

|:(
Empty geeft idd alleen true terug als de string leeg is, dus als de sting met een 0 gevuld is, is deze niet leeg natuurlijk :+.

Maar de TS geef toch zelf ook al aan: if $record["bla"] = "", daar kan je wel empty() gebruiken...
Verwijderd schreef op 25 juni 2004 @ 16:58:
[...]


thanx, zo werkt het idd, ik zie nu ook waar ik de fout heb gemaakt.
Ik moet toch nog eens wat beter gaan kijken hoe het met die escape zit 8)7
Escapen moet alleen als je een teken wilt laten echo'en wat de echo functie zelf in verwarring kan brengen :)

Voorbeeld:
Je wilt laten zien:
code:
1
Ik ben "1337", dit betekend dat ik elite ben :)

Als je dit gewoon letterlijk zo in de echo gooit, denk ie bij de " voor de 1 dat de echo al is afgelopen, en verwacht ie een ;.

De correcte manier is dus deze twee double-quotes te escapen, zodat echo weet dat je deze wilt laten zien, en dat hij nog verder moet zoeken naar het eind:
PHP:
1
2
3
//zie ook het verschil in kleur:
echo "Ik ben "1337", dit betekend dat ik elite ben :)";
echo "Ik ben \"1337\", dit betekend dat ik elite ben :)";


En als je dan variabelen wilt laten zien?
Het is binnen php mogelijk om de variabele gewoon tussen de regels tekst te zetten, zie //1, maar het is netter om de echo te onderbreken (let op, onderbreken, dus geen escape!), en dan de string er tussen te zetten, zie //2.
PHP:
1
2
3
4
5
$naam = "Kees";
//1
echo "Ik heet $naam, leuke naam nietwaar?";
//2
echo "Ik heet ".$naam.", leuke naam nietwaar?";

[ Voor 80% gewijzigd door Verwijderd op 25-06-2004 17:35 . Reden: netjes maken ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
he bedankt slindenau, dit maakt mij het een heel stuk duidelijker.
Pagina: 1