WG2
Berichten: 55
avatar
Offline Stuur privebericht
Ik zit zelf nu met een probleem waar ik echt niet uitkom.

Het zit zo.

In tabel 1 zitten namen van spelers. Deze namen zijn standaard en kunnen niet verwijderd of toegevoegd worden.

In tabel 2 komen deze namen te zitten als ze in gebruik zijn genomen.

Ik wil dat er altijd 2 namen zichtbaar zijn.
Zo niet ( dus er is een naam bezet ) dan wil ik een script laten draaien die een nieuwe naam toevoegt, van tabel 1 naar tabel 2.

Das makkelijk, maar nu wil ik in tabel 2 geen dubbele namen hebben staan. Hoe krijg ik dit voor elkaar?

Een kleine code wat ik in gedachten had.
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
if (mysql_num_rows($res) < 2){
$res2 mysql_query("SELECT * FROM tabel1") or die( mysql_error( ) );
    while(
$naam mysql_fetch_object($res2)){
        
$query mysql_query("SELECT * FROM tabel2 WHERE id != ".$naam->naam_id." ORDER BY rand() LIMIT 0,1") or die(mysql_error());
        
$namen mysql_fetch_object($query);
        
        echo 
$namen->naam.'<br>';
    }
}


Dus 1 naam weg, dan een nieuwe toevoegen. Maar deze naam mag niet in de hele tabel2 voorkomen.
Laatst gewijzigd door YinYangYo op 2011-10-03 12:08:11
03-10-2011 12:07
Dit topic is 94 keer bekeken door 24 verschillende leden
Reacties op: "Order By"
1
Berichten: 552
avatar
Offline Stuur privébericht
Selecteer de namen uit beide tabellen en kijk dan of ze al bestaan ?
Code | Selecteer Alles
minimaliseren
1
if($_POST['naam'] == $naam) { }


Zou moeten werken toch ?
03-10-2011 12:21
WG2
Berichten: 55
avatar
Offline Stuur privébericht
Het is een cronjob, dus dat gaat niet werken helaas.
03-10-2011 12:22
Berichten: 552
avatar
Offline Stuur privébericht
Je selecteer met id, dus je kijkt direct of er een naam is, als je dit nou eens met naam zou doen dan ?

Dus:
where naam != $naam->naam
03-10-2011 12:25
WG2
Berichten: 55
avatar
Offline Stuur privébericht
Dat werkt hetzelfde met id. Ik neem van tabel 1 alles mee en voeg dit in tabel 2. ( tabel2.naam_id != tabel1.id ).

Ik moet om een of andere manier zorgen dat eerst heel tabel 2 wordt doorgekeken en dan gekeken welke namen er nog niet in staan van tabel 1. En dan 1 naam van tabel1 naar tabel2 random toevoegen.
03-10-2011 12:28
Informatica Student
Berichten: 1406
avatar
Online Stuur privébericht
Geen dubbele namen? Dit kan je door de database laten doen. Maak de veld uniek en je database zal waarschijnlijk een error terugsturen indien deze dubbel wordt.
03-10-2011 12:51
WG2
Berichten: 55
avatar
Offline Stuur privébericht
@BrokenTrack je bedoelt zeker door middel van een join?
Ik heb het inmiddels opgelost.
03-10-2011 13:05
Informatica Student
Berichten: 1406
avatar
Online Stuur privébericht
Nee. Mysql bijvoorbeeld bied de mogelijkheid aan om een column als uniek te kenmerken. Dit betekent dat zodra je een waarde in die column probeert in te voeren die al bestaat dat je een error krijgt.
03-10-2011 13:15
Reageer op: "Order By"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden