Eroare

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

gogu19
Senior Member
Mesaje: 402
Membru din: Mie Ian 02, 2008 7:30 pm

Eroare

Mesajde gogu19 » Lun Noi 16, 2009 8:28 am

Postez tot codul,ptr ca nu-mi dau seama deloc care e problema.Ideea e sa afisez cateva campuri,pornind de la a alege tabelul cu campurile sale:

<?php

//session_start();

//if(!isset($_SESSION['tabel'])) $_SESSION['tabel']='';

$host='conexiune';
$user='user';
$pass='pass';

$db1='db1';
$db2='db2';
$db3='db3';
$db4='db4';
mysql_connect($host,$user,$pass) or die("Nu ma pot conecta la serverul $host");


print "Va rugam sa selectati datele care doriti sa apara in raportul dumneavoastra sau <a href=\"incarcare.php\">incarcati un raport salvat anterior.</a><br><br>";


$luna_rad=date('Y_m');
$luna_ssw=date('y_m');

$descrieri=array("db1@tabel1_$luna_ssw"=>"din Tabelul1","db2@tabel2_$luna_rad"=>"din Tabelul2","db3@tabel3_$luna_ssw"=>"din Tabelul3");
$select="<select name=cond>
<option value='' selected></option>
<option value='<'><</option>
<option value='>'>></option>
<option value='='>=</option>
<option value='<>'><></option>
<option value='like'>LIKE</option>
</select>";
$text="<input type=text name=valoare>";
$cap_tabel=array("Nume camp","Afisare","Conditii","","Grupare","Ordonare");



print "<form method=post action='".$_SERVER['PHP_SELF']."'>";
print "<table align=left cellpadding=20 cellspacing=15><tr><td><b>Alege tabelul:</b><br><select multiple name=tabel onclick='javascript:submit();'>";
foreach($descrieri as $tabel=>$descriere){
print "<option value='".$tabel."'>$descriere</option>";
}
print "</td></tr></table>";
print "</form>";


//if(!isset($_POST['tabel'])) $_POST['tabel']=$_SESSION['tabel'];
if(!isset($_POST['tabel'])) $_POST['tabel']='';

//if(isset($_POST['tabel'])) $_SESSION['tabel']=$_POST['tabel'];
$expl=explode('@',$_POST['tabel']);
$db_name=$expl[0];
$tabel=$expl[1];

print "<table border=1><tr>";
foreach ($cap_tabel as $cap){
print "<td>$cap</td>";
}
print "</tr>";

$i=0;

print "<form method=post action='".$_SERVER['PHP_SELF']."'>";
$result=mysql_query("show columns from $db_name.$tabel");
while ($row = mysql_fetch_array($result)) {
print "<tr>
<td>$row[0]</td>
<td><input type=checkbox name=afisare$i value='".$row[0]."'></td>
<td>$select</td>
<td>$text</td>
<td><input type=checkbox name=grupare$i value=$row[0]></td>
<td><input type=checkbox name=ordonare$i value=$row[0]></td>
</tr>";

$i++;

}

print "<input type=hidden name=tabele value=$db_name.$tabel>";
print "<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>";
print "<tr><td><input type=submit name=trimite value=Trimite></td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>";
print "</table>";
print "</form>";

if(!isset($_POST['cond'])) $_POST['cond']='';
if(!isset($_POST['valoare'])) $_POST['valoare']='';
if(!isset($_POST['tabele'])) $_POST['tabele']='';
if(!isset($_POST['trimite'])) $_POST['trimite']='';
for($j=0;$j<=$i;$j++){
if(!isset($_POST['afisare'.$j])) $_POST['afisare'.$j]='';
if(!isset($_POST['grupare'.$j])) $_POST['grupare'.$j]='';
if(!isset($_POST['ordonare'.$j])) $_POST['ordonare'.$j]='';
}

if($_POST['trimite']){
$tabel=$_POST['tabele'];
$camp='';
for($j=0;$j<=$i;$j++){
if($_POST['afisare'.$j]!='') $camp.=$_POST['afisare'.$j].',';
}
$camp=substr($camp,-1);
print $camp;
}


Nu vrea sa-mi afiseze valoarea lui $camp la final,cumva nu se transmit valorile campurilor selectate,si nu-mi dau seama ce are.Imi da eroarea:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\www\rep\interf_rapoarte.php on line 65,el practic se reintoarce la interogarea acea,dar nu-mi dau seama de ce

Multumesc anticipat




?>



Avatar utilizator
alexx_utza
Senior Member
Mesaje: 251
Membru din: Joi Mai 10, 2007 10:56 am
Localitate: in padure...
Contact:

Mesajde alexx_utza » Lun Noi 16, 2009 11:01 am

inseamna ca interogarea de la linia 65 este gresita.

$result=mysql_query("show columns from $db_name.$tabel");


afiseaza-ti mai intai cum arata interogarea, eventual executa aceasta interogare direct in baza de date, si ai sa vezi ce erori primesti. De acolo, ar trebui sa fie simplu.

gogu19
Senior Member
Mesaje: 402
Membru din: Mie Ian 02, 2008 7:30 pm

Mesajde gogu19 » Lun Noi 16, 2009 11:14 am

Am afisat interogarea.
Prima data mi-o afiseaza.
Ce este ciudat de ce o mai parcurge si a doua oara.Ar trebui sa nu se mai intoarca la ea.A doua oara imi da eroarea de care am zis,

gogu19
Senior Member
Mesaje: 402
Membru din: Mie Ian 02, 2008 7:30 pm

Mesajde gogu19 » Mar Noi 17, 2009 10:34 am

Sa fie din cauza ca am 2 form-uri?Nu reusesc sa-mi dau seama ce are

pin8marian
Average Member
Mesaje: 93
Membru din: Lun Iun 09, 2008 10:54 am
Localitate: Bucuresti
Contact:

Mesajde pin8marian » Mar Noi 17, 2009 4:28 pm

gogu19 scrie:Sa fie din cauza ca am 2 form-uri?Nu reusesc sa-mi dau seama ce are


Dupa

Cod: Selectaţi tot

$result=mysql_query("show columns from $db_name.$tabel");

pune

Cod: Selectaţi tot

print($result);

In acest fel vezi daca cererea este corecta. Daca este corecta atunci inseamna ca cererea nu intoarce inregistrai => inainte de mysql_fetch_array pune

Cod: Selectaţi tot

if(mysql_num_rows($result) <1)
die("Cererea nu intoarce nici o inregirare.");

Dar in cazul tau nu cred ca poate fi vorba de numar 0 de coloane(referitor la mysql_num_rows). Incearca sa faci debug.

gogu19
Senior Member
Mesaje: 402
Membru din: Mie Ian 02, 2008 7:30 pm

Mesajde gogu19 » Mar Noi 17, 2009 4:30 pm

Pai am scris mai sus,prima oara imi face interogarea cum trebuie,apoi,a doua oara nu mai vede numele tabelului,dupa ce apas butonul 'Trimite'.La al doilea form,se ia scriptul de la capat si nu mai stie tabelul...Se poate testa inlocuind denumirea tabelelor si setand parametrii ptr conectarea la baza de date

pin8marian
Average Member
Mesaje: 93
Membru din: Lun Iun 09, 2008 10:54 am
Localitate: Bucuresti
Contact:

Mesajde pin8marian » Mar Noi 17, 2009 4:45 pm

Deci prima oara cand intri pe pagina seteaza variabilele. Cand apesi butonul nu se mai seteaza valorile? Este greu de gestionat asemenea cod. Incearca sa separi codul PHP de cel HTML.


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 27 vizitatori