[php/mysql] via php tabel selecteren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
eej mensen

ik wil via een php scriptje kunnen de gebruiker kunnen laten kiezen welke tabel ze openen (je moet dit zien als : de gebruiker voert de klantcode in en dan moet daarbij dus automatisch die tabel geselecteerd worden.

voor zover ik weet kon ik het gewoon zo doen :

mysql_query("SELECT * FROM $klantcode WHERE 1 ")

waarbij ik $klantcode dus met een form door de gebruiker laat intoetsen, kan iemand mij daar ff bij helpen. Volgens mij kijk ik iets heel lulligs over het hoofd :?

Acties:
  • 0 Henk 'm!

  • jpwaag
  • Registratie: September 2003
  • Laatst online: 14:50
dus je hebt voor elke klant een andere tabel. Lijkt me niet erg logisch, maar oké

PHP:
1
2
3
4
5
6
$query="SELECT * FROM ".$klantencode.";";
$result=mysql_query($query);
//weergeven
while($data=mysql_fetch_array($result)){
  echo "bla bla ".$data['veld1']." blabla ".$data['veld2']." enz <br />\r\n";
}

Ik zou het alleen anders doen. Ik zou een tabel maken met een veld klantencode. Zo zet je alle gegevens in een tabel. De code wordt dan:
PHP:
1
2
3
4
5
6
$query="SELECT * FROM `klantentabel` WHERE `klantencode`=".$klantencode.";";
$result=mysql_query($query);
//weergeven
while($data=mysql_fetch_array($result)){
  echo "bla bla ".$data['veld1']." blabla ".$data['veld2']." enz <br />\r\n";
}

Acties:
  • 0 Henk 'm!

  • jan-marten
  • Registratie: September 2000
  • Laatst online: 20-09 15:31
Heb je voor elke klant een aparte tabel?

Mooi database design heb jij.
Als ik jouw was dan had ik dat eerder gedaan als:

tabel: klanten (id en een tabelID)
tabel: tabellen (id en rest informatie)

(pseudo code zo ongeveer)
PHP:
1
2
3
4
$query = mysql_query("SELECT tabelID FROM klanten WHERE id = $klantcode LIMIT 1");
$klant = mysql_fetch_array($query);
$query = mysql_query("SELECT * FROM tabellen WHERE id = ".$klant['tabelID']." LIMIT 1");
$tabel = mysql_fetch_array($query);


Je zou er zelfs nog een join van kunnen maken.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
tja daar zat ik eerst ook aan te denken maar dat kan dus niet, ik maak de tabellen niet zelf het enige wat ik moet doen is zorgen dat de goede tabel geselecteerd wordt, de gegeven worden via odbc is de tabel gepleurd

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 12 maart 2004 @ 09:50:
mysql_query=("SELECT * FROM $klantcode WHERE 1 ")

waarbij ik $klantcode dus met een form door de gebruiker laat intoetsen, kan iemand mij daar ff bij helpen. Volgens mij kijk ik iets heel lulligs over het hoofd :?
misschien moet dat = teken ergens anders staan ;)

offtopic:
overigens vind ik het niet heel erg vreemd dat je voor elke klant een andere database gebruikt, security technisch vind ik dat zelfs beter, maar dat ligt natuurlijk ook aan de omvang van het project ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Erkens schreef op 12 maart 2004 @ 10:21[/message]:
[...]

misschien moet dat = teken ergens anders staan ;)

offtopic:
overigens vind ik het niet heel erg vreemd dat je voor elke klant een andere database gebruikt, security technisch vind ik dat zelfs beter, maar dat ligt natuurlijk ook aan de omvang van het project ;)
dat = teken is een foutje dat ik hier heb getypt dat heb ik nie in m'n script staan


enneuh aan de opbouw van de tabellen kan ik zelf niks doen, het zijn aida rapporten (http://www.aida32.hu/aida32.php) die ik wil gaan verwerken in een database ik verstuur deze dus via een mysql odbc driver naar de database waardoor ik alleen de naam van de tabel kan veranderen, omdat het aanmaken in invullen van de tabellen geheel automatisch gaat

Acties:
  • 0 Henk 'm!

  • PhoeniX-
  • Registratie: Juni 2000
  • Laatst online: 01-09 10:26
Verwijderd schreef op 12 maart 2004 @ 09:50:
mysql_query=("SELECT * FROM $klantcode WHERE 1 ")

waarbij ik $klantcode dus met een form door de gebruiker laat intoetsen, kan iemand mij daar ff bij helpen. Volgens mij kijk ik iets heel lulligs over het hoofd :?
Volgens mij werkt het gewoon als je op deze manier een var aanroept in je query (= teken staat wel verkeerd ja ;)). Om 't wat beter te kunnen debuggen zou je misschien (tijdelijk) zo'n constructie kunnen maken:
PHP:
1
2
3
4
5
6
7
$query = "SELECT * FROM $klantcode WHERE 1";
$resultset = mysql_query($query);

if (mysql_error() {
  echo $query;
  echo mysql_error();
}
Als er dan iets fout gaat echo je je query, en de foutmelding.

Succes.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
k zal ut zodra k weer ken ff uitproberen (moet nu ff wat anders doen |:(

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Verwijderd schreef op 12 maart 2004 @ 10:48:
k zal ut zodra k weer ken ff uitproberen (moet nu ff wat anders doen |:(
ken ju as ge ff tijd hep ook ff proberen normaal neerlands te gebruiken?

Beetje je post verzorgen mag wel hoor, dingen als hoofdletters en leestekens zijn geen overbodige luxe en je mag een woord gerust voluit schrijven. Wat je op MSN doet is jouw zaak, maar op het forum lezen er meer mensen mee.

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

PhoeniX- schreef op 12 maart 2004 @ 10:42:
[knip]
PHP:
1
2
3
4
5
6
7
$query = "SELECT * FROM $klantcode WHERE 1";
$resultset = mysql_query($query);

if (mysql_error() {
  echo $query;
  echo mysql_error();
}
maar dan nog wel een ) achter de if (mysql_error() :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
curry684 schreef op 12 maart 2004 @ 11:29:
[...]

ken ju as ge ff tijd hep ook ff proberen normaal neerlands te gebruiken?

Beetje je post verzorgen mag wel hoor, dingen als hoofdletters en leestekens zijn geen overbodige luxe en je mag een woord gerust voluit schrijven. Wat je op MSN doet is jouw zaak, maar op het forum lezen er meer mensen mee.
ow oke, k zal er voortaan op letten

en voor PhoeniX:

hehehhe dat had ik al gezien en het is inmiddels gelukt 8)

iedereen bedankt!!!

Acties:
  • 0 Henk 'm!

  • PhoeniX-
  • Registratie: Juni 2000
  • Laatst online: 01-09 10:26
GX schreef op 12 maart 2004 @ 11:32:
[...]

maar dan nog wel een ) achter de if (mysql_error() :)
Dank u ;)

Risico van uit de losse hand coden ;)
Pagina: 1