1 out of 1 members found this post helpful.
trebuie sa mai faci inca un select in while, inainte de tabel:
$query = "SELECT baza1_descriere WHERE baza1_id = '".$rows['baza1_id']."'";
$result = mysql_query($query);
$vec = mysql_fetch_array($result);
iar unde vrei sa afisezi informatia in tabel scrii:
<td><? echo $vec['baza1_descriere'];
1 out of 1 members found this post helpful.

Postat în original de
impelo
Salut,
Am de facut o afisare si nu am idee cum as putea...
Am 2 baze de date:
#baza1
baza1_id
baza1_denumire
baza1_descriere
#baza2
baza2_id
baza1_id (care reprezinta una din inregistrarile din #baza1)
baza2_descriere
Acum, cand vreau sa afisez rezultatele din #baza2, vreau sa afisez in loc de baza1_id sa afisez baza1_descriere corespunzatoare baza1_id. Intelegeti ce spun? Am facut urmatoarea treaba...
Cod PHP:
<?php
$sql="SELECT * FROM baza2 ORDER BY baza2_id DESC";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result, MYSQLI_ASSOC)){
?>
<tr>
<td><? echo $rows['baza2_id']; ?></td>
<td><? echo $rows['baza1_id']; //aici sa afiseze ce corespunde baza1_descriere ?></td>
<td><? echo $rows['baza2_descriere']; ?></td>
</tr>
<?php }
Cum pot afisa acel rand sa imi ia baza1_descriere in loc de baza1_id?
Multumesc anticipat.
Se face un join in SQL.
De exemplu, query-ul tău va fi ceva de genul:
SELECT * FROM baza2 left join baza1 on baza2.baza1_id = baza1.baza1_id ORDER BY baza2_id DESC
Poți citi mai multe despre join-urile MySQL și tipurile de join în documentația de aici.

Postat în original de
navigator10
trebuie sa mai faci inca un select in while, inainte de tabel:
$query = "SELECT baza1_descriere WHERE baza1_id = '".$rows['baza1_id']."'";
$result = mysql_query($query);
$vec = mysql_fetch_array($result);
iar unde vrei sa afisezi informatia in tabel scrii:
<td><? echo $vec['baza1_descriere'];
Implementarea ta de mai sus ar trebui să funcționeze, dar nu este foarte elegantă, doar te complici degeaba când se poate face doar modificând query-ul SQL.
1 out of 1 members found this post helpful.

Postat în original de
impelo
Multumesc Bogdan pentru ajutor. Este foarte util codul. Daca trebuie sa iau din mai multe tabele, cum ar trebui sa iasa? Am incercat
*baza2 este cea care are id-uri din mai multe baze..
Nu mai imi afiseaza nimic in cazul asta...
Nu, o să ai ceva de genul:
SELECT * FROM baza2 left join baza1 on baza2.baza1_id = baza1.baza1_id left join baza3 on baza2.baza3_id = baza3.baza3_id ORDER BY baza2_id DESC
Cel mai bine ar fi să execuți query-ul în phpmyadmin să vezi ce rezultate îți dă sau dacă este vreo eroare de sintaxă.
Să fiu sincer, n-am mai scris un query sql de câțiva ani, anul acesta am mai făcut câteva la facultate, la un laborator, deci e posibil ca exemplul de sus să nu fie ok - nu l-am testat. În ultimii ani am folosit AR-ul din Yii Framework.
Ultima modificare făcută de Bogdan Ungureanu; 13th June 2013 la 15:41.
1 out of 1 members found this post helpful.
$query = "SELECT baza1.baza1_descriere, baza2.baza2_id, baza2.baza2_descriere FROM baza1 INNER JOIN baza2 ON baza1.baza1_id = baza2.baza1_id ORDER BY baza2.baza2_id DESC";
1 out of 1 members found this post helpful.

Postat în original de
impelo
Nu am obiceiul sa deschid cate un thread pentru fiecare problema, asa ca va mai cer ajutorul inca odata tot aici...
Vreau sa selectez anumite inregistrari. Am facut formularul unde selectez ce am nevoie..
Cod PHP:
<form method='get' action='?show=raportare'>
<div class="module_content">
<h4 class='alert_info'>Raportarea in functie de asigurator</h4>
<div class="clear"></div>
<fieldset style="width:48%; float:left;"><label>Asigurator</label>
<select style="width:92%;" name="asigurator_tag">
<option></option>
<?php
$sql="SELECT * FROM asiguratori ORDER BY asigurator_tag ASC";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result, MYSQLI_ASSOC)){
?>
<option value="<? echo $rows['asigurator_id']; ?>"><? echo $rows['asigurator_tag']; ?></option>
<?php }?>
</select>
</fieldset>
<div class="clear"></div>
<fieldset style="width:48%; float:left;"><label>Data inceput</label>
<input type="date" style="width:92%;" name="dela"></fieldset>
<fieldset style="width:48%; float:right;"><label>Data sfarsit</label>
<input type="date" style="width:92%;" name="panala"></fieldset>
<div class="clear"></div>
</div>
<footer>
<div class="submit_link">
<input type="submit" value="Afiseaza raportul" class="alt_btn">
</div>
</footer>
</form>
Asta este codul de afisare..
Cod PHP:
<?php
include('config.php');
switch($_GET['show']){
case 'raport':include'ext/raport.php';break;
case 'raportare':include'ext/raportare.php';break;
}
?>
Asta este pagina de afisare
Cod PHP:
<?php
$asigurator_id=$_POST['asigurator_id'];
$dela=$_POST['dela'];
$panala=$_POST['panala'];
$sql="SELECT * FROM polite WHERE asigurator_id=$asigurator_id AND data_emitere >= " . $dela . " AND data_emitere <= " . $panala . " ORDER by data_emitere ASC";
$result = mysql_query($sql) or die(mysql_error());
?>
+afisarea propriu-zisa
Nu imi afiseaza si nu inteleg de ce.. am incercat 400000 de variante, niciuna nu e buna, plus ca nu imi afiseaza la link ?show=raportare&asigurator_id=...., ci ?asigurator_id=...
Multumesc anticipat pentru ajutor.
În form șterge tot din action și adaugă asta în form.
<input type='hidden' name='show' value='raportare' />
27th June 2013, 17:27
#10
1 out of 1 members found this post helpful.

Postat în original de
impelo
Asa merge, imi face cum trebuie linkul, dar nu-mi afiseaza...
Încearcă asta
$sql="SELECT * FROM polite WHERE asigurator_id=$asigurator_id AND data_emitere BETWEEN '" . $dela . "' AND '" . $panala . "' ORDER by data_emitere ASC";
Variabilele $dela și $panala nu au nicio valoare pentru ca form-ul este GET, nu POST.
Deci asta
$asigurator_id=$_POST['asigurator_id'];
$dela=$_POST['dela'];
$panala=$_POST['panala'];
trebuie sa fie asa
$asigurator_id=$_GET['asigurator_id'];
$dela=$_GET['dela'];
$panala=$_GET['panala'];
Ai probleme mari cu exploit-urile sql. Ar fi bine sa citești threadul ăsta, dacă nu dorești să te trezești cu site-ul spart.