[ajudinha] PHP

Started by Anonymous, 27 de April , 2006, 02:22:43 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anonymous

eh o seguinte...

ta dando um erro no codigo:

<?
$conecta = mysql_connect  ("localhost", "root", "");
           mysql_select_db("standard");
$consulta = "SELECT nome, descricao, valor, imagem FROM placa_mae";
$query = mysql_query($consulta,$conecta);

list ($nome, $descricao, $valor, $imagem) = mysql_fetch_array($query);

while (list ($nome, $descricao, $valor, $imagem) = mysql_fetch_array($query)){

echo "<table><td align=left>";
echo "<img src=$imagem[0]></td>";
echo "<td align=rigth><b>Nome</b>: $nome[0]<br><b>Descriçao:</b>$descricao[0]<br><b>Valor</b>:$valor[0]</td>";
echo "</table>";

}

?>

minha intençao era fazer o php criar uma coluna ate nao ter mais dados no db

mas ai aparece assim:

Nome: a
Descriçao:a
Valor:R

aparece 1 coluna e soh com a 1ª letra, se eu tiro os "[0]" aparece o nome inteiro mas tbm soh uma coluna

qual eh o erro do codigo ou como posso fazer isso?

qm puder ajudar agradesço
vlw

caesar2k

Você está criando a tabela várias vezes:

while (list ($nome, $descricao, $valor, $imagem) = mysql_fetch_array($query)){

echo "<table><td align=left>";
echo "<img src=$imagem[0]></td>";
echo "<td align=rigth><b>Nome</b>: $nome[0]<br><b>Descriçao:</b>$descricao[0]<br><b>Valor</b>:$valor[0]</td>";
echo "</table>";

}

use isso ao invés
echo "<table>";
while (list ($nome, $descricao, $valor, $imagem) = mysql_fetch_array($query)){
echo "<tr><td align=left>";
echo "<img src=$imagem[0]></td>";
echo "<td align=rigth><b>Nome</b>: $nome[0]<br><b>Descriçao:</b>$descricao[0]<br><b>Valor</b>:$valor[0]</td></tr>";
}
echo "</table>";

Lembre-se dos "tr" pra cada nova linha ;)

rog

existem funçoes especificas para isso

o A R R quer dizer que vc esta listando uma tabela ao invez de um campo, se continuar vc tera A R R A Y A R R A Y ETC..

rog
realty.sys is corrupt :  reboot the universe (Y/N)

caesar2k

ah é verdade, esqueci do detalhe do mysql_fetch_array ali
bom, você deve fazer o seguinte então

while ($linha = mysql_fetch_array($query)){
$nome = $linha[0];
$descricao = $linha[1];
$valor = $linha[2];
$imagem = $linha[3];
.....
}

acho que assim funcionaria (não tem como eu testar)

rog

ja ficou bem melhor

pode passar o nome dos campos da tabela em index de $linha

while ($linha = mysql_fetch_array($query)){

$nome = $linha['nome'];
$descricao = $linha['descricao'];
$valor = $linha['valor'];
$imagem = $linha['imagem'];
}

@caesar
legal ver vc por aqui

rog
realty.sys is corrupt :  reboot the universe (Y/N)

Anonymous

aaaaaaaaa caesar2k e rog

eu amo vcs hehe (sem viadage)

deu certo valeu  ;)

Anonymous

aí pra nao criar outro topico vo perguntar nesse msm,...

to com  um problema aqui, preciso tirar 4% dos resultados de uma consulta mysql por exemplo:

while ($linha = mysql_fetch_array($query)){
$valor = $linha['valor'];

echo "<tr><td>$valor</td></tr>


qria tirar 4% do valor q tem em $valor
ja tentei

$valor = $linha['valor'] * 0.4;

nao deu sempre o resultado final deu 0, tentei

$porcentagem = 4;
$resultado = $valor * $porcentagem / 100;

tbm resultado 0

alguem pode me da uma dica de onde to errando?

obs.: a intensao do codigo eh dar desconto de 4% pra clientes cadastrados  ;D

vlw

rog

ae hack

a tecnica de debuggagem e essa

print("
  • ".$var);
    print("
  • ".$percentagem);
    print("
  • ".$result);

    como a sua formula parece certa, tem que percorrer as variaveis para cima

    rog
  • realty.sys is corrupt :  reboot the universe (Y/N)

    Anonymous

    desculpa rog, nao entendi direito, como assim "percorrer as variaveis para cima"

    rog

    o resultado nao e o esperado

    entao tem que caçar o erro

    para isso tem que conferir todos componentes do script

    a noçao de herança herdada vai levar vc a percorrer as variais para cima (de onde sao herdadas) e colocar output para conferir se o valor e bem o esperado

    rog
    realty.sys is corrupt :  reboot the universe (Y/N)

    Anonymous

    ah ta entendi, vo v oq consigo fazer aqui
    valeu