Hemas Ilearn Ответов: 1

Как отобразить данные базы данных mysql на странице и в csv-файле?


я разработал простую html-форму под названием dbdata, и там есть кнопка отправки, и как только вы нажмете на нее, она перейдет на страницу под названием displaydb.php

<?php

	define('DB_NAME', 'phpdatabase');
	define('DB_USER', 'root');
	define('DB_PASSWORD', 'root');
	define('DB_HOST', 'localhost');

	$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
	
	$filename = 'Uploads/'.strtotime("now").'.csv';
	
	
	$sql = mysqli_query($link,"SELECT * FROM userdb") or die(mysqli_error());
	$num_rows = mysqli_num_rows($sql);
	
	if($num_rows >= 1)
	{		
	$row = mysqli_fetch_assoc($sql);
	$fp = fopen($filename,"w");
	$seperator = "";
	$comma = "";
	
	foreach($row as $name => $value){
	
	$seperator .= $comma . '' .str_replace('','""',$name);
	$comma = ",";
	
	}
	$seperator .= "\n";
	echo $seperator;
	
	fputs($fp,$seperator);
	
	mysqli_data_seek($sql, 0);
	
	while($row = mysqli_fetch_assoc($sql));
	{
	$seperator = "";
	$comma = "";
    
	foreach($row as $name => $value){
	$seperator .= $comma . '' .str_replace('','""',$value);
	$comma = ",";
	}
	
	$seperator .= "\n";

	fputs($fp,$seperator);
	}
	fclose($fp);
	}


?>


но это дает мне ошибку под названием

Цитата:
Предупреждение: недопустимый аргумент, предоставленный для foreach () в C:\wamp64\www\Websites\displayDB.php на линии 41


который является вторым циклом foreach.

foreach($row as $name => $value){
	$seperator .= $comma . '' .str_replace('','""',$value);
	$comma = ",";
	}


когда я пытаюсь сделать это с одним циклом foreach. он будет печатать данные базы данных на другой странице. но только заголовок базы данных.

id, имя, адрес
как это.
и он также создаст csv-файл с заголовком базы данных.
но я хочу, чтобы все данные были напечатаны в файле.
вот почему я создал второй цикл foreach.

Что я уже пробовал:

прежде чем добавить этот второй код цикла foreach, я скомпилировал его, и он скомпилировался хорошо.
теперь это не работает.

я думаю,что есть ошибка во втором цикле foreach.

ZurdoDev

Ошибка гласит: "недопустимый аргумент, предоставленный для foreach ()". Таким образом, вам придется отлаживать код и проверять то, что вы передаете.

1 Ответов

Рейтинг:
1

harichander

Согласно ошибке, значение

$row
может быть пустым.