2014-04-16 3 views
-1

J'ai un exemple simple et je ne peux pas sembler faire ce qui ne va pas. J'ai une forme simple dans laquelle j'envoie des données à mon dbphp récupérer des données de mySQL db dans la forme

c'est la forme:

<form action="selectDB.php" method="post"> 
<input type="text" name="studentID" /> 
<input type="submit" name="send" /> 
</form> 

Je passe la valeur sur la page php avec ce code:

<?php 
if(isset($_POST['send'])){ 
    $var = $_POST[ 'studentID' ]; 
    //now you can use the var for an query to your database 
    //please note: this very basic, without any security of injection 
    $res = mysql_query('SELECT `*` FROM `student` WHERE `idStudent` LIKE \'%'.$var.'%\' '); 
    if(mysql_num_rows($res)){ 
     $row = mysql_fetch_assoc($res); //get one (first) result 
    } 
} 

?> 

<script> location.href='editRegistration.php';</script> 

Ensuite, j'utilise le script ci-dessus pour ouvrir la 3ème page. Je veux charger le résultat de la requête dans le formulaire. le problème est que je reçois des champs d'entrée vierges et ne pas définir avec les données de la base de données. Comment réparer le problème? 3ème code de la page:

<form class="form-horizontal" id="registration" method="post" action="selectDB.php" name="send"> 
    <input type="text" name="studentID" align= "right" class="textbox" value="<?php isset($row[ '0' ]) ? $row[ 'idStudent' ] : '' ?>" /> <span id="errorID"></span> <br/> 
</form> 
+0

Merci, mais cela ne résout pas le problème – user2674835

+0

Vous faites la redirection avec javascript. Avec cette 3ème page n'a pas de données php $ row. –

+1

Vous êtes vulnérable aux [attaques par injection SQL] (http://bobby-tables.com), et vous supposez simplement que votre requête a fonctionné. Avez-vous fait un débogage, comme 'var_dump ($ _ POST)' pour voir si le formulaire est correctement envoyé? Vérifié la valeur de retour de 'mysql_query()' pour boolean false? De plus, votre code tel qu'il est écrit essaie de récupérer une ligne de données, puis affiche simplement une redirection javascript sans jamais sortir les données que vous avez récupérées. –

Répondre

1

Le problème ici est

$res = mysql_query('SELECT `*` FROM `student` WHERE `idStudent` LIKE \'%'.$var.'%\' '); 

il devrait être:

$res = mysql_query("SELECT * FROM `student` WHERE `idStudent` = ".$var); 

Je pense que maintenant il va fonctionner.

bien que ce ne soit pas la bonne façon d'interroger le serveur, mais pour un débutant, il peut être utile.

Questions connexes