[PHP] PHP data uit mySQL db halen werkt niet *

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Ik heb op het moment een mySQL table gevuld met wat data, maar om het even makkelijk te maken zeggen we wat er

PHP:
1
2
3
4
5
<?php

echo "gathering of tweakers"; 

?>


instaat.

Nu probeer ik die data via een mySQL query uit de database te halen, alleen dat lukt niet goed.

De data wordt niet geparsed(wel in de bron weergegeven maar ook niet op de pagina).

Me mySQL query,

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php

$query = mysql_query("
    SELECT * FROM hostingklanten.pagina 
    WHERE `naam`='".$_POST['naam']."'
") or die(mysql_error());

$result= mysql_fetch_array($query);

print $result['tablecontent'];

?>



Helaas werkt dit alles dus niet, is dit normaal of doe ik iets verkeerd ?

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
als je wil dat het als php-code wordt geparsed dan moet je eval() gebruiken. maar da's wel dirty. ook zul je dan de php-tags weg moeten laten

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 16:43

Kees

Serveradmin / BOFH / DoC
wat werkt niet goed?

ZIe je de letterlijke code in je scherm? (zoals die hierboven staat?)
Of zie je een blanco pagina?

In het eerste geval ligt het aan je webserverconfiguratie en in het tweede geval aan dat je te weinig debugged, zoals een paar echt statements tussendoor.
(en gebruik om te debuggen print_r($result) / var_dump($result) dat debugged wel makkelijk

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Verwijderd

Topicstarter
Kees schreef op 28 August 2003 @ 05:35:
wat werkt niet goed?

ZIe je de letterlijke code in je scherm? (zoals die hierboven staat?)
Of zie je een blanco pagina?

In het eerste geval ligt het aan je webserverconfiguratie en in het tweede geval aan dat je te weinig debugged, zoals een paar echt statements tussendoor.
(en gebruik om te debuggen print_r($result) / var_dump($result) dat debugged wel makkelijk
PHP:
1
2
3
4
5
<?php 

echo "gathering of tweakers"; 

?> 


Wordt NIET weer gegeven op het scherm, maar wel in de broncode van de HTML pagina.

Ik zal eens print_r gaan gebruiken

edit:

Het gebruik van eval(); schijnt inderdaad te werken, het probleem is alleen nu dat ik elke pagina in PHP moet gaan stouwen(geen plain HTML meer dus, maar alles met print).

Maarja ;)

[ Voor 18% gewijzigd door Verwijderd op 28-08-2003 05:46 ]


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Erm, je hebt PHP code in een database opgeslagen en gaat deze nu uitvoeren via een eval() statement :? Dat kan zeker niet op een mooiere manier?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

De reden dat het niet word weergegeven op het scherm komt omdat er een < aan het begin en een > aan het eind staat. Het word dus als een soort onbekende tag gezien.

Waar ik benieuwd naar ben is waarom je php code in je db op gaat slaan.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Janoz schreef op 28 August 2003 @ 09:36:
De reden dat het niet word weergegeven op het scherm komt omdat er een < aan het begin en een > aan het eind staat. Het word dus als een soort onbekende tag gezien.

Waar ik benieuwd naar ben is waarom je php code in je db op gaat slaan.
hij heeft vast weinig diskruimte ofzo ;)

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
Het gebruik van eval(); schijnt inderdaad te werken, het probleem is alleen nu dat ik elke pagina in PHP moet gaan stouwen(geen plain HTML meer dus, maar alles met print).
:? :?
Huh, wat wil je nou eigenlijk? Wwil je gewoon een .HTML file hebben daar een beetje php inzetten en dat zou dan moeten werken?

waarom zet je niet dit in de database: "gathering of tweakers"

en maak je een file bijv. voorbeeld.php (ja, .PHP)
en daarin
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
<!-- hier natuurlijk de normale dingen -->
</head>
<body>
Hier staat wat normale tekst bijvoorbeeld <b> in bold </b> 
en hieronder komt de tekst uit de database<br>
<?php
$query = mysql_query(" 
    SELECT * FROM hostingklanten.pagina 
    WHERE `naam`='".$_POST['naam']."' 
") or die(mysql_error()); 

$result= mysql_fetch_array($query); 

print $result['tablecontent']; 
?>
<br> en dan hier weer verder met de gewone html
</body>
</html>


Of snap ik nou helemaal niet wat je wilt bereiken??

  • Anders
  • Registratie: December 2000
  • Laatst online: 13-09 18:52
Een beetje error-handling kan ook niet echt kwaad:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$sql = "SELECT * FROM hostingklanten.pagina WHERE naam='".$_POST['naam']."'";
if ($result = mysql_query($sql)) {
    if (mysql_num_rows($result)) {
        if ($row = mysql_fetch_array($result)) {
            print $row['tablecontent'];
        } else {
            print "de kolom tablecontent bestaat niet";
        }
    } else {
        print $_POST['naam'] . " komt niet voor in de database";
    }
} else {
    print "Fout in database-query";
    print "<P>Query was:<BR>$sql";
    print "<P>Error was: " . mysql_error();
}


.. zo vind je sneller uit wat er mis gaat als er iets niet werkt. Al is het voor jouw probleem niet echt werkbaar want ik begrijp dat je PHP wil eval()'en direct vanuit de database? Tricky tricky tricky... Iemand die via bv. een foutje in een script iets kwaadwillends in de database weet te planten kan zo bv je hele database laten wissen (mysql_query/Drop table blabla).

Nooit aan beginnen, tenzij je donders goed weet wat je doet.

Ik spoor veilig of ik spoor niet.


Verwijderd

Topicstarter
Janoz schreef op 28 augustus 2003 @ 09:36:
Waar ik benieuwd naar ben is waarom je php code in je db op gaat slaan.
Het is niet alleen de php code maar alle pagina's op de website(behalve de index.php natuurlijk waarin de pagina's worden aangeroepen).

Omdat er zoveel van mijn data in een database stond dacht ik 'waarom de pagina's niet'.

Daarom dus ;)

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op 28 August 2003 @ 15:22:
[...]
Omdat er zoveel van mijn data in een database stond dacht ik 'waarom de pagina's niet'.

Daarom dus ;)
dat is echt een hele slechte reden.
1. het wordt traag
2. het brengt security issues met zich mee
3. het het is een ranzige methode
4. je moet heel omslachtig je code gaan editten
5. een (relationele) database is bedoeld om data gestructureerd op te slaan. niet als opslagmiddel.
6. etc. etc.

gewoon includes gebruiken. Da's overzichtelijker, makkelijker, sneller, etc.
Pagina: 1