Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Проблемка


Автор: joaillier 17.5.2006, 15:51
у меня не хочет передаваться параметр в функцию...
моя писанина:

Код

function MySqlConnect($dbName =''){
    $link = mysql_connect("localhost","user","password")
    or die("Coldn't connect:".mycql_error());
    //echo " Connected successfully"; // Optional
    mysql_select_db($dbName) or die("Couldn't select DB");
    mysql_query("SET NAMES cp1251"); //Set ncoding
}

function MySqlQuerry($query=''){
    $result = mysql_query($query) or die ("Query failed : ". mysql_error());
    echo "<table>";
    while($line = mysql_fetch_array($result,MYSQL_ASSOC)){
        echo "<tr>";
        foreach($line as $col_value){
            echo "<td> $col_value </td>";
        }
        echo "</tr>";
    }
    echo "</table>";
    mysql_free_result($result);        
}

function MySqlClose($dbName=''){
    mysql_free_result($link);
}

//........................... ВЫЗОВ Ф-ИИ

                        $MySqlConnect('webClients');
            $MySqlQuery('SELECT * FROM Subjects');
            $MySqlClose('webClients'); 


Ошибка:

Notice: Undefined variable: MySqlConnect in z:\home\webclient\www\index.php on line 72

Fatal error: Function name must be a string in z:\home\webclient\www\index.php on line 72  

Автор: BobiKK 17.5.2006, 16:04
Хм, вообще, аргументы функции объявляются несколько по-другому:

function saple ($argument)
{
$local_variable = $argument;
... и т.д. 

Автор: joaillier 17.5.2006, 16:09
сорри...
нет... не помогает, все равно говорит, что требует string как параметр...
ну я же вроде явно задаю строку! 

Автор: PARROT 17.5.2006, 16:11
Потому что нужно пользоваться кнопкой КОД, это та что выше. Отредактируйте свое сообщение пожалуйста joaillier.  

Автор: sugee 17.5.2006, 16:13
BobiKK,  он хочет передать параметр по умолчанию как я понял.

joaillier, так ты присвой своим параметрам какие-нибудь значения  smile

Добавлено @ 16:15 
Прошу прощения, не дочитал до конца.  

Автор: BobiKK 17.5.2006, 16:16
А может он по дефолту хочет пустые строки smile
Мол, выполнить запрос: "" smile 

Автор: joaillier 17.5.2006, 16:17
Цитата(BobiKK @ 17.5.2006,  16:16)
А может он по дефолту хочет пустые строки smile
Мол, выполнить запрос: "" smile

пустые строки передадутся в том случае, если я ничего в функцию не передам!

Добавлено @ 16:19 
Цитата(sugee @ 17.5.2006,  16:13)
joaillier, так ты присвой своим параметрам какие-нибудь значения  smile

вот передаю же!
            
Код

$MySqlConnect('webClients');
            $MySqlQuery('SELECT * FROM Subjects');
            $MySqlClose('webClients');  
 

Автор: sugee 17.5.2006, 16:22
Код

 MySqlConnect('webClients');
 MySqlQuery('SELECT * FROM Subjects');
 MySqlClose('webClients')
 

Автор: joaillier 17.5.2006, 16:26
Цитата(sugee @ 17.5.2006,  16:22)
Код

 MySqlConnect('webClients');
 MySqlQuery('SELECT * FROM Subjects');
 MySqlClose('webClients')

угу, пасиб, как я понял, это в примере у меня была опечатка

Добавлено @ 16:30 
Код

function MySqlConnect($dbName=''){
    $link = mysql_connect("localhost","client","gella")
    or die("Coldn't connect:".mycql_error());
    echo " Connected successfully"; // Optional
    mysql_select_db($dbName) or die("Couldn't select DB");
    mysql_query("SET NAMES cp1251"); //Set ncoding
}

function MySqlQuery($query=''){
    $result = mysql_query($query) or die ("Query failed : ". mysql_error());
    echo "<table>";
    while($line = mysql_fetch_array($result,MYSQL_ASSOC)){
        echo "<tr>";
        foreach($line as $col_value){
            echo "<td> $col_value </td>";
        }
        echo "</tr>";
    }
    echo "</table>";
    mysql_free_result($result);        
}

function MySqlClose(){
    mysql_free_result($link);
}


Notice: Undefined variable: link in z:\home\webclient\www\index.php on line 25

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in z:\home\webclient\www\index.php on line 25

он ругается на переменную $link насколько я понял... как можно решить проблему если вы знаете? 

Автор: BobiKK 17.5.2006, 16:31
Цитата(joaillier @ 17.5.2006,  16:17)
пустые строки передадутся в том случае, если я ничего в функцию не передам!

А смысл?

Добавлено @ 16:32 
Цитата(joaillier @ 17.5.2006,  16:26)
он ругается на переменную $link насколько я понял... как можно решить проблему если вы знаете?

Определи $link как глобальную переменную. 

Автор: joaillier 17.5.2006, 16:33
Цитата(BobiKK @ 17.5.2006,  16:31)
Определи $link как глобальную переменную.

если не трудно, приводите сразу пример, я только недавно начал учить php

Добавлено @ 16:36 
я объявил, но не помогло...  

Автор: joaillier 17.5.2006, 16:52
Код

function MySqlConnect($dbName=''){
    global $link;
    $link = mysql_connect("localhost","client","gella")
    or die("Coldn't connect:".mycql_error());
    echo " Connected successfully"; // Optional
    mysql_select_db($dbName) or die("Couldn't select DB");
    mysql_query("SET NAMES cp1251"); //Set ncoding
}

function MySqlQuery($query=''){
    $result = mysql_query($query) or die ("Query failed : ". mysql_error());
    echo "<table>";
    while($line = mysql_fetch_array($result,MYSQL_ASSOC)){
        echo "<tr>";
        foreach($line as $col_value){
            echo "<td> $col_value </td>";
        }
        echo "</tr>";
    }
    echo "</table>";
    mysql_free_result($result);        
}

function MySqlClose(){
    mysql_free_result($link);
}

вот так:
Notice: Undefined variable: link in z:\home\webclient\www\index.php on line 26

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in z:\home\webclient\www\index.php on line 26 

Автор: sugee 17.5.2006, 16:56
Если кроме варнингов и ноутисов других проблем нет, отключи вывод ошибок.  

Автор: BobiKK 17.5.2006, 16:56
А если определить перменную до функций?

Ну и можно поиграться с ссылками на переменную 
P.S. по ссылкам: http://www.php.net/manual/ru/language.references.php#language.references.whatare 

Автор: joaillier 17.5.2006, 16:58
Цитата(BobiKK @ 17.5.2006,  16:56)
А если определить перменную до функций?

Ну и можно поиграться с ссылками на переменную

Код

$link ='';
function MySqlConnect($dbName=''){
    $GLOBALS[$link] = mysql_connect("localhost","client","gella")
    or die("Coldn't connect:".mycql_error());
    echo " Connected successfully"; // Optional
    mysql_select_db($dbName) or die("Couldn't select DB");
    mysql_query("SET NAMES cp1251"); //Set ncoding
}

function MySqlQuery($query=''){
    $result = mysql_query($query) or die ("Query failed : ". mysql_error());
    echo "<table>";
    while($line = mysql_fetch_array($result,MYSQL_ASSOC)){
        echo "<tr>";
        foreach($line as $col_value){
            echo "<td> $col_value </td>";
        }
        echo "</tr>";
    }
    echo "</table>";
    mysql_free_result($result);        
}

function MySqlClose(){
    mysql_free_result($GLOBALS[$link]);
}

аналогичные ошибки

Добавлено @ 17:12 
1 ошибку я нашел...
но все равно что-то с link не так
Код

function MySqlConnect($dbName=''){
    global $link;
    $link = mysql_connect("localhost","client","gella")
    or die("Coldn't connect:".mycql_error());
    echo " Connected successfully"; // Optional
    mysql_select_db($dbName) or die("Couldn't select DB");
    mysql_query("SET NAMES cp1251"); //Set ncoding
}

function MySqlQuery($query=''){
    $result = mysql_query($query) or die ("Query failed : ". mysql_error());
    echo "<table>";
    while($line = mysql_fetch_array($result,MYSQL_ASSOC)){
        echo "<tr>";
        foreach($line as $col_value){
            echo "<td> $col_value </td>";
        }
        echo "</tr>";
    }
    echo "</table>";
    mysql_free_result($result);        
}

function MySqlClose(){
    mysql_close($link);
}
 
1 ошибку я нашел...
но все равно что-то с link не так
Код

function MySqlConnect($dbName=''){
    global $link;
    $link = mysql_connect("localhost","client","gella")
    or die("Coldn't connect:".mycql_error());
    echo " Connected successfully"; // Optional
    mysql_select_db($dbName) or die("Couldn't select DB");
    mysql_query("SET NAMES cp1251"); //Set ncoding
}

function MySqlQuery($query=''){
    $result = mysql_query($query) or die ("Query failed : ". mysql_error());
    echo "<table>";
    while($line = mysql_fetch_array($result,MYSQL_ASSOC)){
        echo "<tr>";
        foreach($line as $col_value){
            echo "<td> $col_value </td>";
        }
        echo "</tr>";
    }
    echo "</table>";
    mysql_free_result($result);        
}

function MySqlClose(){
    mysql_close($link);
}

Notice: Undefined variable: link in z:\home\webclient\www\index.php on line 26

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in z:\home\webclient\www\index.php on line 26 

Автор: Replicator 17.5.2006, 18:10
Код

function MySqlClose() {
  global $link;

  mysql_close($link);    
}


Кстати, а сама переменная $link у тебя объявляется где-нибудь? 

Автор: sugee 17.5.2006, 18:15
$link не видна в MySqlClose()

Добавлено @ 18:16 
Replicator,  опередил  smile

Добавлено @ 18:20 
А вообще на самом деле эта  mysql_close() нафиг не нужна,  соединение само закрывается. 

Автор: joaillier 17.5.2006, 19:14
пасиб, ребята, огромное!!! smile  

Автор: Mal Hack 17.5.2006, 19:39
joaillier, подобные ошибки, надо отлаживать самому !!! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)