0

I want to update my SQL statement with an input text field and need to pass the value.

I have an index.php file and a getDataC.php file. I need to insert a value in the text field in index to update a SQL statement in getDataC to use a function in index with it. How can I pass the value of the index field to getDataC to use it in index again?

Here my code, from index.php:

<body>
<h1 align="center">BigData - Gruppe 2</h1>
</br>
<table width="100%" align="center">
    <tr>
        <td width="25%" align="center">
            <h2>Bitte w&auml;hlen Sie eine Abfrage aus!</h2>
        </td>
        <td width="75%" align="center">
            <h2>Grafische Darstellung</h2>
        </td>
    </tr>
    <tr>
        <td width="40%">
            <hr>
            <h3 align="center">Abfragen:</h3> </br>
            <div>
                Einfluss von Bildung auf Fertilitätsrate (Japan)
                <button type="submit" id="actionA">Anzeigen</button>
            </div> </br>
            <div>
                Einfluss von Internet auf Fertilitätsraten (Japan)
                <button type="submit" id="actionB">Anzeigen</button>
            </div> </br>
            <div>
                Einfluss von Internet und Bildung auf die Anzahl der Frauen in
                Wirtschaft/Politik </br>
                <form > <label for="LandC">Wähle ein Land: <input type=text id="LandC" name="LandC"> </label></form>

                <button type="submit" id="actionC">Anzeigen</button>
            </div> </br>

And, here the code from getDataC.php:

<?php
$con = mysqli_connect('localhost','root','','bigdata');
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}

if( isset($_GET['submit']) )
{
//be sure to validate and clean your variables
$landC = htmlentities($_GET['LandC']);

}
if( isset($landC) ) {
 $k = $landC;
}
else $k='Germany';


$qry = "SELECT  * FROM facts WHERE facts.Country = '".  $k ."' AND Frauen_Fuehrungspositionen_Prozent IS NOT NULL";

$result = mysqli_query($con,$qry);

mysqli_close($con);

$table = array();
//Es´rstelt die Spaöten der Tabelle
$table['cols'] = array(
//Labels for the chart, these represent the column titles
array('id' => '', 'label' => 'Land', 'type' => 'string'),
    array('id' => '', 'label' => 'Jahr', 'type' => 'number'),

array('id' => '', 'label' => 'Staatsausgaben GDP per capita in Dollar', 'type' => 'number'),
array('id' => '', 'label' => 'Internetzugang in Prozent', 'type' => 'number'),

array('id' => '', 'label' => 'Frauen Fuehrungspositionen in Prozent', 'type' => 'number')

); 

$rows = array();
foreach($result as $row){
$temp = array();

//Values / Füllt die Spalten in der hier angegebenen Reihenfolge mit Zahlen
$temp[] = array('v' => (string) $row['Country']);
    $temp[] = array('v' => (int) $row['Year']); 

$temp[] = array('v' => (double) $row['Staatsausgaben_GDP_per_capita_in_Dollar']); 
    $temp[] = array('v' => (double) $row['Internetzugang_in_Prozent']); 

$temp[] = array('v' => (double) $row['Frauen_Fuehrungspositionen_Prozent']);
$rows[] = array('c' => $temp);

}   
$result->free();

$table['rows'] = $rows;

$jsonTable = json_encode($table, true);
echo $jsonTable;
?>

Now, the else statement of getDataC sets $k to 'Germany' since it seems that the text of the input field LandC doesn't get passed to getDataC.

Jonathan
  • 10,936
  • 8
  • 64
  • 79
  • 1
    Btw, your code is probably vulnerable to SQL injection: http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php – chrki Jul 23 '16 at 10:32
  • @YeuSeChia these dont work cause i work here with google charts and need to stay on index.php these solutions all send me onto getDataC – Dennis Koch Jul 23 '16 at 11:24

4 Answers4

0

change your form tag with this tag <form action="HERE PUT THE PLACE OF TH FILE getDATAC.php" method="GET">

0
<form>

Should be:

<form action="getDataC.php" method="GET">

Keeping the action the correct path of the file.

Muhammad Ali
  • 668
  • 1
  • 9
  • 24
0

Your HTML with Change (change your form action if your file getDataC.php is at another location ) :

<body>
<h1 align="center">BigData - Gruppe 2</h1>
</br>
<table width="100%" align="center">
    <tr>
        <td width="25%" align="center">
            <h2>Bitte w&auml;hlen Sie eine Abfrage aus!</h2>
        </td>
        <td width="75%" align="center">
            <h2>Grafische Darstellung</h2>
        </td>
    </tr>
    <tr>
        <td width="40%">
            <hr>
            <h3 align="center">Abfragen:</h3> </br>
            <div>
                Einfluss von Bildung auf Fertilitätsrate (Japan)
                <button type="submit" id="actionA">Anzeigen</button>
            </div> </br>
            <div>
                Einfluss von Internet auf Fertilitätsraten (Japan)
                <button type="submit" id="actionB">Anzeigen</button>
            </div> </br>
            <div>
                Einfluss von Internet und Bildung auf die Anzahl der Frauen in
                Wirtschaft/Politik </br>
                <form action="getDataC.php">
                <label for="LandC">Wähle ein Land: <input type=text id="LandC" name="LandC"> </label>
                <button type="submit" id="actionC">Anzeigen</button>
                </form>
            </div> </br>

Your getDataC.php file with change :

<?php
if(isset($_GET['LandC']) ){
//be sure to validate and clean your variables
$landC = htmlentities($_GET['LandC']);

}
if(isset($landC) ) {
 $k = $landC;
}
else $k='Germany';
$qry = "SELECT  * FROM facts WHERE facts.Country = '".  $k ."' AND Frauen_Fuehrungspositionen_Prozent IS NOT NULL";

$result = mysqli_query($con,$qry);

mysqli_close($con);

$table = array();
//Es´rstelt die Spaöten der Tabelle
$table['cols'] = array(
//Labels for the chart, these represent the column titles
array('id' => '', 'label' => 'Land', 'type' => 'string'),
    array('id' => '', 'label' => 'Jahr', 'type' => 'number'),

array('id' => '', 'label' => 'Staatsausgaben GDP per capita in Dollar', 'type' => 'number'),
array('id' => '', 'label' => 'Internetzugang in Prozent', 'type' => 'number'),

array('id' => '', 'label' => 'Frauen Fuehrungspositionen in Prozent', 'type' => 'number')

); 

$rows = array();
foreach($result as $row){
$temp = array();

//Values / Füllt die Spalten in der hier angegebenen Reihenfolge mit Zahlen
$temp[] = array('v' => (string) $row['Country']);
    $temp[] = array('v' => (int) $row['Year']); 

$temp[] = array('v' => (double) $row['Staatsausgaben_GDP_per_capita_in_Dollar']); 
    $temp[] = array('v' => (double) $row['Internetzugang_in_Prozent']); 

$temp[] = array('v' => (double) $row['Frauen_Fuehrungspositionen_Prozent']);
$rows[] = array('c' => $temp);

}   
$result->free();

$table['rows'] = $rows;

$jsonTable = json_encode($table, true);
echo $jsonTable;
?>
Ravi Roshan
  • 570
  • 3
  • 14
0

Create a php file where you want to send your data.And put same name in action.

satish kilari
  • 746
  • 4
  • 21