|
Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема
|
supplied argument is not a valid MySQL result res.
|
|
Автор | CaptainFoo (Нерегистриран) |
Публикувано | 15.09.03 20:13 |
|
privet na vsichki.
opitvam se da razbera zashto scripta (sled tozi class) ne iska da sraboti s MySQL.
iavno ne haresva resource-a, no ne useshtam kyde e problema..
do 'while($row = mysql_fetch_array($dbquery))' niama greshki (mai!;-).
koito ima malko vreme i idei da pishe :-)
blagodaria za otgovorite.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/project/oo/run.php on line 14
// m.class.php
<?
class Common
{
var $m_dbHost = 'localhost';
var $m_dbUser = 'dbuser';
var $m_dbPass = 'dbpass';
var $m_dbName = 'mdb';
function Connect()
{
$this->m_link = mysql_connect($this->m_dbHost, $this->m_dbUser, $this->m_dbPass);
if (!$this->m_link)
{
die($this->m_error = "Не мога да се свържа: " . mysql_error());
return FALSE;
}
echo 'connected';
return TRUE;
}
function Select()
{
$this->tbl = mysql_select_db($this->m_dbName, $this->m_link);
if (!$this->tbl)
{
die($this->m_error = "Не мога да използвам базата: " . mysql_error());
return FALSE;
}
echo 'db selected';
return TRUE;
}
function Query($dbquery)
{
$this->query = mysql_query($dbquery);
if (!$this->query)
{
die($this->m_error = "Не мога да изпълня запитването: " . mysql_error());
return FALSE;
}
echo 'query executed';
return TRUE;
}
function Close()
{
if ($this->m_link) mysql_close($this->m_link);
}
}
?>
// run.php
<?
require 'm.class.php';
$m_db = new Common;
$m_db->Connect();
$m_db->Select();
$m_db->Query('SELECT name, address FROM students WHERE id = 1');
while($row = mysql_fetch_array($dbquery))
{
echo $row['name'].$row['address'];
}
$m_db->Close();
?>
| |
Тема
|
Re: supplied argument is not a valid MySQL result res.
[re: CaptainFoo]
|
|
Автор |
Dakota (erotoman) |
Публикувано | 16.09.03 11:19 |
|
Въпреки, че това е по-скоро за PHP клуба, ще ти отговоря тук.
Както е известно, във функциите mysql_fetch_***, първият аргумент трябва да е resourse върнат от mysql_query(). Т.е. в твоя случай, трябва да вземеш променливата $this->query и да я използваш като първи аргумент в mysql_fetch_array(). Макар и да не ми харесва този клас, така би трябвало да сработи:
<?
require 'm.class.php';
$m_db = new Common;
$m_db->Connect();
$m_db->Select();
$m_db->Query('SELECT name, address FROM students WHERE id = 1');
while($row = mysql_fetch_array($m_db->query))
{
echo $row['name'].$row['address'];
}
$m_db->Close();
?>
По-добре накарай метода Query() да връща този result!
Everything louder than everything else...
| |
Тема
|
Re: supplied argument is not a valid MySQL result res.
[re: CaptainFoo]
|
|
Автор | 3ъл Oйлюфф (Нерегистриран) |
Публикувано | 16.09.03 11:22 |
|
въпроса ти е за клуб ПХП, но както и да е...
в тва while($row = mysql_fetch_array($dbquery)) $dbquery идва от никъде... и съдържа всичко друго но не и valid MySQL result resource
и въобще целия този скрипт не прави нищо...
| |
Тема
|
Re: supplied argument is not a valid MySQL result
[re: Dakota]
|
|
Автор | CaptainFoo (Нерегистриран) |
Публикувано | 16.09.03 12:45 |
|
otnovo vryshta syshtata greshka. i kakvo mu ima na klasa, che ne go haresvash?
| |
Тема
|
sorry, ama ...
[re: CaptainFoo]
|
|
Автор | AcidMemory (Нерегистриран) |
Публикувано | 16.09.03 13:00 |
|
един дбклас наистина не трябва да изглежда точно по такъв начин ...
иначе, като искаш да ти тръгне сорса, просто накрая направи така ...
while($row = mysql_fetch_array($m_db->query))
| |
Тема
|
Re: sorry, ama ... ?!?!
[re: AcidMemory]
|
|
Автор | Pavel (Нерегистриран) |
Публикувано | 17.09.03 18:54 |
|
Shto be clasa ne e dalech ot istinata. Kakwo mu trabwa na chovek - edin consturktor i edin method za querita.
Kolkoto do greshkata - s 5min debug i sam mojeshe da si q nameri, no uvi.
| |
Тема
|
Re: sorry, ama ... ?!?!
[re: Pavel]
|
|
Автор | CaptainFoo (Нерегистриран) |
Публикувано | 18.09.03 12:19 |
|
Pafka, che da beshe otgovoril i na vyprosa li, shto li? Nito edin ot dosegashnite ne reshava problema.
| |
|
земи си некой фри датабасе клас и карай с него
не се мъчи
E tuk ni6to niama :
| |
Тема
|
Re: Как така нито един????
[re: CaptainFoo]
|
|
Автор |
salle (един такъв) |
Публикувано | 18.09.03 14:35 |
|
Ти не четеш ли?
Автор 3ъл Oйлюфф (Нерегистриран)
Публикувано 16.09.03 11:22
...
в тва while($row = mysql_fetch_array($dbquery)) $dbquery идва от никъде... и съдържа всичко друго но не и valid MySQL result resource
Автор AcidMemory (Нерегистриран)
Публикувано 16.09.03 13:00
...
иначе, като искаш да ти тръгне сорса, просто накрая направи така ...
while($row = mysql_fetch_array($m_db->query))
Все си мислех, че и сам ще забележиш елементарната грешка която имаш в скрипта.
while($row = mysql_fetch_array($dbquery))
В този момент $dbquery e недефинирано. Даже и да имаш предвид това което в класа се нарича $dbquery то е стринг а не Resource ID върнат като резултат от успешно mysql_query()
Затова и Acidmemory ти препоръчва да го смениш на $m_db->query
Уважавай труда на другите. След като са си загубили време дапрочетат целия ти код вземи пък и ти да прочетеш какво са ти отговорили.
А за това, че целия ти код не е читаво написан ...
$m_db->Query('SELECT name, address FROM students WHERE id = 1');
Странничко. Никъде не проверяваш пезултата от Query.
В същото време в самия метод имаш:
function Query($dbquery)
{
$this->query = mysql_query($dbquery);
if (!$this->query)
{
die($this->m_error = "Не мога да изпълня запитването: " . mysql_error());
/* Този ред НИКОГА няма да се изпълни. Какъв е смисъла от него? */
return FALSE;
}
echo 'query executed';
/* Какъв е смисъла да връщаш TRUE? */
return TRUE;
}
Значи методът Query ти е написан така, че или изпълнява заявката или ако възникне грешка излиза от целия PHP скрипт с грешка.
Това на практика не върши работа никъде. Тъй, че прави са колегите като ти казват, че концепцията ти за този клас е грешна по принцип.
Амо то това е за Програмиране не за Бази Данни
| |
Тема
|
Re: supplied argument is not a valid MySQL result res.
[re: CaptainFoo]
|
|
Автор | 3ъл Oйлюфф (Нерегистриран) |
Публикувано | 18.09.03 15:33 |
|
не се мъчи с тва нещо ами върви някъде в нета и си изтегли phplib примерно версиа 7.2
от него си вземи db_mysql.lib.php или както там се казваше
ако нещо не ти трябва от него просто си го изтрий...
| |
|
Страници по тази тема: 1 | 2 | >> (покажи всички)
|
|
|