login  Naam:   Wachtwoord: 
Registreer je!
 Forum

echo rijen en data (Opgelost)

Offline Appie_Dijk - 18/03/2014 21:44
Avatar van Appie_DijkLid Hoi,

Ik ben momenteel bezig met een website en daar wil ik vele gegevens uit een database halen...

In de database staan vele kolommen en rijen, is het ook mogelijk om deze op een simpele manier in php weer te geven? hiermee bedoel ik het volgende: (dus zonder de kolomnaam over te schrijven deze weer te geven?)

<?
$sql_gegevens = mysql_query("SELECT * FROM tabel WHERE status='actief'")or die(mysql_error());
//uiteraard kan ik hier nog een LIMIT 0,1 aan stellen of minder kolommen selecteren

while($data_gegevens = mysql_fetch_array($sql_gegevens))
{
echo "
<table>
<tr><td>". $kolomnaam ."</td><td>". $rijwaarde ."</td></tr>
</table>
}
?>

8 antwoorden

Gesponsorde links
Offline vinTage - 18/03/2014 22:05
Avatar van vinTage Nieuw lid Dit werkt gewoon (net getest voor de zekerheid)

  1. $query = mysql_query("SELECT * FROM mytable");
  2.  
  3. while ($row = mysql_fetch_assoc($query)) {
  4. foreach($row as $key => $value) {
  5. print "$key = $value <br />";
  6. }
  7. }
Offline Jim - 19/03/2014 10:01 (laatste wijziging 19/03/2014 10:03)
Avatar van Jim Lid
  1. <?php
  2.  
  3. echo '<h3>Inhoud van database : `'.$_GET['d'].'`</h3>';
  4.  
  5. $query = mysql_query("SELECT * FROM `".$_GET['d']."`");
  6.  
  7. while ( $row = mysql_fetch_assoc ( $query ) ) {
  8. echo '<div style="postion:relative; float:left;margin: 5px; border: 1px solid black;">';
  9. foreach ( $row as $key => $value ) {
  10. echo "$key = $value <br />";
  11. }
  12. echo '</div>';
  13. }
  14.  
  15. if ( !$_GET['d'] ) {
  16. echo 'Geen database naam opgegeven.';
  17. }
  18.  
  19. ?>


Uitbreiding op bovenstaande (dat overigens gewoon voldoet), de naam van database via file.php?d=#naam.database# meegeven.
Offline Maarten - 19/03/2014 10:43
Avatar van Maarten Erelid Niet onbelangrijk bij bovenstaande dat dit zo lek als een zeef is en dat je dat je die $_GET parameter zou moeten valideren in plaats van die zomaar in je query te gebruiken.

zie ook: SQL-injectie
Offline marten - 19/03/2014 10:43
Avatar van marten Beheerder Let bij het script van Jim wel op de juiste afhandeling van beveiliging. Controleer dus dat wat je met de variabele $_GET['d'] meegeeft ook echt een tabelnaam is die je verwacht.
Offline Jim - 19/03/2014 12:13
Avatar van Jim Lid Is ook zo, ging er vanuit dat het script voor hem enkel bedoelt was om snel even in de database rond te neuzen en de structuur eruit te halen. Lijkt mij sowieso voor de hand liggend dat wanneer je data uit een specifieke tabel wilt halen je deze altijd codeert en niet via $_GET verkrijgt.
Offline Thomas - 19/03/2014 14:18 (laatste wijziging 19/03/2014 14:32)
Avatar van Thomas Moderator EDIT2: let ook op de database-data die je afdrukt. Als dit HTML is, wordt HTML afgedrukt. Waarschijnlijk wil je deze output "escapen", oftewel ontdoen van speciale betekenis (zoals HTML, JavaScript etc.). Vooral / temeer wanneer de data is ingevoerd door andere gebruikers en mogelijk allerlei rotzooi bevat. Het zomaar afdrukken van rauwe, niet ge-escapete data is niet helemaal zonder gevaar.

Alternatieven voor het opvragen van database-data, maar dan niet via een script zoals hierboven wordt voorgesteld:

Een tool zoals PHPMyAdmin. Ik ben hier zelf geen fan van, maar dit stelt je in staat om snel overal doorheen te wandelen.

Voor een beter begrip en om (op den duur) sneller te werken met MySQL is het "werken vanaf de prompt" wellicht een beter idee.

Ik weet niet precies waar je je website ontwikkelt? Lokaal via WAMP? Online? Als je je site online ontwikkelt en je hebt webruimte via een host zit hier meestal een controlepaneel (Helm, cPanel, DirectAdmin - noem het maar op) bij. Via dit controlepaneel is meestal ook een optie om een database management tool (zoals PHPMyAdmin) te openen - heb je hier al naar gekeken?

Sommige hosts bieden ook shell access aan. Hiermee kun je dan een beveiligde (SSH) verbinding maken met jouw server/vhost/whatever. Je kunt dan waarschijnlijk ook via de shell via mySQL een verbinding maken met je database. Ook als je je site lokaal draait (bijvoorbeeld via WAMP) kan dit, open een DOS-box en maak een verbinding met je database. Deze laatste methode is wat mij betreft de beste / de meest leerzame. Gewoon rechtstreeks SQL statements inkloppen.

EDIT: spelling
Offline Maarten - 19/03/2014 17:23
Avatar van Maarten Erelid Ter aanvulling op FangorN: ook de tools HeidiSQL en MySQL Workbench (beide gratis) kunnen handig zijn om data in je database te verkennen, mits je toegang van op afstand hebt OF lokaal zit te werken.
Offline Appie_Dijk - 04/04/2014 15:07
Avatar van Appie_Dijk Lid Hartelijk dank iedereen voor de reacties!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.208s