conectar ao mysql

Enviada por Leonar 
Leonar
conectar ao mysql
17 de August de 2001 às 04:49PM
Prezados Colegas do Mundo PhP.
Bem eu ainda sou novo na área, e desenvolvi uns escripts para criar tabelas e inserir dados nos banco de dados do MySQL, até a terceira parte tudo bem, mas no momento em que executo o último comando para acessar o MySQL, da a mensagem que coloquei no "or die" (não é possivel conectar ao banco de dados), o meu Apache, PhP e MySQL é tudo local, ou seja na mínha própria máquina, mas tb tenho no servidor de internet, pois trabalho em um servidor. Mas a mensagem é a mesma.
Vou deixar aqui os scripts para análise e, se possível, alguém me dizer onde esta o erro.
Ja usei, com usuário e sem, com senha e sem, e com host e sem, mas sempre da o mesmo erro.

Esse é o primeiro script em HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

<HEAD>
<TITLE>Create a Database Table: Step 1</TITLE>
</HEAD>
<BODY>

<FORM method="POST" action="do_showfielddef.php">

<P>Table Name:<br>
<INPUT type="text" name="table_name" size=30></p>

<P>Number of Fields:<br>
<INPUT type="text" name="num_fields" size=5></p>

<INPUT type="submit" value="Go to Step 2">

</FORM>

</BODY>


depois chama este em PhP.

<?
if ((!$table_name) || (!$num_fields)) {
header("Location: http://localhost/show_createtable1.html");
exit;
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

<HEAD>
<TITLE>Create a Database Table: Step 2</TITLE>
</HEAD>
<BODY>

<h1>Define fields for <?php echo "$table_name"; ?></h1>

<FORM method="POST" action="do_createtable.php">
<INPUT type="hidden" name="table_name" value="<?php echo "$table_name"; ?>">

<table cellspacing=5 cellpadding=5>
<tr>
<th>FIELD NAME</th><th>FIELD TYPE</th><th>FIELD LENGTH</th></tr>

<?

for ($i = 0 ; $i <$num_fields; $i++) {

echo "
<tr>
<td align=center>
<input type=\"text\" name=\"field_name[]\" size=\"30\">
</td>

<td align=center>
<select name=\"field_type[]\">
<option value=\"float\">float</option>
<option value=\"int\">int</option>
<option value=\"text\">text</option>
<option value=\"varchar\">varchar</option>
</select>
</td>

<td align=center>
<input type=\"text\" name=\"field_length[]\" size=\"5\">
</td>

</tr>";
}

?>

<tr><td align=center colspan=3><INPUT type="submit" value="Create Table"></td></tr>

</table>
</FORM>

</BODY>


e por último chama este: também em PhP. (que é onde da o erro)


<head>
<title> Criar tabelas: Fase - 3 </title>
</head>
<body>
<h1> Adding table <?php echo "$table_name"; ?></h1>
<?php
$sql = "CREATE TABLE $table_name (";
for ($i = 0; $i < count($field_name); $i++) {
$sql .= "$field_name[$i] $field_type[$i]";
if ($field_length[$i] !="") {
$sql .= " ($field_length[$i]),";
} else {
$sql .= ",";
}
}
$sql = substr($sql, 0, -1);
$sql .= ")";
// Cria conexão
// Substitui seu próprio nome de host, nome de usuário e senha
$connection = mysql_connect("", "", "") or die
("Não foi possível concectar ao servidor.");

// Seleciona o Banco de dados
// Substitui o nome do Próprio banco de dados
$db = mysql_select_db("secretDB", $connection) or die ("Não foi possível
conectar ao banco de dados.");

// Executa consulta SQL e traz os resultados
$sql_result = mysql_query($sql,$connection) or die ("Não foi possível executar
consulta.");

if (!$sql_result) {
echo "<p>Couldn't creaye table!";
} else {
echo "<p>$table_name has been created!";
}
?>

</body>


Agadeço desde ja a ajuda.
nobody
RE: conectar ao mysql
17 de August de 2001 às 07:09PM
substitua no seu script esta parte, e poste o erro mostrado...

// Cria conexão
// Substitui seu próprio nome de host, nome de usuário e senha
$connection = mysql_connect("", "", "");
echo mysql_error();


[]s
Leonar
RE: conectar ao mysql
17 de August de 2001 às 11:05PM
bem...
estou postando o novo erro apresentado.

Repetirei o código para poder ser mais claro e depois o erro apresentado!


<head>
<title> Criar tabelas: Fase - 3 </title>
</head>
<body>
<h1> Adding table <?php echo "$table_name"; ?></h1>
<?php
$sql = "CREATE TABLE $table_name (";
for ($i = 0; $i < count($field_name); $i++) {
$sql .="$field_name[$i] $field_type[$i]";
if ($field_length[$i] !="") {
$sql .=" ($field_length[$i]),";
} else {
$sql .=",";
}
}
$sql = substr($sql, 0, -1);
$sql .= ")";
// Cria conexão
// Substitui seu próprio nome de host, nome de usuário e senha
$connection = mysql_connect("", "", "");
echo mysql_error();

// Seleciona o Banco de dados
// Substitui o nome do Próprio banco de dados
$db = mysql_select_db("secretDB", $connection) or die
("Não foi possível selecionar o banco de dados");
echo mysql_error();

// Executa consulta SQL e traz os resultados
$sql_result = mysql_query($sql,$connection) or die ("Não
foi possível executar a consulta.");


if (!$sql_result) {
echo "<p>Couldn't creaye table!";
} else {
echo "<p>$table_name has been created!";
}
?>

</body>


Bem aqui esta o que me foi apresentado...

Adding table Leonar
Não foi possível selecionar o banco de dados

Usei o meu nome como nome da tabela.

Agadeço desde ja todas as ajudas possíveis.
nobody
RE: conectar ao mysql
20 de August de 2001 às 01:00PM
que valores são gerados com esse código? tá estranho...

$sql = "CREATE TABLE $table_name (";
for ($i = 0; $i < count($field_name); $i++) {
$sql .="$field_name[$i] $field_type[$i]";
if ($field_length[$i] !="") {
$sql .=" ($field_length[$i]),";
} else {
$sql .=",";
}
}
$sql = substr($sql, 0, -1);
$sql .= ")";

[]s
Leonar
RE: conectar ao mysql
20 de August de 2001 às 03:10PM
$sql = "CREATE TABLE $table_name (";
for ($i = 0; $i < count($field_name); $i++) {
$sql .="$field_name[$i] $field_type[$i]";
if ($field_length[$i] !="") {
$sql .=" ($field_length[$i]),";
} else {
$sql .=",";
}
}
$sql = substr($sql, 0, -1);
$sql .= ")";

[]s

Esta função guarda a declaração SQL em uma variável $sql.
Após tem um loop que vai preenhcer o restante da declaração SQL. O loop será repetido para campo que eu adicionar.Como cada definição de campo foi colocada num vetor pode-se contar o numero de elementos no vetor $field_name para determinar a quantidade de vezes que o loop será executado.
A declaração if ..... else procura um valor para $field_length e imprime dentro de um conjunto de parenteses se for encontrado. Então adiciona uma virgula para separar o valor do próximo campo aguardando para ser adicionado. Se nenhum valor for encontrado, somente a virgula será adicionada à declaração SQL.
O "zero" na lista de arguntos diz a função para iniciar pelo primeiro caractere, e 0 -1 diz que pare no penúltimo caractere.
Ai eu uso isso para conectar-se ao banco de dados e consultar o banco de dados MySQL.


Obrigado por enquanto.
nobody
RE: conectar ao mysql
20 de August de 2001 às 03:25PM
vc tem certeza q o nome do bd é aquele? pois o único problema q apresentou foi ao selecionar o bd... o mysql_error() não retornou nada? isso é o mais estranho...
ah, lembre-se que letras minúsculas e maiúsculas são diferentes, poderia ser este o teu problema...

[]s
Leonar
RE: conectar ao mysql
20 de August de 2001 às 03:38PM
Nobody

desde ja agradeço pela atenção despendida. Você deveser um profissional e tanto!

É o seguinte: eu usei o MyQSL admim e criei uma tebela com o nome de sandman, depois alterei no script, tirei "secretDB"e coloquei "sandman" ai executei as 3 telas do browser, a primeira onde pedia o nome do banco de dados, e a quantidade de linhas, eu coloquei o mesmo nome do banco que eu criei manualmente, "sandman" na segunda tela soemnet preenchi as linhas, e na terceira tela que executa o script acima, deu a resposta: sandman has been created!
Ou seja deu certo.......
Mas ai eu repeti o que fiz acima... fui no MySQL admin e criei a tabela "leonar" e fiz exatamente o que esta cima... deu erro... ou seja funciona quando quer!!
Quando não da o erro de Não pode ser criada a tabela... da o erro: Não foi possivel conectar o banco de dados ou não foi possívelrealizar a consulta..

Cara ou to precisando aprender a instalar e configurar PhP, MySQL e Web Mail (ou seja ver os e-mail no Brawser) em sistema operacional FreeBSD e Servidor Apache,,, aonde eu consigo material que me ensine isso?? mas de prferência em português.. heheh.. meu inglês é péssimo!

Obrigado
Leonar Somenzi
nobody
RE: conectar ao mysql
20 de August de 2001 às 03:55PM
meu icq... 113851428

[]s
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.