goeieavond, ik ben een bestaande code aan het aanpassen en krijg steeds parse error , iemand die kan helpen ?

het bevind zich in de regel van delete.php ( als je op delete klikt moet de rij verwijdert worden )
code:



<!DOCTYPE html>
<html>
<head>
	<title>bestellingen</title>
	<meta http-equiv="refresh" content="5" />
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
 <style type="text/css">
    .box{
      padding: 10px;
      margin-right: 50px;
      margin-left: 50px;
      width:400px;
      
    }
  </style>
</head>
<body >
	
<!-- *************************NAVIGATION BAR ************************* -->
	<div class="navbar navbar-expand-lg navbar-light bg-light-inverse justify-content-center bg-danger">
		<div>
			<img src="McD.png" height=48 width = 48 alt="McDonalds">
		</div>
		<div class="navbar-brand font-italic">  
			<h1>bestellingen</h1>
		</div>
	</div>

	<?php 
	session_start();
	include 'db.php';
	$query = "Select * from custdetails";
	$result = mysqli_query($con,$query);
	$row = mysqli_fetch_array($result,MYSQLI_ASSOC);

	$table_query = "SELECT * from custdetails";
    $result = mysqli_query($con,$table_query);
	echo "<form method ='POST'>";
	echo "<br><br><center><div class='navbar-brand font-italic'><h3>bestellingen</h3></div></center";
	echo " 	<br><table class='table table-striped bg-warning table-bordered table-hover table-sm'>"."<tr>";
	echo "	<tr>	<td>	Order Number 	</td>
					<td>	Date and Time 	</td>
					<td> 	Table Number    </td>
					<td>	Name        	</td>
					<td>	Mobie Number 	</td>
					<td> 	Order Contents	</td>
					<td> 	Payable Amount	</td>
					<td>    order ok        </td>

			</tr>";
				
	while($rows = mysqli_fetch_array($result,MYSQLI_ASSOC))
	{			
		echo   "<tr>
					<td>".$rows['orderno'].         "</td>
					<td>".$rows['datetime'].        "</td>
					<td>".$rows['TableNo'].         "</td>
					<td>".$rows['name'].            "</td>
					<td>".$rows['mobile_number'].   "</td>
					<td>".$rows['order_contents'].  "</td>
					<td>".$rows['payable_amount'].  "</td>
[b]					<td>"<a href="delete.php?id=$rows['orderno']">Edit</a>"</td>
[/b]				</tr>";
	}
		 echo "</table>";
	?>
</body>
</html>

Lijn 62:


<td><a href=\"delete.php?id=".$rows['orderno']."\">Edit</a></td>


Om het escapen met een \ van de HTML "-quotes te voorkomen kan je beter een echo gebruiken met een single-quote ( ' ). Het is eigenlijk nog beter om hele lappen HTML buiten je PHP-blok te houden.
zoiets ?

 echo   "<tr>
					<td>".$rows['orderno'].         "</td>
					<td>".$rows['datetime'].        "</td>
					<td>".$rows['TableNo'].         "</td>
					<td>".$rows['name'].            "</td>
					<td>".$rows['mobile_number'].   "</td>
					<td>".$rows['order_contents'].  "</td>
					<td>".$rows['payable_amount'].  "</td>
					<td>"<a href="delete.php?id=$rows['orderno']">Edit</a>"</td>
				</tr>";
Zoiets (regel 9)

 <td><a href='delete.php?id=" . $rows['orderno'] . "'>Edit</a></td>
Brecht werbrouck op 07/08/2020 21:57:01

zoiets ?

 echo   "<tr>
					<td>".$rows['orderno'].         "</td>";
					



Nee dat zijn dubbele-quotes, geen single-quotes.

Of doe makkelijker, zonder het mengen van HTML in PHP.


<?php
 while($rows = mysqli_fetch_array($result,MYSQLI_ASSOC))
    {     
?>       
      		<tr>
                    <td><?php echo $rows['orderno'];?></td>
                    <td><?php echo $rows['datetime'];?></td>
                    <td><?php echo $rows['TableNo'];?></td>
                    <td><?php echo $rows['name'];?></td>
                    <td><?php echo $rows['mobile_number'];?></td>
                    <td><?php echo $rows['order_contens'];?></td>
                    <td><?php echo $rows['payable_amout'];?></td>
	            <td><a href="delete.php?id=<?php echo $rows['orderno'];?>">Edit</a>"</td>
           </tr>
<?php
    }
?> 

[/code]
Of gebruik DOMDocument, dan hoef je ook niet te denken aan het escapen van andere dingen zoals URI's.
https://www.php.net/manual/en/class.domdocument.php

<?php
libxml_disable_entity_loader(TRUE);
libxml_use_internal_errors(TRUE);
$Dom = $oDomImplementation->createDocument('', '',
  (new DOMImplementation)->createDocumentType('html'));
$Dom->preserveWhiteSpace = FALSE;
$Dom->formatOutput = FALSE;
$Dom->substituteEntities = TRUE;
$Dom->xmlVersion = '1.0';
$Dom->encoding = 'UTF-8';

// ...

print $Dom->saveHTML($Dom);
?>
met de oplossing van Ariën is het opgelost! ( zonder mengen van php en html )
thanks!
Mogelijk nog een tip: je kunt het "inspringen" in PHP en HTML combineren. Dit volgt in wezen eenzelfde nesting, dus op die manier kun je zowel code-delen alsook de HTML-delen die logisch gezien bij elkaar horen hetzelfde behandelen.

Natuurlijk zijn er ook uitzonderingen waarbij dit niet altijd helemaal netjes opgaat, maar in het algemeen werkt dit vrij goed.

Het is mijn ervaring dat dit, als je eenmaal in deze "modus" zit, de leesbaarheid van code (enorm) bevordert.

Toegepast op het bovenstaande stuk code wordt dit, na enige fatsoenering:
<?php
while ($rows = mysqli_fetch_array($result, MYSQLI_ASSOC)) {    
    ?><tr>
        <td><?php echo $rows['orderno']; ?></td>
        <td><?php echo $rows['datetime']; ?></td>
        <td><?php echo $rows['TableNo']; ?></td>
        <td><?php echo $rows['name']; ?></td>
        <td><?php echo $rows['mobile_number']; ?></td>
        <td><?php echo $rows['order_contens']; ?></td>
        <td><?php echo $rows['payable_amout']; ?></td>
        <td><a href="delete.php?id=<?php echo $rows['orderno']; ?>">Edit</a></td>
    </tr><?php
}
?>


Ook zou ik je aanraden je (verder) te verdiepen in character encod(er)ing(en) en het escapen van output. Dit gaat op den duur een grote en belangrijke rol spelen wanneer je van dit soort administratieve systemen aan het bouwen bent. Indien niet of verkeerd toegepast kan dit tot heel veel hoofdpijn en/of veiligheidslekken leiden.

Reageren