Avatar billede mibu Nybegynder
09. juli 2007 - 16:16 Der er 18 kommentarer og
2 løsninger

mulighed for valg til flere db-tabeller

jeg er ved at lave et lille online bogføringssystem, hvor oplysninger skal gemmes i 3 tabeller hvergang, Det kan jeg godt klare!
Tabel_1 skal bruges hver gang, mens de to andre tabeller varigerer mellem 14 forskellige.
Kan man lave f.eks. noget i stil med et par dropdownlister, så man kan vælger til og fra tabeller? Eller skal jeg laver en side til hver eneste kompination?
Iøvrigt kunne jeg godt bruge en "default" dato i mit datofelt: format yyyy-mm-dd, men da det "kun" skal være default kan jeg ikke bruge mysql timestamp.
Avatar billede jakobdo Ekspert
10. juli 2007 - 08:53 #1
Du kan godt trække tabelnavnene ud og vælge dem via en dropdown liste.
Du bør kunne bruge datatypen: date det er i formattet: yyyy-mm-dd
Avatar billede mibu Nybegynder
10. juli 2007 - 09:27 #2
ad.1 Kan du vise mig et lille eksempel? :-)
ad.2 Jeg bruger datatypen date, men jeg har vist forklaret mig dårligt. På min formside vil jeg gerne have dd som default, men man skal kunne skrive en selvvagt dato i stedet for.
Avatar billede showsource Seniormester
10. juli 2007 - 10:18 #3
Tabeller

$tables = mysql_query("SHOW TABLES FROM `databasenavn`") or die (mysql_error());

    while($tabel = mysql_fetch_row($tables)) {
    echo "<br />". $tabel[0];
    }


Jeg ville nok lade valg af dato foregå i select bokse, ( hvor aktuel dato er selected )og derefter bruge checkdate() til at "godkende" dato
Avatar billede jakobdo Ekspert
10. juli 2007 - 10:23 #4
ad.1: Kig på http://www.php.net/mysql_list_tables
ad.2: Du kan bruge: echo date('Y-m-d');
Avatar billede mibu Nybegynder
10. juli 2007 - 12:35 #5
KANON!
I har begge givet mig noget at bejde med, (php.net er også en god side) SHOW TABLES viser dog lige et par tabeller der ikke skal med (userlist bl.a.) men der må jeg så finde på noget så de ikke vises. (evt. flytte til en ny db)
Jeg kan godt få echo date til at virke i en selectbox, min selvvalgte dato driller dog lidt, men nu har jeg jo lidt mere hjælp på php.net
må jeg forslå at de herre (m/k man ved jo aldrig :-) deler point?

Michael
Avatar billede jakobdo Ekspert
10. juli 2007 - 12:40 #6
Svar!
Avatar billede showsource Seniormester
10. juli 2007 - 13:57 #7
$tables = mysql_query("SHOW TABLES FROM `databasenavn`") or die (mysql_error());

$vis_ikke = array("tabelnavn", "tabelnavn2");

    while($tabel = mysql_fetch_row($tables)) {

        if(in_array($tabel[0], $vis_ikke)) {
        continue;
        }

    echo "<br />". $tabel[0];
    }
Avatar billede mibu Nybegynder
10. juli 2007 - 14:25 #8
Smuk showsouce! Jeg havde tænk at man nok kunne sådan et eller andet, og det kunne jeg måske finde på php.net (se! jeg er allerede blevet forelsket på den side:-)
Jeg skal se om jeg kan finde ud af og få det lagt i en selectbox.

Men takker for hjælpen så vidt.
Avatar billede jakobdo Ekspert
10. juli 2007 - 14:44 #9
Takker for point.
Avatar billede jakobdo Ekspert
10. juli 2007 - 14:59 #10
Det må blive noget i denne stil:

$tables = mysql_query("SHOW TABLES FROM `databasenavn`") or die (mysql_error());

$vis_ikke = array("tabelnavn", "tabelnavn2");

if(mysql_num_rows($tables)>0)
{
    echo '<select name="tabel">';
    while($tabel = mysql_fetch_row($tables))
    {
        if(in_array($tabel[0], $vis_ikke))
        {
            continue;
        }
        echo '<option>'.$tabel[0].'</option>';
    }
    echo '</select>';
}
Avatar billede mibu Nybegynder
10. juli 2007 - 15:42 #11
Det er simplethen bare perfekt!
Avatar billede showsource Seniormester
10. juli 2007 - 16:45 #12
Hvis det skal virke med en form, skal
echo '<option>'.$tabel[0].'</option>';
jo nok være
echo '<option value="'.$tabel[0].'">'.$tabel[0].'</option>';

:O)
Avatar billede jakobdo Ekspert
10. juli 2007 - 17:42 #13
Jeg mener at hvis value ikke er sat, så tager den bare værdien mellem <option> og </option> og sender videre.
Avatar billede showsource Seniormester
11. juli 2007 - 07:31 #14
Det var jeg ikke klar over! har altid selv brugt value
Avatar billede jakobdo Ekspert
11. juli 2007 - 07:53 #15
Jeg bruger nu også selv value, da jeg jo oftest har et unikt ID i value og noget tekst mellem > tekst < :o)
Avatar billede mibu Nybegynder
13. juli 2007 - 15:52 #16
Sorry! jeg har lige en "nød" mere! Jeg har brugt som der er forslået i det ovenstående, og jeg kan også fint vælge mellem mine tabeller! Men jeg kan ikke få den valgte tabel med over i min sendside når jeg trykker submit. Min kode på sendsiden er her, indtastninger kommer fint med over i databasen i de to første "INSET INTO" men i den 3. !!!! hvad skal jeg kalde den for at den kan finde min valgte tabel?

$dato = $_REQUEST["dato"];
$tekst = $_REQUEST["tekst"];
$ind = $_REQUEST["ind"];
               
//kontakt base
include("database.php");
//indsæt indholdet i database
mysql_query("INSERT INTO bilag(id, dato, tekst, ind) values('','$dato','$tekst','$ind')");

mysql_query("INSERT INTO kasse(id, dato, tekst, ind) values('','$dato','$tekst','$ind')");

mysql_query("INSERT INTO ?????(id, dato, tekst, ud , ind) values('','$dato','$tekst','$ind''$ind')");
               
echo "<br>test.<br>";
Avatar billede mibu Nybegynder
13. juli 2007 - 16:03 #17
Ups! jeg ser lige at der er et par kodefejl, men dette er kun et eksempel, jeg har klippet lidt ud for overskuelighedens skyld. Det store spørgsmål er hvad der skal stå i stedet for "?????"
Avatar billede jakobdo Ekspert
14. juli 2007 - 07:39 #18
Inde i den kode som behandler data når der trykkes SUBMIT, prøv at at lave:

echo '<pre>';
print($_REQUEST);
echo '</pre>';

Så vil du se alle data som er sendt.

Har du ligeledes husket at smide radiobutton med ind i formen?

Det kunne være dine ????? skulle rettes ud med: $_REQUEST['tabel']
Avatar billede mibu Nybegynder
14. juli 2007 - 09:18 #19
ad1)Fint tak!
echo '<pre>';
print($_REQUEST);
echo '</pre>';

ad2)
Radiobotten? hvor? jeg har jo brugt <INPUT> og <SELECT>

ad3)
$_REQUEST['tabel'] = ??? ok!

Jeg kommer nok snart til at sætte flere point i omløb :-) Tak!
Avatar billede jakobdo Ekspert
15. juli 2007 - 11:35 #20
2) Jeg bladende 2 spørgsmål sammen! :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester