mysql_num_rows() expects parameter 1 to be resource, boolean given
- SanThe - op 20/06/2013 14:52:39:
Wat is dan de complete error?
ik heb het zo opgelost:
Heb voor het gemak ook de 'to' veld vernanderd naar 'naar'!
Quote:
$from_query = mysql_query("SELECT id FROM frnd_req WHERE van='".$user."' AND (naar='".$my_id."')");
$to_query = mysql_query("SELECT id FROM frnd_req WHERE van='".$my_id."' AND (naar='".$user."')" );
$to_query = mysql_query("SELECT id FROM frnd_req WHERE van='".$my_id."' AND (naar='".$user."')" );
Waarom de () na de AND? Ook dit zou niet nodig moeten zijn.
Chris NVT op 20/06/2013 15:10:55:
@George,
Waarom de () na de AND? Ook dit zou niet nodig moeten zijn.
Waarom de () na de AND? Ook dit zou niet nodig moeten zijn.
Dat klopt! Die kunnen weg!
- quotes (') om velden
- gebruik van from en to als velden.
Mooi dat het nu opgelost is.
Dank jullie wel voor jullie moeite!
ik heb een probleem ik krijg dit
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/gamers/domains/gamers-place.nl/public_html/install/include/constant.php on line 5
bij de install kan iemand me helpen bij deze warning
2.mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS);
3.mysql_select_db(SQL_DB);
4.$sql = mysql_query("SELECT * FROM ".TB_PREFIX."config");
5.$result = mysql_fetch_array($sql);
Gewijzigd op 01/07/2013 17:15:04 door jeroen wevers
Over het algemeen betekent dit dat de SQL-string fout is.
Daardoor mislukt mysql_query(), die een false teruggeeft.
Die false geef je dan aan mysql_fetch_array(); die daar niets mee kan doen. Dat is de foutmelding die je krijgt.
dus bv.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
...
$sql = "SELECT username FRRRROM users"; // deze sql string is duidelijk niet geldig.
$res = mysql_query($sql); // aangezien de string fout is, zal mysql_query een false teruggeven aan $res, niet een geldige resource.
// dus $res = false;
$row = mysql_fetch_array($res); // mysql_fetch_array verwacht een resource, niet een false.
?>
...
$sql = "SELECT username FRRRROM users"; // deze sql string is duidelijk niet geldig.
$res = mysql_query($sql); // aangezien de string fout is, zal mysql_query een false teruggeven aan $res, niet een geldige resource.
// dus $res = false;
$row = mysql_fetch_array($res); // mysql_fetch_array verwacht een resource, niet een false.
?>
Wat je nu kan doen: echo de sql-string naar je scherm. Copy/paste dat in phpMyadmin. Daar krijg je een duidelijke error.
bv.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
...
$sql = "SELECT username FROM users WHERE user='" . mysql_real_escape_string($_POST['user']) . "' LIMIT 1";
echo $sql; // copy/paste dit naar phpMyadmin
$res = mysql_query($sql);
?>
...
$sql = "SELECT username FROM users WHERE user='" . mysql_real_escape_string($_POST['user']) . "' LIMIT 1";
echo $sql; // copy/paste dit naar phpMyadmin
$res = mysql_query($sql);
?>
-------
EDIT:
Dus, ik verwacht dat
"SELECT * FROM ".TB_PREFIX."config"
fout is
Gewijzigd op 01/07/2013 17:20:12 door Kris Peeters
Foutafhandeling op de query inbouwen en je zal meer info zien.
Fatal error: Cannot redeclare class MYSQLi_DB in /home/gamers/domains/gamers-place.nl/public_html/install/include/database.php on line 8
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
set_time_limit(0);
date_default_timezone_set('Asia/Kolkata');
include("connection.php");
include("constant.php");
class MYSQLi_DB {
var $connection;
function MYSQLi_DB() {
$this->connection = mysqli_connect(SQL_SERVER, SQL_USER, SQL_PASS, SQL_DB) or die(mysqli_error());
}
function query($query) {
return $this->connection->query($query);
}
};
class MYSQL_DB {
var $connection;
function MYSQL_DB() {
$this->connection = mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS) or die(mysql_error());
mysql_select_db(SQL_DB, $this->connection) or die(mysql_error());
}
function mysql_exec_batch ($p_query, $p_transaction_safe = true) {
if ($p_transaction_safe) {
$p_query = 'START TRANSACTION;' . $p_query . '; COMMIT;';
};
$query_split = preg_split ("/[;]+/", $p_query);
foreach ($query_split as $command_line) {
$command_line = trim($command_line);
if ($command_line != '') {
$query_result = mysql_query($command_line);
if ($query_result == 0) {
break;
};
};
};
return $query_result;
}
function query($query) {
return mysql_query($query, $this->connection);
}
};
if(DB_TYPE) {
$database = new MYSQLi_DB;
}
else {
$database = new MYSQL_DB;
}
?>
set_time_limit(0);
date_default_timezone_set('Asia/Kolkata');
include("connection.php");
include("constant.php");
class MYSQLi_DB {
var $connection;
function MYSQLi_DB() {
$this->connection = mysqli_connect(SQL_SERVER, SQL_USER, SQL_PASS, SQL_DB) or die(mysqli_error());
}
function query($query) {
return $this->connection->query($query);
}
};
class MYSQL_DB {
var $connection;
function MYSQL_DB() {
$this->connection = mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS) or die(mysql_error());
mysql_select_db(SQL_DB, $this->connection) or die(mysql_error());
}
function mysql_exec_batch ($p_query, $p_transaction_safe = true) {
if ($p_transaction_safe) {
$p_query = 'START TRANSACTION;' . $p_query . '; COMMIT;';
};
$query_split = preg_split ("/[;]+/", $p_query);
foreach ($query_split as $command_line) {
$command_line = trim($command_line);
if ($command_line != '') {
$query_result = mysql_query($command_line);
if ($query_result == 0) {
break;
};
};
};
return $query_result;
}
function query($query) {
return mysql_query($query, $this->connection);
}
};
if(DB_TYPE) {
$database = new MYSQLi_DB;
}
else {
$database = new MYSQL_DB;
}
?>
Die classe wordt twee keer aangemaakt. Mogelijk komt dit door een dubbele include?