Gdzie tu jest błąd ?

0
<?php
 
 
$db = @mysql_connect('localhost','Damian','password','zadania') OR die ('<p>Nie mozna polaczyc</p>');
 
if(isset($_POST['przeslano']) && !empty($_POST['zadanie'])){
 
if(isset($_POST['id_z_nadrzegnego'])){
 
    $id_parent =(int) $_POST['id_z_nadrzednego'];
 
}
else {
    $id_parent = 0;
}
$task = mysqli_real_escape_string($db, $_POST['zadanie']);
 
 
$q = "INSERT INTO zadania(id_z_nadrzednego, zadanie) VALUES ('$id_parent', '$task')";
$r = mysql_query($db, $q);
 
 
if(mysqli_affected_rows($db)==1){
 
 
    echo "Zadanie dodano";
 
}
else {
    echo "Nie można dodać zadania";
 
}
}
echo '<form action="new.php" method="post" >
<filedset>
<legend>Dodaj zadanie</legend>
<p> Zadanie <input name="zadanie" id="zadanie" type="text" size="60" maxlength="100" />
<p>Zadanie nadrzedne: <select name="id_z_nadrzednego"><option value="0"> Brak</option>
';
 
 
 
$q ='SELECT id_zadania, id_z_nadrzednego, zadanie FROM zadania WHERE data_ukonczenia="0000-00-00 00:00:00" ORDER BY data_wprowadzenia ASC';
$r = mysql_query($q);
 
$tasks =array();
 
while(list($id_task, $id_parent, $task) = mysql_fetch_array($r , MYSQLI_NUM)){
 
    $tasks[] = array('id_zadania'=>$id_task, 'id_z_nadrzednego'=>$id_parent, 'zadanie' =>$task);
}
 
echo '<select></p>
<input name="przeslano" type="hidde" value="true" />
<input name="submit" type="submit" value="Dodaj to zadanie"/>
 
</fieldset>
</form>';
 
function parent_sort($x, $y) {
 
    return ($x['id_parent']> $y['id_parent']);
}
usort($task, 'parent_sort');
echo "<p>Lista zadan<p/>";
 
?> 

A takie błędy mi się wyświetlają

Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, resource given in C:\xampp\htdocs\nauka\new.php on line 20

Warning: mysql_query() expects parameter 1 to be string, resource given in C:\xampp\htdocs\nauka\new.php on line 24

Warning: mysqli_affected_rows() expects parameter 1 to be mysqli, resource given in C:\xampp\htdocs\nauka\new.php on line 27
Nie można dodać zadania
Dodaj zadanie

Zadanie

Zadanie nadrzedne:

Warning: usort() expects parameter 1 to be array, null given in C:\xampp\htdocs\nauka\new.php on line 68 

Co zrobiłem żle ? Co naprawić aby śmigało ? Przykład robiłem z książki
Z góry dziękuje za pomoc.

0

W mysql_query musisz podać treść zapytania SQL

Proszę, zobacz tutaj: http://php.net/manual/pl/function.mysql-query.php

Warning: mysql_query() expects parameter 1 to be string, resource given in C:\xampp\htdocs\nauka\new.php on line 24

Daje Ci kompilator do zrozumienia że dałeś złe argumenty. On oczekuje stringa Ty mu dałeś dwa parametry a on przyjmuje jeden.

Zobacz inne komunikaty które masz, też masz napisane czego, gdzie oczekuje dana funkcja. Używając dokumentacji spróbuj poprawić swój kod i następnie napisz jeśli będziesz miał problemy lub jakieś pytania.

Zobacz to też logiczne, masz funkcje która jak sama nazwa wskazuje jest odpowidzialna za zapytanie do bazy danych tak? Więc warto tam umieścić zapytanie do bazy danych tak?

0

Pomieszałes 2 zestawy funkcji -> mysql_ i mysqli_ musisz używać wszędzie tych samych.

0

Dzięki za pomoc , teraz juz wszystko rozumiem . Mam jednak jeszcze jeden problem. Próbuje sie polaczyc z baza danych przez obiekt PDO
Mam taki o to kod

try
{
$pdo = new PDO('mysql:host=localhost;dbname=ijtb', 'damian', 'haslo');
$pdo->setAttribute(PDO::ATTR_ERMODE, PDO::ERMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');


}
catch (PDOException $e)
{
	echo 'Blad baza danych';
	exit();
}

Wyswietla sie caly czas Blad baza danych mimo ,że wszystkie dane na bank wprowadzilem dobrze.
Czy ktos moglby jeszcze ten kod zobaczyć ?

1

Sugeruje żebyś wypisał sobie ten wyjątek $e bo może będzie tam informacja co jest nie tak ;]

0

Edit. Błąd polegał na tym ,że używałem mysql razem z mysqli . Teraz juz wszystko smiga

Zmieniłem kod ale teraz wyświetla się "Nie można dodać zadania" nie ma błędów ale nie dodaje rekordu do bazy.

 <html>
<head>
<title>Zadania</title>
<body>
<?php
 
 
```php
$db = @mysql_connect('localhost','Damian','meleme13','zadania') OR die ('<p>Nie mozna polaczyc</p>');
 
if(isset($_POST['przeslano']) && !empty($_POST['zadanie'])){
 
if(isset($_POST['id_z_nadrzegnego'])){
 
    $id_parent =(int) $_POST['id_z_nadrzednego'];
 
}
else {
    $id_parent = 0;
}
$task = mysql_real_escape_string($_POST['zadanie']);
 
 
$q = "INSERT INTO zadania(id_z_nadrzednego, zadanie) VALUES ('$id_parent', '$task')";
$r = mysql_query($q);
 
 
if(mysql_affected_rows($db)==1){
 
 
    echo "Zadanie dodano";
 
}
else {
    echo "Nie można dodać zadania";
 
}
}
echo '<form action="new.php" method="post" >
<filedset>
<legend>Dodaj zadanie</legend>
<p> Zadanie <input name="zadanie" id="zadanie" type="text" size="60" maxlength="100" />
<p>Zadanie nadrzedne: <select name="id_z_nadrzednego"><option value="0"> Brak</option>
';
 
 
 
$q ='SELECT id_zadania, id_z_nadrzednego, zadanie FROM zadania WHERE data_ukonczenia="0000-00-00 00:00:00" ORDER BY data_wprowadzenia ASC';
$r = mysql_query($q);
 
$tasks =array();
 
while(list($id_task, $id_parent, $task) = mysql_fetch_array($r , MYSQLI_NUM)){
 
    $tasks[] = array('id_zadania'=>$id_task, 'id_z_nadrzednego'=>$id_parent, 'zadanie' =>$task);
}
 
echo '<select></p>
<input name="przeslano" type="hidde" value="true" />
<input name="submit" type="submit" value="Dodaj to zadanie"/>
 
</fieldset>
</form>';
 
function parent_sort($x, $y) {
 
    return ($x['id_parent']> $y['id_parent']);
}
usort($task, 'parent_sort');
echo "<p>Lista zadan<p/>";
 
?>

1 użytkowników online, w tym zalogowanych: 0, gości: 1