Crearea unui tabel intr-o BD in functie de un alt tabel

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
aurash33
Mesaje:5

Crearea unui tabel intr-o BD in functie de un alt tabel

Propun aceasta problema ( in primul rand nu stiu daca se poate asha ceva si daca se poate cum se face )
Lucrez cu XAMPP:
-am o baza de date numita "matematica" cu doua tabele:
-nota (am cateva inregistrari )
-final (nu are inregistrari )
Am scris codul php care sa imi apara in browser tabelul nota (poza mai jos).
Vreau sa creez un buton asa cum e in poza nota butonul "adauga"; numit buton "transforma" care sa ma directioneze catre o pagina in care ar trebui sa apara tabelul final (poza mai jos) {lucru foarte simplu de facut} problema e ce imi apare in browser daca eu nu am inregistrai facute in tabelul final.(poza final este exemplul de tabel rezultat in urma exemplului din poza nota(tabelul existent in baza de date)
Acest tabel trebuie sa contina informatii extrase din primul tabel :
-are patru campuri:
-id
-disciplina
-seria
-tip
-profesor
-actiuni
Campul profesor ramane gol.
Codul meu php ar trebui sa imi parcurga tabelul nota si pentru fiecare inregistrare el trebui sa mearga la campul S si sa vada daca este egal cu 0 sau nu si daca nu este egal cu 0 va merge si va citi campul Nr.gr daca acolo am 2 el va trebui sa mearga si sa imi adauge in noul meu tabel 2 inregistrari care sunt absolut identice si anume pentru exemplul din poze am asha ( Analiza B,AJ S liber Editeaza|Sterge ) daca este egal cu 0 nu face nimic apoi merge la campul L si verifica daca este egal cu 0 sau nu daca acolo am gasit orice altceva in afara de 0 merge si imi citeste Nr.srg daca acolo a gasit 4 el merge in noul tabel si imi adauga 4 inregistrari identice ( Analiza B,AJ L liber Editeaza|Sterge) daca acolo a gasit 0 nu face nimic --------------------------repeta aceasta instructiune pana nu mai gaseste nicio inregistrare in tabelul nota.

Exemplu concret de care am vorbit mai sus: http://auraseum.blogspot.com/2011/12/poze.html .

MarPlo Mesaje:4343
Pare destul de dificil. Nu stiu exact cum se face, dar cred ca ar merge cu mai multe interogari la baza de date.
Prima data un Select in primul tabel, apoi se parcurg randurile returnate, si in functie de valorile lor se face Insert /Update in al doilea tabel.

aurash33 Mesaje:5
spunemi sintaxa de parcurgere ( am incercat cu un for si apoi am pus conditia daca e S sau L egale cu 0 sau nu cu doi de if ) dar nu inteleg de ce nu imi ia sintaxa nici eroare nu imi da dar nici nu face nimic).Potzi sa imi spui tu cum ar trebui sa arate sintaxa for care sa contzina si if referitor la o baza de date (ca asha pt niste variabile declarate mai sus in cod stiu si eu )
Am incercat sa parcurg cu un for dupa id si sa incremenetz tot timpul unu dar unde ma opresc ca poate un tabel are 20 de inregistrari altul 10 .
Multumesc mult de tot ca ai raspuns

MarPlo Mesaje:4343
Pot sa incerc sa ajut pe codul facut de tine si postat aici, cu mentionare unde nu te descurci.
Doar incerc daca stiu, ca si eu sunt incepator, nu ma pricep la ideile avansate /complexe.

aurash33 Mesaje:5
Itzi spuneam mai sus de codul pe care l-am incercat eu sa il scriu de parcurgere a acelui tabel nota care nici eroare nu imi da dar nici nimic nu face :

Cod: Selectaţi tot

<?php
    include 'connect.php';
    $query = "SELECT * FROM nota ";
    $result = mysql_query($query);
    function mysql_fetch_all($res) {
   while($row=mysql_fetch_array($res)) {
       $return[] = $row;
   }
   return $return;
}

    for($j = 0; $j < count($dataArr); $j++) {
         for($i = 0; $i < count($all); $i++){
                 if($S=0) { print "Este 0";  }
                           else{ print "$S";}                   
        }
        }
?>
Am incercat aici macar sa imi afiseze valorile pe care le ia S daca functiona apoi il complicam si cu L si apoi cu acel INSERT

MarPlo Mesaje:4343
Pai nici macar Select-ul nu e cum trebuie.
Tu vrei lucruri avansate, dar nici cele de incepator nu-s facute.
Un select in mysql cu extragerea randurilor si datele unei coloane se face asa:

Cod: Selectaţi tot

$query = "SELECT * FROM tabel";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0) {
  while($row=mysql_fetch_array($result)) {
    // $return va contine intr-un array valorile din "nume_coloana" pe fiecare rand
    $return[] = $row['nume_coloana'];
  }
}
else echo '0 rezultate'; 
Pe site sunt lectii de PHP si MySQL, mai departe nu ma mai bag pe acest subiect.

aurash33 Mesaje:5
merge si asha cum am facut eu SELECTUL daca nu crezi intra aici http://www.php.net/manual/ro/function.m ... ch-row.php credema eu am verificat acel exemplu pe care il dau ei acolo cu baza de date matematica de care vorbeam mai sus

lookme Mesaje:15
nu stiu daca am inteles bn ce vrei tu :) dar din ce am citit asta am inteles si sper sa te ajute ex:P

Cod: Selectaţi tot

UPDATE suppliers 	
SET supplier_name = 	( SELECT customers.name
FROM customers
WHERE customers.customer_id = suppliers.supplier_id)
WHERE EXISTS
  ( SELECT customers.name
    FROM customers
    WHERE customers.customer_id = suppliers.supplier_id);

aurash33 Mesaje:5
Nu prea inteleg in totalitate codul daca ai vrea sa explici putzin in mare merci oricum de implicare in subiect

lookme Mesaje:15
cu acest cod poti exectuta diferite comenzi in 2 tabele din baza de date :P