Goedemorgen,

2 jaar geleden heb ik een formulier (bestellijst-achtig) gemaakt in PHP waarmee ik data kan opslaan en opvragen uit een database. Het formulier gebruikte ik als boodschappenlijst, waarbij ik gebruik maak van vastgelegde "artikelen" waarvoor ik een aantal moet invullen. Het heeft altijd prima gewerkt.

Nu wil ik de lijst weer gaan gebruiken maar ik zie dat deze niet meer werkt. Waarschijnlijk heeft het met de nieuwe PHP7.0 versie te maken.

Het probleem is dat er wel connectie gemaakt wordt, maar het scherm blijft blanco. Zou iemand mij kunnen helpen?


<?php
$host="localhost";  
$username="root"; 
$password=""; 
$db_name="app"; 
$tbl_name="list"; 

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select database");
	
if ("POST" === $_SERVER['REQUEST_METHOD']) {	
	foreach( $_POST["id"] AS $id ) {
		$item = mysql_real_escape_string($_POST["item"][$id]);
		$class = mysql_real_escape_string($_POST["class"][$id]);
		$unity = mysql_real_escape_string($_POST["unity"][$id]);
		$qty = mysql_real_escape_string($_POST["qty"][$id]);
		$memo = mysql_real_escape_string($_POST["memo"][$id]);
		$update = "UPDATE $tbl_name SET `item` = '$item', `class` = '$class', `qty` = '$qty', `unity` = '$unity', `memo` = '$memo' WHERE `id` = $id";
		mysql_query($update) or die( mysql_error());
		}
		}	
$sql = "SELECT * FROM $tbl_name order by    
			case  
				when class = 'Fruit' 						then 10
				when class = 'Aardappelen'  				then 20
				when class = 'Groenten'    					then 30
			else 9999
			end,
			case
				when qty = 0 							then 0
				when qty = null         				then 0
			else 1
			end DESC,
			item,
			id" ;

$res = mysql_query( $sql ) or die( mysql_error() );

if ( mysql_num_rows( $res ) > 0 ) {	
	echo '<div class="headertext" id="headertext">Lijst</div><p>'."\n";
	echo '<form name="form1" id="form1" method="post">';

	while ( $row = mysql_fetch_assoc( $res ) ) {
			if ( $row["qty"] == '0' ) {
				$class = 'form-control-inactief';  
				}
			else {
				$class = 'form-control-actief';
			}
		
		echo ' <div id="' . $class . '">' ."\n";
		echo ' <input type="text" min="0" class="  ' . $class . '" name="qty[' . $row["id"] . ']" placeholder="<aantal>" value="'.$row["qty"].'" size="4">'."\n";
		echo ' <select class="' . $class . '" name="unity[' . $row["id"] . ']">'."\n";
		echo '      <option value=""'. ($row['unity'] == '' ? ' selected="selected"' : '') .'></option>'."\n";
		echo '      <option value="Stuks"'. ($row['unity'] == 'Stuks' ? ' selected="selected"' : '') .'>Stuks</option>'."\n";
		echo '      <option value="Set"'. ($row['unity'] == 'Set' ? ' selected="selected"' : '') .'>Set</option>'."\n";
        echo '      <option value="Gram"'. ($row['unity'] == 'Gram' ? ' selected="selected"' : '') .'>Gram</option>'."\n";
		echo '      <option value="Pak"'. ($row['unity'] == 'Pak' ? ' selected="selected"' : '') .'>Pak</option>'."\n";
		echo '      <option value="Fles"'. ($row['unity'] == 'Fles' ? ' selected="selected"' : '') .'>Fles</option>'."\n";
		echo '      <option value="Krat"'. ($row['unity'] == 'Krat' ? ' selected="selected"' : '') .'>Krat</option>'."\n";
		echo '      <option value="Zak"'. ($row['unity'] == 'Zak' ? ' selected="selected"' : '') .'>Zak</option>'."\n";
		echo '      <option value="Bak"'. ($row['unity'] == 'Bak' ? ' selected="selected"' : '') .'>Bak</option>'."\n";
		echo '      <option value="Pot"'. ($row['unity'] == 'Pot' ? ' selected="selected"' : '') .'>Pot</option>'."\n";
		echo ' </select>'."\n";
		echo ' <input type="text" class="' . $class . '_bold" name="item[' . $row["id"] . ']" placeholder="<item>" value="'.$row["item"].'" size="20">'."\n";
		echo ' <input type="text" class="' . $class . '" name="memo[' . $row["id"] . ']" placeholder="<memo>" value="'.$row["memo"].'" size="10">'."\n";
		echo ' <select class="' . $class . '" name="class[' . $row["id"] . ']">'."\n";
		echo '      <option value=""'. ($row['class'] == 'ZZZZZZZZZ' ? ' selected="selected"' : '') .'></option>'."\n";		
		echo '      <option value="Fruit"'. ($row['class'] == 'Fruit' ? ' selected="selected"' : '') .'>Fruit</option>'."\n";
		echo '      <option value="Aardappelen"'. ($row['class'] == 'Aardappelen' ? ' selected="selected"' : '') .'>Aardappelen</option>'."\n";
		echo '      <option value="Groenten"'. ($row['class'] == 'Groenten' ? ' selected="selected"' : '') .'>Groenten</option>'."\n";
		echo ' </select>'."\n";
		echo '<input type="hidden" name="id[]" value="' . $row["id"] . '">  ' . "\n";

	}
	echo '<br>'. "\n";
	echo '<input type="submit" size=40 name="submit" value="Bewaren">' . "\n";
	echo '</div>' . "\n";
}

?>
Begin dan eens met het inschakelen van mysqli. In geval van een hosted omgeving, vraag het je hoster. Of controleer of PDO wel beschikbaar is. Wat je voorkeur maar heeft.
Ik heb de mysqli extensie ingeschakeld, maar krijg nu:
Warning: mysqli_connect(): (HY000/2002): No such file or directory in test.php on line 6 Failed to connect to MySQL: No such file or directory Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in test.php on line 14 Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in test.php on line 17
Ik neem aan dat je na wijzigingen even apache en mysql opnieuw opstart.
@SanThe: de foutmelding is veranderd, dus restart zal niet (meer) nodig zijn.

Wat als je Localhost vervangt door 127.0.0.1

Ivo P op 23/08/2017 13:35:21

@SanThe: de foutmelding is veranderd, dus restart zal niet (meer) nodig zijn.


Dat is waar ...
Restart en localhost vervangen heeft geen resultaat.
is er een Mysql server aanwezig en draaiend?
ik draai het op mijn Synology NAS, met Mariadb10 en phpMyAdmin
Op een Synology NAS met MariaDB 10 verbind je zo met de database :

$db = new mysqli('127.0.0.1',username','wachtwoord','database', 3307);


Dus IP nummer in plaats van localhost en het port nummer gebruiken.

Laat je portnummer weg, dan wil PHP met MariaDB 5 verbinden.

Gebruik je localhost en toch het port nummer, ook dan wil PHP met MariaDB 5 verbinden.


Reageren