[PHP] / [SQL] in alle tabellen een veld toevoegen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wat is hier niet goed aan? Ik heb een database met voor elke klant een aantal eigen tabellen, bv henk_client, henk_gegevens en hans_client, hans_gegevens. Nu wil ik middels een php pagina bij elke klant in een bepaalde tabel een veld toevoegen, op zich werkt dit (zie $sql_queryUITV), maar daarvoor wil ik eerst checken of het veld al bestaat en daar gaat het mis, dan krijg ik de volgende melding:
"Duplicate column name 'zorg_abalg_eindindicatie' " en dan gaat ie niet verder.....
dit zal slaan op het deel in $sqldubbel, maar hoe doe ik het dan???
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if ($_POST['uitvoeren']) //query uitvoeren
{
 $sql_query = "SELECT * FROM company ORDER BY username";
 $result = mysql_query($sql_query) or die (mysql_error());
 $aantal = mysql_num_rows($result);         
 while($weergave = mysql_fetch_object($result))                 
    { 
    $sqldubbel = "SELECT ".$_POST['veld']." FROM ".$weergave->username."_".$_POST['tabel']." ";
    $resdubbel = mysql_query($sqldubbel) or die (mysql_error());
    $dubbelaantal = mysql_num_rows($resdubbel); 
    if ($dubbelaantal > 0)
        {
        echo $_POST['veld']." bestaat al in ".$weergave->username."<br>";
        }
    else
        {
        $sql_queryUITV =  "ALTER TABLE `".$weergave->username."_".$_POST['tabel']."` ADD ".$_POST['veld']." ".$_POST['type']."";
        mysql_query($sql_queryUITV) or die (mysql_error()); 
        }
    }
}

Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
Je gebruikt mysql, kijk eens naar SHOW COLUMNS FROM tabel, hiermee kun je kijken of een kolom in een tabel bestaat of niet, ook als er geen records in de tabel staan.

Verder slaat die error op de $sql_UITV. (kapt bij de or die(mysql_error()) daar).

Weet je zeker dat je database-model goed is? (Als ik je code zo kijk, dan heb je niet per gebruiker een tabel nodig).

[ Voor 10% gewijzigd door Shadowman op 18-10-2006 11:53 ]


Acties:
  • 0 Henk 'm!

  • Rekcor
  • Registratie: Februari 2005
  • Laatst online: 05-09 21:08
Weet je zeker dat je database-model goed is? (Als ik je code zo kijk, dan heb je niet per gebruiker een tabel nodig).
Inderdaad. Ik zou een tabel gebruikers maken:

gebruiker
code:
1
[ID][Naam]


En voor iedere gegevens-soort een eigen tabel:

lievelingskleur
code:
1
[ID][Kleur]


auto
code:
1
[ID][Merk][Type]


En deze tabellen koppelen d.m.v. lookup-tabellen:

gebruikers_lievelingskleur
code:
1
[gebruikerId][lievelingskleurId]

gebruikers_auto
code:
1
[gebruikerId][autoId]


http://www.geekgirls.com/databases_from_scratch_3.htm

Acties:
  • 0 Henk 'm!

  • Koppensneller
  • Registratie: April 2002
  • Laatst online: 06:58

Koppensneller

winterrrrrr

Als elke gebruiker maar 1 lievelingskleur heeft, kun je ze ook zonder koppeltabel joinen:

gebruiker
code:
1
[ID][Naam][LievelingsKleurId]


kleuren
code:
1
[ID][KleurNaam]