There is a php document that adds a row of 3 columns fname(имя) sname(отчество) score(счёт) to the database. There are cases when records are added with a value of 0 in the score field. How to make a check and not add such records.

  <?php $dbhost = "localhost"; $dbuser = "Логин"; $dbpassword = 'Пароль'; $dbname = "vladiksan1998"; $sname = $_POST['sname']; $fname = $_POST['fname']; $score = $_POST['score']; $link = mysql_connect($dbhost, $dbuser, $dbpassword); if (false === $link) die ('Error database connect'); $select_result = mysql_select_db($dbname, $link); if (false === $select_result) die ('Error database select<'); $query = "INSERT INTO records VALUES('$fname','$sname','$score')"; $query_result = mysql_query($query, $link); if (false === $query_result) die ('Error database SQL query'); $close_result = mysql_close($link); if (false === $close_result) die ('Error database close'); ?> 

Or you can somehow change the output, so that the zero fields are not displayed

Conclusion:

  <?php $link = mysql_connect('localhost', 'login', 'pass') or die('Не удалось соединиться: ' . mysql_error()); mysql_select_db('vladiksan1998') or die('Не удалось выбрать базу данных'); $query = 'SELECT fname, sname, score FROM records'; $result = mysql_query($query) or die('Запрос не удался: ' . mysql_error()); echo "<table>\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { if($line['score'] != 0){ echo "\t<tr>\n"; echo "\t\t<td>" . $line['fname'] . "</td>\n"; echo "\t\t<td>" . $line['sname'] . "</td>\n"; echo "\t\t<td>" . $line['score'] . "</td>\n"; echo "\t</tr>\n"; } } echo "</table>\n"; mysql_free_result($result); mysql_close($link); ?> 

But it would not be desirable to store in the table zero.

  • The issue is resolved. But a change in output. I will write the necessary option in question. But still wondering whether they can simply not add? - Vlad Kislyuk

1 answer 1

In general, that would not be added, instead of this one

 $query = "INSERT INTO records VALUES('$fname','$sname','$score')"; $query_result = mysql_query($query, $link); 

Add

 if($score != 0) { $query = "INSERT INTO records VALUES('$fname','$sname','$score')"; $query_result = mysql_query($query, $link); } 

Whatever output SQL query

 $query = 'SELECT fname , sname , score FROM records WHERE score != 0'; 

PS Incredible code for beginners. Is it convenient for you to read it yourself? ))

  • Honestly yes. Convenient) No matter how strange it sounds. - Vlad Kislyuk