mysqli_num_rows() expects parameter 1 to be mysqli_resul
Ik probeer onderstaande query uit te voeren, maar het wil maar niet lukken.
Vanuit een ander pagina probeer ik via $_GET een ID op te halen en tot zover gaat het goed, want tweede regel van deze code laat wel het juiste ID zien.
Vervolgens voer ik een select statement uit, maar krijg 0 resultaat.
Onderstaande query werkt wel op een ander pagina, maar zonder
Initieel dacht ik een syntax fout, maar kon geen error vinden.
iemand een idee?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
if (isset($_GET['id']) && !empty($_GET['id']) && is_numeric($_GET['id'])){
echo $_GET['id'];
require ('includes/db-connection.php'); // Connect to the db.
$query = "SELECT
medicines.id,
medicines.medicinename,
medicines.genericname,
medicines.quantity,
medicines.expiredate,
medicines.sellingprice,
medicines.purchaseprice,
medicinescompany.companyname,
medicinescountry.countryname,
medicinestype.medicinetypename,
suppliers.suppliername
FROM medicines
LEFT JOIN users ON users.user_id = medicines.userid
LEFT JOIN medicines_medicinescompany ON medicines_medicinescompany.medicine_id=medicines.id
LEFT JOIN medicinescompany ON medicines_medicinescompany.medicinecompany_id=medicinescompany.id
LEFT JOIN medicines_medicinescountry ON medicines_medicinescountry.medicine_id=medicines.id
LEFT JOIN medicinescountry ON medicines_medicinescountry.medicinecountry_id=medicinescountry.id
LEFT JOIN medicines_suppliers ON medicines_suppliers.medicine_id=medicines.id
LEFT JOIN suppliers ON medicines_suppliers.supplier_id=suppliers.id
LEFT JOIN medicines_medicinestype ON medicines_medicinestype.medicine_id=medicines.id
LEFT JOIN medicinestype ON medicines_medicinestype.medicinetype_id=medicinestype.id
where
id='". mysqli_real_escape_string($dbc, $_GET['id'])."' AND users.user_id = '{$_SESSION['user_id']}'";
$search_query = mysqli_query($dbc,$query);
if(mysqli_num_rows($search_query) > 0)
echo $_GET['id'];
require ('includes/db-connection.php'); // Connect to the db.
$query = "SELECT
medicines.id,
medicines.medicinename,
medicines.genericname,
medicines.quantity,
medicines.expiredate,
medicines.sellingprice,
medicines.purchaseprice,
medicinescompany.companyname,
medicinescountry.countryname,
medicinestype.medicinetypename,
suppliers.suppliername
FROM medicines
LEFT JOIN users ON users.user_id = medicines.userid
LEFT JOIN medicines_medicinescompany ON medicines_medicinescompany.medicine_id=medicines.id
LEFT JOIN medicinescompany ON medicines_medicinescompany.medicinecompany_id=medicinescompany.id
LEFT JOIN medicines_medicinescountry ON medicines_medicinescountry.medicine_id=medicines.id
LEFT JOIN medicinescountry ON medicines_medicinescountry.medicinecountry_id=medicinescountry.id
LEFT JOIN medicines_suppliers ON medicines_suppliers.medicine_id=medicines.id
LEFT JOIN suppliers ON medicines_suppliers.supplier_id=suppliers.id
LEFT JOIN medicines_medicinestype ON medicines_medicinestype.medicine_id=medicines.id
LEFT JOIN medicinestype ON medicines_medicinestype.medicinetype_id=medicinestype.id
where
id='". mysqli_real_escape_string($dbc, $_GET['id'])."' AND users.user_id = '{$_SESSION['user_id']}'";
$search_query = mysqli_query($dbc,$query);
if(mysqli_num_rows($search_query) > 0)
Foutafhandeling toevoegen als je de foutmelding uit je titel krijgt.
Het is opgelost in de where moest ik aangeven medicines.id ipv id, want medicines.id stond al in de select :)
Tnx voor het meedenken!
Daarom is foutafhandeling zeker een must, en vooral in grote web-applicaties. Het werkt helemaal mooi als je MySQLi-OO gebruikt. Dan kan je globaal met extend je query-method klonen met ingebouwde foutafhandeling. En het is natuurlijk helemaal mooi als je jouw webapplicatie ook in OO schrijft.