База данни и php

djidja83

Registered
Здравейте,
Много съм нова както във форума, така и в php и mysql. Извинявам се за малоумния въпрос, но много четох в интернет, но така и не разбрах как да направя базата данни да се вижда в сайта. Ето кода, който съм използвала:
<?php

$host = "localhost";

$dbname = `products`;


mysqli_connect("$host")
or die("Грешка");
mysqli_connect("$dbname")
or die("Грешка");


$query = mysqli_query ("SELECT products.* products_types.type FROM products");
" JOIN product_types ON products.product_type_id=product_types.product_type_id "
.($type?" WHERE products.product_type_id=".$type:"")." ORDER BY product_id DESC";
$result = $mysqli->query($query);


{

echo $row['ID'] - $row['TYPE'] - $row['NAME'] - $row['PRICE'] - $row['INFO'] - $row['PICTURE'] ;

}
?>

Ето и грешките, които ми излизат:

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp\www\products.php on line 44
Call Stack
# Time Memory Function Location
1 0.0680 245016 {main}( ) ..\products.php:0
2 0.1790 245488 mysqli_query ( ) ..\products.php:44

( ! ) Notice: Undefined variable: type in C:\wamp\www\products.php on line 46
Call Stack
# Time Memory Function Location
1 0.0680 245016 {main}( ) ..\products.php:0

( ! ) Notice: Undefined variable: mysqli in C:\wamp\www\products.php on line 47
Call Stack
# Time Memory Function Location
1 0.0680 245016 {main}( ) ..\products.php:0

( ! ) Fatal error: Call to a member function query() on a non-object in C:\wamp\www\products.php on line 47
Call Stack
# Time Memory Function Location
1 0.0680 245016 {main}( ) ..\products.php:0

PS: Кода, който съм дала е от ред 32 до ред 55.


Предварително благодаря на всички отзовали се!
 
http://www.w3schools.com/php/php_ref_mysqli.asp
Научи този раздел ако искаш да работиш с mysqli драйвера .
Това е добър старт .
Ще ти подскажа , че грешката ти е в синтаксиса за mysqli_connect() (подават се параметри: сървър,база данни,потребител,парола) и mysqli_query() приема първи параметър . Чети 30мин. на правилното място и сам ще почнеш да се оправяш : ))
 
Един съвет от мен. Когато пишеш някакъв код прави нещата едно по едно, особено щом си начинаеща. Например първо пишеш конекцията към базата и тестваш дали работи и т.н. така по лесно ще откриваш къде имаш грешка.

Като за начало конекцията трябва да има 4 параметъра - хост, юзър, парола, име на базата. В случая ти ползваш само два и нямаш грешка там защото сигурно по дефаулт си без юзърнейм и парола но на хостинг няма да можеш да направиш конекция. Ето и пример за конекция.

Код:
$host = 'localhost';
$username = 'myName';
$password = '1234';
$dbName = 'products';

$connection = mysqli_connect($host, $username, $password, $dbName);

if(!$connection) {
    echo 'Connection Failed';
    exit;
}

След като имаш вече конекция пристъпваш към заявката и обработката. Първоначално прави проста заявка за да си сигурна че работи. За да работи mysqli_query трябва да подадеш и конекцията. Например.

Код:
$query = 'SELECT * FROM tableName';
$result = mysqli_query($connection, $query);
$row = mysqli_fetch_array($result);
echo $row['name'];

Успех :?:
 
Здравейте и много благодаря за отговорите. Правя проект (курсова работа) за изпит по PHP и MySQL. Сайта няма да се пуска в интернет. Ще се преглежда единствено на localhost.
Сега ще пробвам, и ако пак имам проблем ще пиша.
Още веднъж благодаря!
 
Такаа, толкова време не благоволих да пробвам съветите по-горе, сега като останаха 2 дни до изпита се присетих ... както и да е.
Направих това, което ме посъветва teroristd и стигнах до

( ! ) Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\products.php on line 50
Call Stack
# Time Memory Function Location
1 0.0000 241536 {main}( ) ..\products.php:0
2 0.0916 251096 mysqli_fetch_array ( ) ..\products.php:50


Това е въпросният ред 50

$row = mysqli_fetch_array($result);


Ще съм много благодарна на всички отзовали се!
 
Хората са се скъсали да пишат по тая тема ;D
http://stackoverflow.com/questions/2973202/mysql-fetch-array-myslq-fetch-assoc-mysql-fetch-row-expects-parameter-1-to

В прав текст:
$result ти е false, т.е. заявката не се е изпълнила успешно. Можеш да провериш за грешки със следната конструкция:

$result = mysqli_query('....') or die(mysqli_error($conn));

или просто при mysqli_fetch_array-a да имаш:

PHP:
if($result) {
    $row = mysqli_fetch_array($result);
} else {
    echo "Error! " . mysqli_error($conn);
}
 

Back
Горе