Antworten auf deine Fragen:
Neues Thema erstellen

Sql-Abfrage

redbull2906

Nicht mehr ganz neu hier

Hallo,

habe folgende SQl-DB

ID heim_id gast_id tore_h tore_g

Ich würde diese jetzt gern Spaltenweise, also jedes Paarung in einer eigenen Spalte und nicht Zeilenweise ausgeben.

Gibs da eine spezielle Abfrage für?
 

afr0kalypse

Allwissendes Karmameerschweinchen!

AW: Sql-Abfrage

als sql abfrage wird das ohne weiteres nicht gehen.
hab ich das richtig verstanden, dass du heim und gast als eine spalte haben willst?
also quasi heim_id_vs_gast_id ?

vielleicht gehts über eine view (google > 'mysql view' (ich gehe mal davon aus dass du mysql benutzt))

ich versteh aber nicht warum du das machen willst...

übrigens: Datenbank = Zusammenfassung von Daten in Tabellen
Tabelle = Zusammenfasssung der Daten in Spalten und Zeilen

ich glaube nicht, dass gast_id und heim_id jeweils eine eigene Datenbank ist oder?
 

redbull2906

Nicht mehr ganz neu hier

AW: Sql-Abfrage

Es handel sich um 1 Mysql-DB mit den genannten Spalten!

Soll nachher etwa so ausehen:
<table><tr>
td>Schalke</td><td>Bayern</td><td>tore_h</td><td>tore_g</td>
</tr></table>

Das z.B. für eine Paarung - jetzt will ich halt alle anderen 8 Paarungen pro Bundesliga-Spieltag in neuen <td>'s stehen ham und nicht in neuen Zeilen - also nicht untereinandern sondern nach rechts erweitern.
 

azraelb

Noch nicht viel geschrieben

AW: Sql-Abfrage

als sql abfrage wird das ohne weiteres nicht gehen.
hab ich das richtig verstanden, dass du heim und gast als eine spalte haben willst?
also quasi heim_id_vs_gast_id ?

Also es gibt da schon Funktionen, die das machen können, sie sind aber sehr datenbankabhängig.

In MySQL müsste das so gehen:

SELECT CONCAT(heim_id, gast_id) AS ZusammenGeführterSpaltenname FROM Tablename;

evtl. noch ein trennzeichen in CONCAT() einfügen, sonstsind heim und gast zusammen geschrieben.


Hoffe das ist das, was du wolltest...

Gruß Az
 
P

punisher82

Guest

AW: Sql-Abfrage

Wäre vielleicht hilfreich, wenn du schreiben würdest, welche Scripsprache du benutzt... php, asp??

Also wenn du deine Daten aus der DB vorliegen hast, bau dir deine Tabelle doch einfach selber:

PseudoCode:
Code:
string table = "";

for (i = 0, i < 8, i++)
{
     table += "<td>";
     table +=  datenAusDerDatenbank[i];
     table += "</td>";
}

divTable.innerhtml = "<table><tr>" +  table + "<table><tr>";

Ich hoffe das hilft weiter...
 

beautyIAF

I like HDR

AW: Sql-Abfrage

Hallo redbull,

gibt es denn auch eine Tabelle in deiner Datenbank, in der dann die Namen der anzuzeigenen Mannschaften drinstehen, denn aus deiner derzeitigen DB Tabelle zieht man ja offensichtlich nur die jeweilige ID der Mannschaft.

Dementsprechend muss dann noch per JOIN Abfrage, zur MannschaftsID der entsprechende Mannschaftsname aus einer weiteren Tabelle ermittelt werden.

Also beschäftige dich doch einfach kurz mit einem MySQL Hilfetext, wenn du dann weitere Fragen hast, poste die einfach hier.

beautyIAF
 

redbull2906

Nicht mehr ganz neu hier

AW: Sql-Abfrage

jein, also ich meine die können ruhig jeweils in ner eigenen <td> stehen - möchte nur das ich die Daten nicht untereinander gelistet bekommen sondern von links nach rechts - Sprich datensatz 1 links und der letzte Datensatz rechts - hoff des is verständlich
 

Duddle

Posting-Frequenz: 14µHz

AW: Sql-Abfrage

jetzt will ich halt alle anderen 8 Paarungen pro Bundesliga-Spieltag in neuen <td>'s stehen ham und nicht in neuen Zeilen

Dann erzeug eben immer <td> statt neuen <tr>?
Das ist ne HTML-Frage. Du solltest schon ein gewisses Grundwissen darin haben, wenn du es schon dynamisch generieren willst...


Duddle
 
P

punisher82

Guest

AW: Sql-Abfrage

Mein reden...

@redbull2906 Wäre wirklich hilfreich zu wissen, wie du deine im moment Tabelle aufbaust (Code?) oder zumindest mit welcher Sprache...
 

Liebling373

PixelSchubser

AW: Sql-Abfrage

$sql = "SELECT * FROM (tabelle)";
$db_erg=mysql_query($sql);
while($temp=mysql_fetch_array($db_erg)){
echo "<table border='0'><tr>";
echo "<td>".$temp['ID']."</td><td>".$temp['heim_id']."</td><td>".$temp['gast_id']."</td><td>".$temp['tore_h']."</td><td>".$temp['tore_g']."</td>";
echo "</tr></table>";
}



So sollte das auf jeden Fall was werden!
 

redbull2906

Nicht mehr ganz neu hier

AW: Sql-Abfrage

Wir alles mit php realisiert - sorry das ic hdes vergessen hatte.

Werde mal die Vorschläge versuchen mal kucken wie weit ich komm
 

Eskayp

Something

AW: Sql-Abfrage

Naja, er will es ja nebeneinander, also daher:
Korrektur des Codes von Liebling373:
PHP:
  echo '<table border="1"><tr>';
  $result = mysql_query('SELECT * FROM `tblname`');
  while ($row = mysql_fetch_assoc($result)) {
    echo '<td>'.$row['heim_id'].'</td><td>'.$row['gast_id'].'</td>';
    echo '<td>'.$row['tore_h'].'</td><td>'.$row['tore_g'].'</td>';
  }
  echo '</tr></table>';
 

redbull2906

Nicht mehr ganz neu hier

AW: Sql-Abfrage

Hallo Leute,

bastell jetzt schon gefühlte 1000 stunden an einer mySql-Abfrage ? aber irgendwie will des net so.

Folgendes Problem

Ich habe 3 Tabellen in meiner DB
1.TB: user ? Hier sind die Namen der Spieler, email usw. hinterlegt
2.TB: spieltag ? Hier stehen wie der Name schon sagt alle Spieltage drin
3.TB: tipps ? Hier stehen die Tipps der einzelnen Spieler für den jeweiligen Spieltag drin

Aufbau:

User
ID : NAME : EMAIL

Spieltag
SPIEL_ID : SPIELTAG : HEIM : GAST : TORE_H : TORE_G

Tipps
SPIEL_ID : USER_ID : TIPP_H : TIPP_G : PUNKTE

Nun möchte ich jeweils pro Spieltag eine Übersicht der Tipps der einzelnen User pro Paarung generieren.

Der Aufbau sollte etwa so aussehen

Als HTML Tabelle

In der ersten Zeile sollen alle Paarungen stehen ? Spalte für spalte
In der zweiten Zeile sollen dann die Ergebnisse pro Paarung angezeigt werden
Ab der dritten Zeile sollen dann Zeile für Zeile die User stehen und deren Tipps jeweils pro Paarung - Spalte für Spalte

Hab mal nen Anfang einer Sql-Abfrage gebastelt aber irgendwie mach ich Denkfehler

?SELECT spieltag.heim, spieltag.gast, spieltag.tore_h, spieltag.tore_g, user.name, tipps.heim, tipps.gast FROM spieltag JOIN user JOIN tipps ON spieltag.spieltag=$spieltag AND tipps.user_id=user.id?

Aber es funktioniert nicht ? auch die Anzeige in der HTML-Tabelle will net so wie ich des gern hätt.

Habt ihr vllt. irgend wie ne Hilfestellung oder Lösungsansatz?

Hoff hab mich verständlich ausgedrückt.
 

azraelb

Noch nicht viel geschrieben

AW: Sql-Abfrage

Hallo,
dein SQL-Statement stimmt nicht, weil du spieltag mit der Tabelle user verknüpfen willst, du aber keine Verknüpfung zwischen den beiden tabellen angibst.

So funktioniert es:

Code:
[B][COLOR=Red]SELECT [/COLOR][/B]
user.name, spieltag.heim, spieltag.gast, spieltag.tore_h, 
spieltag.tore_g, tipps.tipp_h, tipps.tipp_g 
[B][COLOR=Red]FROM[/COLOR][/B] tipps 
[B][COLOR=Red]JOIN[/COLOR][/B] user 
[B][COLOR=Red]ON[/COLOR][/B] tipps.user_id = user.id 
[B][COLOR=Red]JOIN[/COLOR][/B] spieltag 
[B][COLOR=Red]ON[/COLOR][/B] tipps.spiel_id = spieltag.spiel_id
Dann nur noch die Tabelle aufbauen und du hast es...
 

redbull2906

Nicht mehr ganz neu hier

AW: Sql-Abfrage

@azraelb

hab deinen Code eingebaut - ausgegeben wird jedoch nichts. Zumindest zeigt er mir auch keinen Fehler
Will also immer noch nicht
 

redbull2906

Nicht mehr ganz neu hier

AW: Sql-Abfrage

Hab meinen Fehler gefunden warum er nichts ausgegeben hat . irgendwie hat sich ein ; hinter der while-Schleife versteckt ;)

Aber meine nächsten probleme - Ich bekomme die erste Paarung zweimal ausgegeben. Also am Anfang und am Ende der 1. Zeile - warum?

Desweiteren gibt er mir jeweils neun mal die User aus - klar gibt ja auch 9 Tipps. Ich hätte aber gerne des er je einmal die user ausgibt ZEILE für ZEILE und die Tipps dann SPALTE für SPALTE in den jeweiligen Spalten der Paarung ausgibt.

So sieht mein Code im moment aus
PHP:
<?
$abfrage="SELECT user.name AS user, spieltag.heim AS sh, spieltag.gast AS sg, spieltag.tore_h AS sth, spieltag.tore_g AS stg, tipps.tipph AS th, tipps.tippg AS tg FROM tipps JOIN user ON tipps.tipper_id = user.id JOIN spieltag ON tipps.spiel_id = spieltag.spiel_id"; 
$ergebnis=mysql_query($abfrage);
echo '<table border="1"><tr>';
echo '<td></td>';
while($row=mysql_fetch_array($ergebnis))
{
echo '<td>'.$row['sh'].'</td><td>'.$row['sg'].'</td>';
}
echo '</tr>';
$abfrage="SELECT user.name AS user, spieltag.heim AS sh, spieltag.gast AS sg, spieltag.tore_h AS sth, spieltag.tore_g AS stg, tipps.tipph AS th, tipps.tippg AS tg FROM tipps JOIN user ON tipps.tipper_id = user.id JOIN spieltag ON tipps.spiel_id = spieltag.spiel_id"; 
$ergebnis=mysql_query($abfrage);
while($row=mysql_fetch_array($ergebnis))
{
echo '<tr><td>'.$row['user'].'</td>';
}
$abfrage="SELECT user.name AS user, spieltag.heim AS sh, spieltag.gast AS sg, spieltag.tore_h AS sth, spieltag.tore_g AS stg, tipps.tipph AS th, tipps.tippg AS tg FROM tipps JOIN user ON tipps.tipper_id = user.id JOIN spieltag ON tipps.spiel_id = spieltag.spiel_id"; 
$ergebnis=mysql_query($abfrage);
while($row=mysql_fetch_array($ergebnis))
{
echo '<td>'.$row['th'].'</td><td>'.$row['tg'].'</td>';
}
echo '</tr>';
echo '</table>';
?>

Hat jemand noch irgend ne idee?
 

r3nt5ch3r

~ Allround pG ~

AW: Sql-Abfrage

Wenn du deine Datenbank exportieren und hier posten würdest, würde ich mir das ganze mal anschauen.
Du erwartest von 3 GLEICHEN Sql-Statements, dass sie unterschiedliche Daten liefern. Ich würde mir erstmal Sql beibringen bevor ich sowas programmiere/skripte^^
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben