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> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>";
print "<tr><td><input type=submit name=trimite value=Trimite></td><td> </td><td> </td><td> </td><td> </td><td> </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
?>
Eroare
Moderatori: Moderatori, Start Moderator
- alexx_utza
- Senior Member
- Mesaje: 251
- Membru din: Joi Mai 10, 2007 10:56 am
- Localitate: in padure...
- Contact:
-
pin8marian
- Average Member
- Mesaje: 93
- Membru din: Lun Iun 09, 2008 10:54 am
- Localitate: Bucuresti
- Contact:
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.
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:
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 28 vizitatori