ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
537
537
EMPFEHLEN
-
26.08.07 21:24 #1
- Registriert seit
- Jun 2007
- Ort
- Lingen (Niedersachsen, zZ in Istanbul)
- Beiträge
- 685
Hi,
ich spiele ein Browsergame ( www.space-pioneers.de )
und habe mir dazu eine Koordinaten-Datenbank gebastelt.
Man kann folgende Daten einfügen:
Allianz, Spielername, Koordinaten(13stück)
Soweit tut alles ganz gut,
auch die Suchfunktion arbeitet prima.
Mein Problem:
Ich nehme mal ein Beispiel:
Folgende Daten werden eingetragen:
Rla <-Allianz
c-mon <_Name
123:66:12 <-Koords1
124:66:04 <-Koords2
178:05:13 <-Koords3
Das geht ja,
aber nun sollen 2 Koordinaten hinzugefügt werden.
Also folgende Eingabe:
Rla
c-mon
144:05:16
101:99:01
Allerdings soll die der erste Eintrag dann geupdated werden,
sodass die Koordinaten an Platz 4 und 5 gelangen.
WIe realisiere ich das?
-
Hallo!
Ich würde den Datensatz auslesen und prüfen wieviele Koordinaten schon gespeichert wurden. Anschließend per Update-Query den Datensatz updaten.
mfg floProgramming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
-Rich Cook
-
26.08.07 21:49 #3
- Registriert seit
- Jun 2007
- Ort
- Lingen (Niedersachsen, zZ in Istanbul)
- Beiträge
- 685
Und wie prüfe ich?
Soll ich das so machen?
(0 = id, 1 = alli, 2= spieler)
[php]
while ($row = mysql_fetch_array($query, $connect))
{
if ($row[3] != "")
{
$update = "UPDATE spdata SET koords1 = '$eingabe' WHERE spieler LIKE '$Spieler')
}
}
Weil so klappt das nicht, denn dann werden ja alle restlichen Felder befüllt.
-
27.08.07 22:28 #4
- Registriert seit
- Jun 2007
- Ort
- Lingen (Niedersachsen, zZ in Istanbul)
- Beiträge
- 685
Ich löse es jetzt anders,
aber wenn jemand dochwe iß was ich meine, bitte ich es ihn/sie es zu posten
-
So wie ich das sehe ist dein DB-Modell falsch.
Mach 2 Tabellen:
User
-------------------
UserID | UserName | Allianz
MySQL:
Code sql:1 2 3 4 5 6 7 8
CREATE TABLE USER ( UserID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, UserName VARCHAR(50) NULL, Allianz VARCHAR(50) NULL, PRIMARY KEY(UserID), UNIQUE INDEX User_U1(UserName, Allianz), INDEX User_I1(Allianz, UserName) );
und
Koordinaten:
KoordinatenID | UserID | Koordinate
MySQL:
Code sql:1 2 3 4 5 6 7
CREATE TABLE Koordinate ( KoordinateID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, UserID INTEGER UNSIGNED NOT NULL, Koordinate VARCHAR(20) NULL, PRIMARY KEY(KoordinateID), INDEX Koordinate_F1(UserID) );
Zum Auslesen würde ich 2 Funktionen machen. Eine getUsers() und eine getKoordinate($UserID).
GetUsers macht ein SELECT auf die Users Tabelle. getKoordinate($UserID) macht ein SELECT auf die Koordinaten Tabelle mit einer WHERE Klausel auf die UserID.
Um einem User dann beliebig viele Koordinaten hinzuzufügen musst du nur in der Koordinatentabelle ein neuer Eintrag machen und die UserID entsprechend Setzen.
----------------------
[Edit]
Hab mal ein Beispiel für dich. Suche und schöne Ausgabe lass ich dich selber bauen
PHP-Code:<?php
function query($sql)
{
// Verbinden
$connection = mysql_connect('localhost', 'user', 'pw') or die('Fehler beim Verbinden');
mysql_select_db('db', $connection) or die('Fehler beim Wählen der Datenbank');
// Daten holen
$result = @mysql_query($sql, $connection);
$count = @mysql_num_rows($result);
// Daten in array schreiben
$data = array();
if($count > 0)
{
for($i=0; $i<$count; $i++)
{
$data[$i]=mysql_fetch_array($result);
}
}
return $data;
}
function getUsers()
{
// Select auf usertabelle
return query('SELECT * FROM `User`;');
}
function getKoordinaten($UserID)
{
// Select auf Koordinatentabelle mit WHERE
return query('SELECT * FROM `Koordinate` WHERE `UserID` = "'.$UserID.'";');
}
// Ausgabe:
$Users = getUsers();
foreach($Users as $User)
{
// Koordinaten des Users holen
$Koordinaten = getKoordinaten($User['UserID']);
// Userdaten ausgeben:
echo 'Username: ' . $User['Username'] . '<br />';
echo 'Allianz: ' . $User['Allianz'] . '<br />';
// Koordinaten ausgeben
echo 'Koordinaten:<br />';
foreach($Koordinaten as $Koordinate)
{
echo $Koordinate['Koordinate'] . '<br />';
}
}
?>Geändert von Danielku15 (27.08.07 um 23:15 Uhr) Grund: Beispiel hinzugefügt
Ähnliche Themen
-
[SQL] - Brauche Hilfe bei einer Datenbank
Von blaq2beatz im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 21.04.10, 09:09 -
Brauche Hilfe: Vererbung in einer relationalen Datenbank (mySQL)
Von derFuxx im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 11.02.08, 10:06 -
Will eine Datenbank machen brauche eure Hilfe!
Von smat33 im Forum Relationale DatenbanksystemeAntworten: 11Letzter Beitrag: 19.07.05, 05:56 -
Eigener Chat? Brauche Hilfe - Datenbank, JavaScript Problem!
Von Oli-bt im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 03.07.05, 01:28 -
Anmeldescript - Mail - Datenbank - brauche Hilfe
Von schwarzfahrer im Forum PHPAntworten: 7Letzter Beitrag: 06.08.03, 10:21





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren