Een willekeurige SQL query (SELECT) afhandelen in PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bobbie Feenstra

Bobbie Feenstra

20/05/2011 15:01:05
Quote Anchor link
Beste lezers,

Voor school heb ik een opdracht gekregen om een systeem wat momenteel in MSSQL is geschreven met een PHP-frontend om te schrijven naar een MYSQL omgeving. Het betreft hier een website (waar ik de broncode e.d. niet van heb) waar men opdrachten uitvoert in MYSQL (alleen met SELECT). Nu zit ik met een klein vraag:

Voor zover ik weet is het in PHP niet mogelijk om een tabel rechtstreeks uit de database te halen (SELECT * FROM users), maar moet je zelf de tabel scripten in PHP met vaste kolomkoppen en vervolgens met for/while de gegevens uitlezen tussen <tr> en <td> tags.

Omdat de gebruiker in dit systeem zelf de query kan invoeren, zou ik niet weten hoe ik de gegevens die hiermee worden opgehaald uit de database in een tabel kan zetten (dus een dynamische tabel).

Ik hoop dat jullie mij een stapje verder kunnen helpen!
 
PHP hulp

PHP hulp

22/12/2024 10:18:12
 
Kenneth Dehouwer

Kenneth Dehouwer

20/05/2011 15:18:40
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php

// ---------------------------------
// Dit kan je beter in een apart php bestand steken en hierin includen

$username="username";
$password="password";
$database="your_database";

mysql_connect(localhost,$username,$password);
@
mysql_select_db($database) or die( "Unable to select database");
// ---------------------------------

if(isset($_POST["verzend"])){
$query = $_POST["query"];
    $data = mysql_query($query)
    while($info = mysql_fetch_array( $data ))
     {

         echo "<table>";
        echo "<tr><td>".$info["naam"]."</td></tr>";
        echo "</table>";
     }
}

?>


Dit is dan je formulier waar je de query kunt ingeven.

<form action="query.php" method="post">
SQL Query: <input type="text" name="query"><br>
<input type="Submit" name=verzend">
</form>
 
Gerhard l

gerhard l

20/05/2011 15:36:07
Quote Anchor link
klik
voor jullie allebei?
 
Kenneth Dehouwer

Kenneth Dehouwer

20/05/2011 15:41:38
Quote Anchor link
hoezo voor ons allebei?
 
Gerhard l

gerhard l

20/05/2011 15:51:10
Quote Anchor link
Kenneth Dehouwer op 20/05/2011 15:41:38:
hoezo voor ons allebei?


Kenneth Dehouwer:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php

// ---------------------------------
// Dit kan je beter in een apart php bestand steken en hierin includen

$username="username";
$password="password";
$database="your_database";

mysql_connect(localhost,$username,$password);
@
mysql_select_db($database) or die( "Unable to select database");
// ---------------------------------

if(isset($_POST["verzend"])){
$query = $_POST["query"];
    $data = mysql_query($query)
    while($info = mysql_fetch_array( $data ))
     {

         echo "<table>";
        echo "<tr><td>".$info["naam"]."</td></tr>";
        echo "</table>";
     }
}

?>


Omdat je een aantal dingen mist:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
//zoals Kenneth zei zet je database gegevens in een apart bestandje
include 'connect.php';
//is je formulier gepost??
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    //is er wel iets ingevuld?
    if($_POST['query']){
        //als $_POST['query'] bijv. is: SELECT naam FROM tabel
        $query = mysql_query($_POST['query']);
        if($query){
            echo '<table border="1">';
            while($row = mysql_fetch_assoc($query)){
                //dan zal je hier al je namen zien
                echo '<tr><td>'.$row['naam'].'</td></tr>';
            }

            echo '</table>';
        }

        else{
            //mysql error
            echo 'error '.mysql_error();
        }
    }

    else{
        echo 'niets ingevuld';
    }    
}

?>

<form action="" method="POST">
<!-- dit gaat alleen maar werken met een SELECT query -->
SQL Query: <input type="text" name="query"><br>
<input type="submit"/>
 
Bobbie Feenstra

Bobbie Feenstra

20/05/2011 16:19:36
Quote Anchor link
Bedankt voor de reacties! Dit is echter niet helemaal wat ik bedoel.
De database bevat 6 tabellen waar SELECT queries op worden uitgevoerd. Uit het bovenstaande voorbeeld wordt al aangenomen dat er een veld "naam" wordt opgehaald, maar dat is willekeurig in mijn idee.

Zie het als PHPmyadmin, als je daar een SELECT query op loslaat, laat hij mooi zien wat je op hebt gevraagd! (Dus geen statische tabel met $row['naam']; !
 
PHP Scripter

PHP Scripter

20/05/2011 16:40:29
Quote Anchor link
Het was toch de bedoeling dat jij dat ging maken voor school? Nu laat je andere het werk doen!
 
Bobbie Feenstra

Bobbie Feenstra

20/05/2011 16:43:45
Quote Anchor link
PHP Scripter op 20/05/2011 16:40:29:
Het was toch de bedoeling dat jij dat ging maken voor school? Nu laat je andere het werk doen!


Klopt, ik bood me aan om dat te gaan doen tbv de rest van de klas!
 
Bobbie Feenstra

Bobbie Feenstra

23/05/2011 18:45:47
Quote Anchor link
Even een bump, sorry!

Zie hier wat ik bedoel (probeer het zelf maar eens, niveau 1 aanklikken en dan vraag 1). Het gaat me om de afhandeling van de query, hoe dit in die tabel wordt gezet.

http://athena-hi.fontys.nl/users/879014/ICT21/Demo_Site/SQL_Vragen/index.html
 
- SanThe -

- SanThe -

23/05/2011 19:07:59
Quote Anchor link
Beetje link natuurlijk als jij zomaar de opgegeven sql gaat uitvoeren. Je data is dan zo weg lijkt mij.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.