Napisałem skrypt, który zarządza bazą danych. Ale mam problem - funkcja mysql_query() w przypadku błędu zwraca inne wartości niż false.Zapytania dobrze działają - wprowadzają zmiany w bazie. Gdzie popełniłem błąd. Nie interesuje mnie inny kod, tylko wskazanie mojego błędu
<?php
session_start();
if(!isSet($_SESSION['litera'])){
$_SESSION['litera']="";
}
?>
<!DOCTYPE html>
<html lang="pl">
<head>
<title>Zarządzane danymi w tabeli Users</title>
<meta charset="utf-8"/>
<meta name="robots" content="noindex,nofollow"/>
<meta name="description" content=""/>
<meta name="keywords" content=""/>
<style>
body {
background-image: url('tlo.jpg');
font-family: "Times New Roman", Times, serif;
font-size: 11pt;
}
header {
margin: 0 auto;
text-align: center;
color: maroon;
font-size: 14pt;
width: 800px;
margin-bottom: 10px;
background-image: url('tlo1.jpg');
}
article {
float: left;
width: 590px;
margin-bottom: 10px;
background-image: url('tlo1.jpg');
}
section {
margin-left: 5px;
margin-right: 5px;
text-align: left;
}
aside {
float: left;
clear: right;
width: 200px;
margin-left: 10px;
margin-bottom: 10px;
text-align: center;
background-image: url('tlo2.jpg');
}
footer {
clear: both;
color: maroon;
margin: 0 auto;
width: 800px;
background-image: url('tlo1.jpg');
text-align: center;
}
img {
border: none;
margin: 5px 5px 5px 5px;
}
h2 {
color: green;
margin-bottom: 0px;
margin-top: 5px;
font-size: 12pt;
text-align: center;
}
a {
text-decoration: none;
color: purple;
}
</style>
</head>
<body>
<header>
Ćwiczenie 26.5 w języku PHP5 - autor: xpeye
<nav>
</nav>
</header>
<div style="width: 800px; margin: 0 auto; text-align: center;">
<article>
<section>
<h2>Zarządzane danymi w tabeli Users</h2>
<?php
$formularz=<<<IDI1
<form method="GET" action="http://localhost/test/26.5.php">
Wybierz sposób zmiany danych:<br/>
<input type="radio" name="radio1" value="d">Dodanie rekordu<br/>
<input type="radio" name="radio1" value="m">Modyfikacja rekordu<br/>
<input type="radio" name="radio1" value="u">Usuwanie rekordu<br/>
<input type="submit">
</form>
IDI1;
$formularzd=<<<IDI1
<form method="POST" action="http://localhost/test/26.5.php">
Podaj nazwę urzytkownika: <input type="text" name="nazwa"><br/>
Podaj haslo: <input type="password" name="haslo"><br/>
<input type="submit">
</form>
IDI1;
$formularzm=<<<IDI1
<form method="POST" action="http://localhost/test/26.5.php">
Podaj starą nazwę urzytkownika: <input type="text" name="nazwa1"><br/>
Podaj nową nazwę urzytkownika: <input type="text" name="nazwa2"><br/>
Podaj haslo: <input type="password" name="haslo"><br/>
<input type="submit">
</form>
IDI1;
$formularzu=<<<IDI1
<form method="POST" action="http://localhost/test/26.5.php">
Podaj nazwę urzytkownika: <input type="text" name="nazwa"><br/>
<input type="submit">
</form>
IDI1;
if(!$baza=@mysql_connect("localhost", "php", "test")){
echo "Wystąpił błąd podczas połączenia z serwerem MySQL";
}
else if(!@mysql_select_db("testphp")){
@mysql_close($baza);
echo "Wystąpił błąd podczas połączenia z bazą danych MySQL";
}
else{
if($_SESSION['litera']==""){
if(!isSet($_GET['radio1'])){
echo $formularz;
$dzialanie="";
}
else{
$dzialanie=$_GET['radio1'];
}
$_SESSION['litera']=$dzialanie;
}
$dzialanie=$_SESSION['litera'];
if($dzialanie=='d'){
if(!isSet($_POST['nazwa'])){
echo $formularzd;
}
else if($_POST['nazwa']==""||$_POST['haslo']==""){
echo $formularzd;
echo "<br/><br/>Wypełnij wszystkie pola";
}
else{
$nazwa=$_POST['nazwa'];
$haslo=$_POST['haslo'];
$zapytanie1="SELECT nazwa FROM Users WHERE nazwa=\"$nazwa\"";
$zapytanie2="INSERT INTO Users VALUES(\"$nazwa\", \"$haslo\")";
if($wynik=mysql_query($zapytanie1,$baza)){
echo $formularzd;
echo "<br/><br/>Rekord o takiej nazwie już istnieje - podaj inną";
}
else{
if(!$wynik=mysql_query($zapytanie2,$baza)){
echo $formularzd;
echo "<br/><br/>Rekord nie został dodany z powodu błędu";
}
else{
echo "Rekord został dodany";
unset($_SESSION['litera']);
session_destroy();
}
}
}
}
else if($dzialanie=='m'){
if(!isSet($_POST['nazwa1'])){
echo $formularzm;
}
else if($_POST['nazwa1']==""||$_POST['nazwa2']==""||$_POST['haslo']==""){
echo $formularzm;
echo "<br/><br/>Wypełnij wszystkie pola";
}
else{
$nazwa1=$_POST['nazwa1'];
$nazwa2=$_POST['nazwa2'];
$haslo=$_POST['haslo'];
$zapytanie="UPDATE Users SET nazwa=\"$nazwa2\", haslo=\"$haslo\" WHERE nazwa=\"$nazwa1\"";
if(!$wynik=mysql_query($zapytanie,$baza)){
echo $formularzm;
echo "<br/><br/>Rekord nie został zmodyfikowany z powodu błędu";
}
else{
echo "Rekord został zmodyfikowany";
unset($_SESSION['litera']);
session_destroy();
}
}
}
else if($dzialanie=='u'){
if(!isSet($_POST['nazwa'])){
echo $formularzu;
}
else if($_POST['nazwa']==""){
echo $formularzu;
echo "<br/><br/>Wypełnij pole";
}
else{
$nazwa=$_POST['nazwa'];
$zapytanie="DELETE FROM Users WHERE nazwa=\"$nazwa\"";
if(!$wynik=mysql_query($zapytanie,$baza)){
echo $formularzu;
echo "<br/><br/>Rekord nie został usunięty z powodu błędu";
}
else{
echo "Rekord został usunięty";
unset($_SESSION['litera']);
session_destroy();
}
}
}
echo "<h2 style=\"margin-top: 20px;\">Wyświetlanie danych z tabeli Users z bazy MySQL</h2>";
$zapytanie='SELECT * FROM Users';
if(!$wynik=mysql_query($zapytanie, $baza)){
echo "Wystąpił błąd podczas zapytania do bazy danych MySQL";
}
else{
echo "<table style=\"margin: 0 auto;\">";
while($wiersz=mysql_fetch_row($wynik)){
$a=count($wiersz);
echo "<tr>";
for($i=0;$i<$a;$i++){
echo "<td>$wiersz[$i]</td>";
}
echo "</tr>";
}
echo "</table>";
if(!@mysql_close($baza)){
echo "Wystąpił błąd podczas zamykania połączenia z bazą danych MySQL";
}
}
}
?>
</section>
</article>
<aside>
<section>
<img src="html5.jpg" style="width: 180px; height: 180px;" alt="Logo HTML5"/>
</section>
</aside>
</div>
<footer>
<small>Wszystkie prawa zastrzeżone</small>
</footer>
</body>
</html>