syntax error, unexpected '$_GET' (T_VARIABLE)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java-softwaredeveloper

Wat je gaat doen: Dit ga je doen Daar kunnen we heel kort over zijn: software ontwikkelen met de agile-/scrumteams van toonaangevende organisaties. Zoals ministeries, gemeentes, financiële instellingen en retail- en energiebedrijven. En als het bij je past, begeleid je collega-developers in het ontwikkelproces. Doordat je tijdelijk aan een opdracht werkt, doe je in korte tijd veel mooie ervaringen op en leer je nieuwe technieken en tools kennen. Je teamleden werken bijvoorbeeld met Spring, JPA/Hibernate, AJAX, REST/JSON, GIT, AWS en TDD. Het interessante is dat jij volledig in control bent en zelf kiest welke opdrachten je oppakt. Het soort rol,

Bekijk vacature »

Python / C++ Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12029 Introductie Our client, an international company is looking for a Software Engineer for the location Eindhoven. The company is active in the high-tech market and is looking for candidates to expend the current team of engineers. Together with your colleagues you are responsible for the developing software. You are a pioneer concerning software and interested in the different ways of developing and integration software. Functieomschrijving You are going to develop and realize software solutions for our High-Tech department. You are involved in all stages concerning software development. You are

Bekijk vacature »

Junior Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een junior Software Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van de warehouses. Deze organisatie kan de internationale start

Bekijk vacature »

Randstad - Oracle Forms Developer (Freelance/ZZP)

Startdatum: ZSM Max tarief per uur: 85€ Uren per week: 32-40 Bij RGN IT werken we steeds meer en meer volgens de Agile Way of Working. Dat betekent dat je in het team met het Scrum Proces werkt. Je zult actief deelnemen aan refinement sessies en helpen bij het opstellen van user stories. Je draagt mede bij het stellen van acceptatiecriteria en bepaalt wat het effect en/of impact kan zijn op aanpalende systemen. Tevens draag je bij aan mogelijke oplossingen voor het gevraagde in de user story. Je werkt samen met de andere developers in je team, de product owner

Bekijk vacature »

Medior Frontend developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Bij DPA GEOS werken onze consultants als Frontend Developer in Agile teams bij onze klanten en zijn ze verantwoordelijk voor de grotere webapplicaties. Wil jij dit ook, want we zijn op zoek naar enthousiaste Frontend Developers om ons development team te versterken. Je draagt positief bij aan de teamgeest binnen een projectteam je kijkt verder dan je eigen rol. Eventueel begeleid je ook andere ontwikkelaars in het softwareontwikkelproces. Je gaat webapplicaties maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit

Bekijk vacature »

Senior developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Randstad - Oracle Forms Developer (Freelance/ZZP)

Startdatum: ZSM Max tarief per uur: 85€ Uren per week: 32-40 Bij RGN IT werken we steeds meer en meer volgens de Agile Way of Working. Dat betekent dat je in het team met het Scrum Proces werkt. Je zult actief deelnemen aan refinement sessies en helpen bij het opstellen van user stories. Je draagt mede bij het stellen van acceptatiecriteria en bepaalt wat het effect en/of impact kan zijn op aanpalende systemen. Tevens draag je bij aan mogelijke oplossingen voor het gevraagde in de user story. Je werkt samen met de andere developers in je team, de product owner

Bekijk vacature »

Java (Java EE) Developer

In het kort Werken als Java developer betekent werken aan complexe IT projecten bij onder meer een internationaal containeroverslag bedrijf. Zo sturen we apparaten en eindgebruikers aan d.m.v. onze custom-made software oplossing, die dagelijkse vele duizenden containers verwerkt. Denk aan systemen die volautomatische kranen aansturen en op afstand bedienen, de volledige afhandeling van containernummerherkenning bij het laden en lossen van zeeschepen of het tonen van instructies aan de chauffeurs van ruim 300 straddle carriers. En dat allemaal redundant, robuust en in een dynamische 24/7 omgeving! Jij versterkt ons ontwikkelteam en gaat aan de slag met oa. Java i.c.m. Spring (Boot),

Bekijk vacature »

Senior Integration Developer

Functieomschrijving As senior integration developer at Randstad Groep Nederland IT you play an integral role in innovating and optimising our processes and way of working. As we continue to move towards a more internationally connected tech environment and build new global platforms, our integration team continues to grow. You will join the APK team (Applicatie Koppelingen), consisting of business analysts, developers, a product owner and scrum master. Together you are responsible for a fundamental aspect of our applications, providing the basis for our other development teams. What will you do as senior integrations developer? As senior integrations developer you work

Bekijk vacature »

back-end developer

Do you want to work with the latest technologies? And are you a back-end or a front-end developer? Get moving and strengthen Nederlandse Loterij as a part of the inhouse development team. Result oriented and transparent. Thanks to your efforts, the Inhouse Development team can work together on the development of new systems and applications. The team is responsible for the development and operations of our lottery websites, including several back-end components focusing on the online channels for Staatsloterij, Lotto and Miljoenenspel. In this way, you directly contribute to a happy, healthy and sporty Netherlands. As a part of the

Bekijk vacature »

.Net Ontwikkelaar

Dit ga je doen Het ontwerpen en ontwikkelen van software voor klanten; Het bijdragen van kennis en ervaring; Het integreren van van de software en afstemmen met klanten; Het functioneel testen van de ontwikkelde software. Hier ga je werken Voor onze relatie zijn wij momenteel op zoek naar een .Net Developer die wilt werken aan software die draait op machines wereldwijd. De organisatie produceert software voor applicaties die gebruikt worden in verschillende branches. De software wordt geleverd aan fabrikanten van verschillende robotica en machines. Als .Net ontwikkelaar ben je intern onderdeel van het team wat de applicatie omgevingen ontwikkeld en

Bekijk vacature »

Senior developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Speculative Application Java Developer

Functieomschrijving Keeping up with the future of work requires ever changing, ever innovating technologies. Our java developers and the software they build play a vital role in connecting our workforce, optimizing our processes and enabling us to stay ahead. What are we working on? As java developer at randstad your role can vary. Java is a core part of many of our 36 scrum teams, giving you the opportunity to contribute to a large number of different applications and projects. Some of the things our teams work on are designing and building our candidate portals and the first point of

Bekijk vacature »

Freelance Ontwikkelaar (zzp)

Indienen offertes : 6 december 2022 Startdatum inzet : 2 januari 2023 Standplaats : Rotterdam Aantal uren : 36 Een Extract-Transform-Load (ETL)-ontwikkelaar is een professional die data extract, transformeert en laadt om de resultaten in een nieuw op te zetten of bestaande database te verwerken (het opwerken, integreren en beschikbaar maken van gegevens)Jij bent dé expert op het terrein van ETL en data modellering die ervoor zorgt dat haar/zijn collega Business Intelligence- en Analytics-specialisten steeds kunnen rekenen op de juiste gegevens en gegevensdoorsnedes. Naast het bewaken van architectuur- en kwaliteits-principes, ben je in staat om ook buiten bestaande kaders creatieve

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »
Mohamed nvt

Mohamed nvt

17/08/2016 12:41:14
Quote Anchor link
Hallo allemaal,

Momenteel ben ik bezig met een master/detail page.
Uit de DB haal ik enkele info op zoals naam, productie en verloop datum op.
Van deze naam heb ik een link gemaakt. En wanneer ik klik op naam, wil ik meer gegevens uit DB halen die daarbij horen. Helaas ben ik hiermee 2 dagen mee bezig en het lukt me niet om het op te lossen. Ikzelf heb het idee dat het een syntax issue is, maar ik kom er niet uit.

Hopelijk kan iemand mij voorzien van een waardevolle feedback.

Tnx!

Index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$query2
= "SELECT * FROM medicines";
$result2 = mysqli_query($connection,$query2);
?>

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
<?php
echo "<table width='70%' border='solid 1px'>";
echo "<tr><th>Name</th><th>Production_Date</th><th>Expire_Date</th><th>Edit</th><th>Delete</th></tr>";
while ($row2 = mysqli_fetch_assoc($result2)){
        $medicine_id = $row2['med_id'];
        $medicine_name = $row2['med_name'];
        $medicine_create_date = $row2['med_create_date'];
        $medicine_expire_date = $row2['med_expire_date'];
        echo "<tr>";
        echo "<td><a href='med_detail.php?id={$medicine_name}'>{$medicine_name}</a></td>" .
             "<td>{$medicine_create_date}</td>" .
             "<td>{$medicine_expire_date}</td>" .
             "<td><a href='edit.php?id={$medicine_id}'>Edit</a></td>" .
             "<td><a href='delete.php?id={$medicine_id}'>Delete</a></td>";
        echo "</tr>";
        }



echo "</table>";
?>


detail pagina
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
<?php include "includes/db-config.php"; ?>
<?php
if(isset($_GET['$medicine_name'])){
    
    $_GET['$medicine_name'];
    
    
}


$query = "SELECT * from categories";
$result = mysqli_query($connection,$query);

$query3 = "SELECT * FROM medicines ";
$query3 .="WHERE ID="$_GET['$medicine_name']" ";
$result3 = mysqli_query($connection,$query3);
?>

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
echo "<table width='70%' border='solid 1px'>";
echo "<tr><th>Name</th><th>Production_Date</th><th>Expire_Date</th><th>Created by factory</th><th>Added to database</th><th>Edit</th><th>Delete</th></tr>";
while ($row2 = mysqli_fetch_assoc($result3)){
        $medicine_id = $row2['med_id'];
        $medicine_name = $row2['med_name'];
        $medicine_create_date = $row2['med_create_date'];
        $medicine_expire_date = $row2['med_expire_date'];
        $medicine_factory = $row2['med_factory_id'];
        $medicine_register_date = $row2['med_register_date'];
        
        echo "<tr>";
        echo "<td>{$medicine_name}</td>" .
             "<td>{$medicine_create_date}</td>" .
             "<td>{$medicine_expire_date}</td>" .
             "<td>{$medicine_factory}</td>" .
             "<td>{$medicine_register_date}</td>" .
             "<td><a href='edit.php?id={$medicine_id}'>Edit</a></td>" .
             "<td><a href='delete.php?id={$medicine_id}'>Delete</a></td>";
        echo "</tr>";
        }

echo "</table>";
?>
 
PHP hulp

PHP hulp

08/12/2022 04:29:24
 
- SanThe -

- SanThe -

17/08/2016 13:20:21
Quote Anchor link
Waarom al die extra variabelen aanmaken?
HTML gebruikt dubbele quotes (").
Hou vars buiten de php-quotes.
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
<?php
echo '<table width="70%" border="solid 1px">';
echo '<tr><th>Name</th><th>Production_Date</th><th>Expire_Date</th><th>Edit</th><th>Delete</th></tr>';
while ($row2 = mysqli_fetch_assoc($result2))
{

    echo '<tr>';
        echo'<td><a href="med_detail.php?id='.$row2['med_id'].'">'.$row2['med_name'].'</a></td>' .
            '<td>'.$row2['med_create_date'].'</td>' .
            '<td>'.$row2['med_expire_date'].'</td>' .
            '<td><a href="edit.php?id='.$row2['med_id'].'">Edit</a></td>' .
            '<td><a href="delete.php?id='.$row2['med_id'].'">Delete</a></td>';
    echo '</tr>';
}

echo '</table>';
?>

Ik heb bij de eerste <a> ook het id gebruikt, waar jij de name gebruikte.
Gewijzigd op 17/08/2016 13:22:16 door - SanThe -
 
Dennis WhoCares

Dennis WhoCares

17/08/2016 13:23:48
Quote Anchor link
SanThe, het grootste probleem is dat Mohamed de GET waarde gebruikt met de naam, medicine_name, maar heeft toegewezen aan, id.
Daarbij probeert hij deze aan te roepen, zonder er iets mee te doen. (toewijzen, echo,of wat dan ook)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if(isset($_GET['$medicine_name'])){
    $_GET['$medicine_name'];
}

Dit hierboven doet niks, en zorgt voor de foutmelding.

Verbetering hieronder.

detail pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php include "includes/db-config.php";

if(isset($_GET['id'])){
   $query = "SELECT * from categories";
   $result = mysqli_query($connection,$query);

   $query3 = "SELECT * FROM medicines ";
   $query3 .="WHERE ID="$_GET['id']" ";
   $result3 = mysqli_query($connection,$query3);
}
else {
    echo 'Geen medicijn gekozen.';
}

?>


In het overzicht tabel noem je:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<td><a href='med_detail.php?id={$medicine_name}'>{$medicine_name}</a>

Dus je gaat naar med_detail.php?id=medicijn_naam
De _GET is dan ['id']
Gewijzigd op 17/08/2016 13:30:48 door Dennis WhoCares
 
Thomas van den Heuvel

Thomas van den Heuvel

17/08/2016 14:23:23
Quote Anchor link
Waarom uberhaupt statische HTML echo'en? Dit voegt niets toe en vertroebelt enkel de leesbaarheid.

Je kunt PHP blokken openen en sluiten waar je wilt.

Vergelijk:
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
echo "<table width='70%' border='solid 1px'>";
echo "<tr><th>Name</th><th>Production_Date</th><th>Expire_Date</th><th>Created by factory</th><th>Added to database</th><th>Edit</th><th>Delete</th></tr>";
while ($row2 = mysqli_fetch_assoc($result3)){
        $medicine_id = $row2['med_id'];
        $medicine_name = $row2['med_name'];
        $medicine_create_date = $row2['med_create_date'];
        $medicine_expire_date = $row2['med_expire_date'];
        $medicine_factory = $row2['med_factory_id'];
        $medicine_register_date = $row2['med_register_date'];
        
        echo "<tr>";
        echo "<td>{$medicine_name}</td>" .
             "<td>{$medicine_create_date}</td>" .
             "<td>{$medicine_expire_date}</td>" .
             "<td>{$medicine_factory}</td>" .
             "<td>{$medicine_register_date}</td>" .
             "<td><a href='edit.php?id={$medicine_id}'>Edit</a></td>" .
             "<td><a href='delete.php?id={$medicine_id}'>Delete</a></td>";
        echo "</tr>";
        }

echo "</table>";
?>


Met:
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
<table style="width: 70%; border: 1px solid;">
    <tr>
        <th>Name</th>
        <th>Production Date</th>
        <th>Expire Date</th>
        <th>Created by Factory</th>
        <th>Added to Database</th>
        <th>Edit</th>
        <th>Delete</th>
    </tr><?php
    while ($row = mysqli_fetch_assoc($result)) {
        ?>
<tr>
            <td><?php echo $row['med_name'] ?></td>
            <td><?php echo $row['med_create_date'] ?></td>
            <td><?php echo $row['med_expire_date'] ?></td>
            <td><?php echo $row['med_factory_id'] ?></td>
            <td><?php echo $row['med_register_date'] ?></td>
            <td><a href="edit.php?id=<?php echo $row['med_id'] ?>">Edit</a></td>
            <td><a href="delete.php?id=<?php echo $row['med_id'] ?>">Delete</a></td>
        </tr><?php
    }
?>
</table>

Daarnaast doe je er misschien verstandig aan om je output te escapen, zowel in queries (middels een real_escape() functie) alsook in je HTML (via htmlspecialchars()).

En wat @Dennis zegt: je hebt weinig aan een doorgegeven medicijnnaam als je verder alles op grond van id doet.
 
Mohamed nvt

Mohamed nvt

17/08/2016 14:46:22
Quote Anchor link
Hallo allemaal,

Bedankt voor jullie snelle reacties.
Ik heb deels jullie verbeteringen aangebracht, helaas krijg ik nog steeds dezelfde foutmelding, nl:
Parse error: syntax error, unexpected '$_GET' (T_VARIABLE) in D:\xampp\htdocs\inventory_test\med_detail.php on line 5


index.php: gewijzigde code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "<td><a href='med_detail.php?id={$medicine_id}'>{$medicine_name}</a></td>"
?>


Tussen haakjes gebruik ik juist variabelen, omdat ik het makkelijker vindt met alle die syntaxis.

med_detail.php: Code wat bij lijn 5 hoort is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if(isset($_GET['id'])){
    $query3 = "SELECT * FROM medicines ";
    $query3 .="WHERE ID="$_GET['id']" ";
    $result3 = mysqli_query($connection,$query3);    
}
else {
    echo "No medicine has been chosen";
}

?>


@Dennis, je hebt gelijk wat het betreft security in de code.
Wanneer de kern van de code werkt, dan ga ik security als stap 2 aanpakken

Toevoeging op 17/08/2016 15:09:41:

Update;
Mijn probleem heb ik opgelost door de output van $_GET['id']; later toe te kennen aan een variabele.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if(isset($_GET['id'])){
    
    $id = $_GET['id'];
    $query3 = "SELECT * FROM medicines ";
    $query3 .="WHERE ID=$id";
    //$query3 .="WHERE ID=" $_GET['id']" ";
    $result3 = mysqli_query($connection,$query3);    
?>


Helaas heb ik nu een andere foutmelding en dat is:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in D:\xampp\htdocs\inventory_test\med_detail.php on line 21

Ik ga nog even verder zoeken.
Wanneer ik een update heb, zal ik het hier plaatsen.
tnx!


Toevoeging op 17/08/2016 15:26:36:

Update:

Het tweede probleem heb ik nu ook opgelost:
Door de query te controleren of het gelukt is of niet :-)

vernieuwde code:
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
<?php
if(isset($_GET['id'])){
    
    $id = $_GET['id'];
    $query3 = "SELECT * FROM medicines ";
    $query3 .="WHERE med_id=$id";
    $result3 = mysqli_query($connection,$query3);    
}
else {
    echo "No medicine has been chosen";
}

if($result3 === false){
    die (mysqli_error($connection));    
}

?>

Bedankt allemaal voor het meedenken!
 
Dennis WhoCares

Dennis WhoCares

17/08/2016 15:46:32
Quote Anchor link
Hi Mohammed,

goed dat het opgelost is :)

Kijk eens goed naar deze 2 regels:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$query3 .="WHERE ID="$_GET['id']" ";
---
$query3 .="WHERE med_id=$id";

Zoek de verschillen, en je zult zien waarom de 2e regel wel werkt ;-)
Tip, let op je quotes
 
- Ariën  -
Beheerder

- Ariën -

17/08/2016 15:47:41
Quote Anchor link
Variabelen overschrijven is nergens voor nodig, en het zorgt zelfs voor verwarring.
Tevens kloppen je quotes niet, en mist er goede beveiliging m.b.v. escaping in je query. ZOnder dit ben je heel vatbaar voor SQL-injection wat veel gebruikt wordt bij hacking.

Ik heb de code even verbeterd.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(isset($_GET['id'])){
    $query3 = "SELECT * FROM medicines WHERE ID='".mysqli_real_escape_string($connection, $_GET['id'])."'";
    $result3 = mysqli_query($connection,$query3);    
?>


Een tipje: Vermijd nummers in je variabelen. Weet jij straks nog wat $query3 doet? Geen gewoon een duidelijke naam die aangeeft wat je ophaalt.
 



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.