Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Синтактична грешка - mysql

Featured Replies

Имам проблем с една база данни...

CREATE TABLE `predmet` (

`nomer` smallint(6) NOT NULL auto_increment,

`ocenka` tinyint(4) NOT NULL,

PRIMARY KEY (`nomer`)

);

Създавам и една таблица sredno, в която съхранявам средния успех.

CREATE TABLE `sredno` (

`predmet` tinytext collate latin1_general_ci NOT NULL,

`sredno` float NOT NULL

);

В нея въвеждам всички предмети в колоната predmet с първоначална стойност 0 за sredno.

Показва ми следната грешка след като искам да видя оценките, които съм въвел - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY `nomer`' at line 1

И когато искам да изчисля средния успех ми изписва това: Препоръчително е да посетите тази страница в края на срока/годината, защото сега резултатите може да са объркващи(например 1.75, ако по някой предмет нямате оценка). И все пак...

Средният успех(за сега) е 0!

Какво искате да правите? Искате да добавите оценки, да видите оценките си или да излезете от системата?

Кода ми на PHP тръгва нормално, но проблема е в базата. Ще съм много благодарен, ако някой ми помогне

Имам проблем с една база данни...

CREATE TABLE `predmet` (

`nomer` smallint(6) NOT NULL auto_increment,

`ocenka` tinyint(4) NOT NULL,

PRIMARY KEY (`nomer`)

);

Създавам и една таблица sredno, в която съхранявам средния успех.

CREATE TABLE `sredno` (

`predmet` tinytext collate latin1_general_ci NOT NULL,

`sredno` float NOT NULL

);

В нея въвеждам всички предмети в колоната predmet с първоначална стойност 0 за sredno.

Показва ми следната грешка след като искам да видя оценките, които съм въвел - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY `nomer`' at line 1

И когато искам да изчисля средния успех ми изписва това: Препоръчително е да посетите тази страница в края на срока/годината, защото сега резултатите може да са объркващи(например 1.75, ако по някой предмет нямате оценка). И все пак...

Средният успех(за сега) е 0!

Какво искате да правите? Искате да добавите оценки, да видите оценките си или да излезете от системата?

Кода ми на PHP тръгва нормално, но проблема е в базата. Ще съм много благодарен, ако някой ми помогне

Дай да видим кода на SELECT заявката.

  • Автор

ами аз този код го взех от един сайт. Даже PHP кода беше пълен с грешки и там се оправих. Кода го взех от този сайт - http://mytech.bg/uroci/5/PHP/634. А това ми е кога на PHP:

<?php

session_start();

if(empty($_SESSION['potrebitel'])){

echo 'Не сте влезли в системата.<a href="login.php">Отидете на логин страницата</a>.';

exit;

}

function preimenuvane ($method){

switch ($method){

case 'angliiski':return 'английски';

break;

case 'algebra':return 'алгебра';

break;

case 'geometriq':return 'геометрия';

break;

case 'bylgarski':return 'български';

break;

case 'literatura':return 'литература';

break;

case 'informatika':return 'информатика';

break;

case 'muzika':return 'музика';

break;

case 'izobrazitelno':return 'изобразително';

break;

case 'fizi4esko':return 'физическо';

break;

}

}

if(empty($_GET)){

echo 'Какво искате да правите? Искате да <a href="ocenki.php?iskam_da=dobavq">добавите оценки</a>, <a href="ocenki.php?iskam_da=vidq">да видите оценките си</a>, <a href="ocenki.php?iskam_da=sreden_uspeh">да видите средния си успех</a> или <a href="ocenki.php?iskam_da=logout">да излезете от системата</a>?<br>';

}

elseif($_GET['iskam_da'] == 'dobavq'){

if(!isset($_POST['submit'])){

?>

<form method="post" action="ocenki.php">

<p>Избери предмет:

<select name="predmet">

<option value="angliiski">Английски</option>

<option value="algebra">Алгебра</option>

<option value="geometriq">Геометрия</option>

<option value="literatura">Литература</option>

<option value="informatika">Информатика</option>

<option value="muzika">Музика</option>

<option value="izobrazitelno">Изобразително</option>

<option value="fizi4esko">Физическо</option>

</select>

</p>

<p>Избери оценка:

<select name="ocenka">

<option value="6">6</option>

<option value="5">5</option>

<option value="4">4</option>

<option value="3">3</option>

<option value="2">2</option>

</select>

<input type="submit" name="submit" value="Въведи оценката">

</p>

</form>

<?php

echo 'Искате ли <a href="ocenki.php?iskam_da=vidq">да видите въведените оценки</a>, <a href="ocenki.php?iskam_da=sreden_uspeh">средния си успех</a> или <a href="ocenki.php?iskam_da=logout">да излезете от системата</a>?<BR>';

}

else{

$ocenka = $_POST['ocenka'];

$predmet = $_POST['predmet'];

$conn = mysql_connect('localhost', 'root', 'milen') or die(mysql_error());

mysql_select_db('ocenki') or die(mysql_error());

$query1 = mysql_query("INSERT INTO $predmet set ocenka='$ocenka'") or die(mysql_error());

$query2 = mysql_query("SELECT * FROM $predmet") or die(mysql_error());

$ob6to = 0;

while($row = mysql_fetch_assoc($query2)){

$ob6to += $row['ocenka'];

}

$broi = mysql_num_rows($query2);

@$del = $ob6to/$broi;

if(!$del){

$sredno = $ocenka;

}

else{

$sredno = round($del, 2);

}

$query3 = mysql_query("UPDATE sredno SET sredno = '$sredno' WHERE predmet = '$predmet'") or die(mysql_error());

echo 'Данните са въведени успешно! Какво искате да направите сега - <a href="ocenki.php?iskam_da=dobavq">да добавите още оценки</a>, <a href="ocenki.php?iskam_da=vidq">да видите записите</a>, <a href="ocenki.php?iskam_da=sreden_uspeh">да видите средния си успех</a> или <a href="ocenki.php?iskam_da=logout">да излезете от системата</a>?';

}

}

elseif($_GET['iskam_da'] == 'vidq'){

if(empty($_POST['submit'])){

?>

<form method="post" action="ocenki.php">

<p>Избери предмет:

<select name="predmet">

<option value="angliiski">Английски</option>

<option value="algebra">Алгебра</option>

<option value="geometriq">Геометрия</option>

<option value="literatura">Литература</option>

<option value="informatika">Информатика</option>

<option value="muzika">Музика</option>

<option value="izobrazitelno">Изобразително</option>

<option value="fizi4esko">Физическо</option>

</select>

<input type="submit" name="submit" value="Избери предмета">

</p>

</form>

<?php

echo 'Искате ли <a href="ocenki.php?iskam_da=dobavq">да добавите оценки</a>, <a href="ocenki.php?iskam_da=sreden_uspeh">да видите средния си успех</a> или смятате да <a href="ocenki.php?iskam_da=logout">излезете от системата</a>?<BR>';

}

else {

}

$predmet = $_POST['predmet'];

$conn = mysql_connect('localhost', 'root', 'milen') or die(mysql_error());

mysql_select_db('ocenki');

$query = mysql_query('SELECT * FROM '.$predmet.' ORDER BY `nomer`') or die(mysql_error());

if(mysql_num_rows($query) < 1) {

echo 'Нямате въведени оценки по '.preimenuvane($predmet).'!<BR>';

}

else{

echo 'Ето ги оценките по '.preimenuvane($predmet).':<BR>';

while($row = mysql_fetch_assoc($query)) {

echo 'Оценка '.$row['nomer'].': <B><U>'.$row['ocenka'].'</B></U> <a href=ocenki.php?del='.$predmet.'&ocenka='.$row['nomer].'">Изтрий</a><BR>';

}

$broi = mysql_num_rows($query);

$query2 = mysql_query("SELECT * FROM sredno WHERE predmet = '$predmet'") or die(mysql_error());

$row2 = mysql_fetch_assoc($query2);

echo 'Оценките по '.preimenuvane($predmet).' са '.$broi.'. Средната оценка(за сега) е '.$row2['sredno'].'.<BR>';

}

}

elseif(isset($_GET['del']) && isset($_GET['ocenka'])){

$predmet = $_GET['del'];

$nomer = $_GET['ocenka'];

mysql_connect('localhost', 'milen', 'root');

mysql_select_db('ocenki');

$query = mysql_query("SELECT ocenka FROM $predmet WHERE nomer = '$nomer'") or die(mysql_error());

$row = mysql_fetch_assoc($query);

$query_del = mysql_query("DELETE FROM $predmet WHERE nomer = '$nomer.'") or die(mysql_error());

switch ($row['ocenka']){

case 2 : $ocenka = "Двойката"; break;

case 3 : $ocenka = "Тройката"; break;

case 4 : $ocenka = "Четворката"; break;

case 5 : $ocenka = "Петицата"; break;

case 6 : $ocenka = "Шестицата"; break;

}

$query3 = mysql_query("SELECT * FROM $predmet") or die(mysql_error());

$ob6to = 0;

while($row1 = mysql_fetch_assoc($query)){

$ob6to += $row['ocenka'];

}

$broi = mysql_num_rows($query3);

@$del = $ob6to/$broi;

if(!$del){

$sredno = $ocenka;

}

else{

$sredno = round($del, 2);

}

$query2 = mysql_query("UPDATE sredno SET sredno = '$sredno' WHERE predmet = '$predmet'") or die(mysql_error());

echo '<B>'.$ocenka.'</B> по <B>'.preimenuvane($predmet).'</B> е изтрита усшено!<BR>Какво искате да правите? Искате да <a href="ocenki.php?iskam_da=dobavq">добавите оценки</a>, <a href="ocenki.php?iskam_da=vidq">да видите оценките си</a>, <a href="ocenki.php?iskam_da=sreden_uspeh">да видите средния си успех</a> или <a href="ocenki.php?iskam_da=logout">да излезете от системата</a>?';

}

elseif($_GET['iskam_da'] == 'sreden_uspeh'){

mysql_connect('localhost', 'root', 'milen');

mysql_select_db('ocenki');

$query = mysql_query("SELECT * FROM sredno") or die(mysql_error());

$ob6to = 0;

while($row = mysql_fetch_assoc($query)){

$ob6to += $row['sredno'];

}

$broi = mysql_num_rows($query);

$sredno = $ob6to/$broi;

echo 'Препоръчително е да посетите тази страница в края на срока/годината, защото сега резултатите може да са объркващи(например 1.75, ако по някой предмет нямате оценка). И все пак... <BR>Средният успех(за сега) е '.$sredno.'!<BR>Какво искате да правите? Искате да <a href="ocenki.php?iskam_da=dobavq">добавите оценки</a>, <a href="ocenki.php?iskam_da=vidq">да видите оценките си</a> или <a href="ocenki.php?iskam_da=logout">да излезете от системата</a>?';

}

elseif($_GET['iskam_da'] == 'logout'){

session_destroy();

echo 'Вие излязохте от системата успешно!';

}

?>

Редактирано от sladak_vn (преглед на промените)

Потърси в кода къде има 'ORDER BY `nomer`

Ако още не можеш да разбереш къде е грешката, сложи пред реда :

$query = mysql_query('SELECT * FROM '.$predmet.' ORDER BY `nomer`') or die(mysql_error());

един ред :

echo 'SELECT * FROM '.$predmet.' ORDER BY `nomer`');

и виж какво ще изведе.

Редактирано от Ken (преглед на промените)

  • Автор

ами има грешка - Parse error: parse error, expecting `','' or `';'' in C:\xampp\htdocs\ocenki\ocenki.php on line 112

sad.gif

Потърси в кода къде има 'ORDER BY `nomer`

Ако още не можеш да разбереш къде е грешката, сложи пред редаа :

$query = mysql_query('SELECT * FROM '.$predmet.' ORDER BY `nomer`') or die(mysql_error());

един ред :

echo 'SELECT * FROM '.$predmet.' ORDER BY `nomer`');

и виж какво ще изведе.

Потърси в кода къде има 'ORDER BY `nomer`

Ако още не можеш да разбереш къде е грешката, сложи пред реда :

$query = mysql_query('SELECT * FROM '.$predmet.' ORDER BY `nomer`') or die(mysql_error());

един ред :

echo 'SELECT * FROM '.$predmet.' ORDER BY `nomer`');

и виж какво ще изведе.

ами има грешка - Parse error: parse error, expecting `','' or `';'' in C:\xampp\htdocs\ocenki\ocenki.php on line 112

sad.gif

Хубаво си го повторил два пъти, това което ти препоръчах, но направи ли го ?

Каква е стойността на nomer ?

Редактирано от Ken (преглед на промените)

  • Автор

Направих го това и ми излезе същата грешка - Parse error: parse error, expecting `','' or `';'' in C:\xampp\htdocs\ocenki\ocenki.php on line 112. Иначе във XAMPP не съм слагал никакви стойности на номер

Направих го това и ми излезе същата грешка - Parse error: parse error, expecting `','' or `';'' in C:\xampp\htdocs\ocenki\ocenki.php on line 112. Иначе във XAMPP не съм слагал никакви стойности на номер

Ако nomer няма никаква стойност, ще получиш заявка от вида:

SELECT * FROM '.$predmet.' ORDER BY ``

и е естествено, че ще извежда грешка.

След като няма nomer, по какво ще подреждаш с ORDER BY ?

И стойностите се съхраняват в таблица от базата данни на MySQL.

И какви стойности да въведа за номер и оценка?

Номер по ред, и оценка според знанията :)

тези неща би трябвало да знаеш с какво, и от кого ще се попълват.

Регистрирайте се или влезете в профила си за да коментирате

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.