SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 06.09.2004, 16:46:05
joker joker ist offline
Junior Member
 
Registriert seit: May 2003
Beiträge: 201
Not unique table/alias...

Fehlermeldung: Not unique table/alias: 'wb_tips'
weis einer warum die fehlermeldung kommt? ich vermute es liegt am AND oder so, hoffe es kann mir einer weiterhelfen...

PHP-Code:
$query mysql_query("SELECT
                                  wb_games.id,
                                  wb_games.category,
                                  wb_games.a,
                                  wb_games.b,
                                  wb_games.starttime,
                                  wb_games.endtime,
                                  wb_games.status,
                                  wb_tips.userid,
                                  wb_tips.gameid
                              FROM
                                  wb_games,
                                  wb_tips
                              LEFT JOIN
                                  wb_tips ON (wb_tips.userid = $userid AND
                                  wb_tips.gameid = wb_games.gameid )
                              WHERE
                                  wb_games.status = 1
                              ORDER BY
                                  wb_games.endtime
                             DESC;"
) or die(mysql_error()); 
Mit Zitat antworten
  #2  
Alt 06.09.2004, 17:14:51
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
Die Struktur der Tabellen wäre interessant...

und ...

LEFT JOIN
wb_tips ON (wb_tips.userid = $userid AND
wb_tips.gameid = wb_games.gameid )

... das kommt mir komisch vor.
Mit Zitat antworten
  #3  
Alt 06.09.2004, 17:16:36
joker joker ist offline
Junior Member
 
Registriert seit: May 2003
Beiträge: 201
Tabelle wb_tips:
PHP-Code:
#
# Tabellenstruktur für Tabelle `wb_tips`
#

CREATE TABLE `wb_tips` (
  `
idint(11unsigned NOT NULL auto_increment,
  `
useridint(11unsigned NOT NULL default '0',
  `
gameidint(11unsigned NOT NULL default '0',
  `
teamvarchar(100NOT NULL default '',
  `
pointsint(11unsigned NOT NULL default '0',
  `
timeint(11unsigned NOT NULL default '0',
  
PRIMARY KEY  (`id`)
TYPE=MyISAM AUTO_INCREMENT=;

#
# Daten für Tabelle `wb_tips`
#

INSERT INTO `wb_tips` (`id`, `userid`, `gameid`, `team`, `points`, `time`) VALUES (111'OTw'31094471361),
(
2251'mTw'31094471595),
(
3811'mTw'11094471626),
(
4813'esu'11094472553); 
Tabelle wb_games
PHP-Code:
#
# Tabellenstruktur für Tabelle `wb_games`
#

CREATE TABLE `wb_games` (
  `
idint(11unsigned NOT NULL auto_increment,
  `
categoryint(11unsigned NOT NULL default '0',
  `
massagemediumtext NOT NULL,
  `
avarchar(100NOT NULL default '',
  `
bvarchar(100NOT NULL default '',
  `
starttimeint(11unsigned NOT NULL default '0',
  `
endtimeint(11unsigned NOT NULL default '0',
  `
statusint(11unsigned NOT NULL default '0',
  
PRIMARY KEY  (`id`)
TYPE=MyISAM AUTO_INCREMENT=;

#
# Daten für Tabelle `wb_games`
#

INSERT INTO `wb_games` (`id`, `category`, `massage`, `a`, `b`, `starttime`, `endtime`, `status`) VALUES (11'Das ist eine Test Wette''OTw''mTw'109447123810944712381),
(
21'Das ist eine weitere Testwette''mousesports''mTw'109447202510944720251),
(
31'Das ist eine weitere Testwette''esu''otw'109447205010944720501); 
Mit Zitat antworten
  #4  
Alt 06.09.2004, 17:20:59
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
Nur so aus dem Bauch heraus:

LEFT JOIN
wb_tips ON wb_tips.gameid = wb_games.gameid
WHERE
wb_tips.userid = $userid AND
wb_games.status = 1

Meinst Du vielleicht dies?
Mit Zitat antworten
  #5  
Alt 06.09.2004, 17:25:56
joker joker ist offline
Junior Member
 
Registriert seit: May 2003
Beiträge: 201
immer noch der gleich fehler, aber da hast glaub ich so neben bei recht, das sollte doch in der where klausel, aber irgendwo ist noch ein fehler, habe im from das wb_tips entfernt ( da ich glaub bei JOIN soll/muss man es nicht machen sondern FROM wb_games reicht) jetzt kommt der fehler: Unknown column 'wb_games.gameid' in 'on clause'

also ich weis da überhauot nicht weiter :/
Mit Zitat antworten
  #6  
Alt 06.09.2004, 18:18:58
joker joker ist offline
Junior Member
 
Registriert seit: May 2003
Beiträge: 201
ich habs fast :)

PHP-Code:
       $query mysql_query("SELECT
                                  wb_games.id,
                                  wb_games.category,
                                  wb_games.a,
                                  wb_games.b,
                                  wb_games.starttime,
                                  wb_games.endtime,
                                  wb_games.status,
                                  wb_tips.userid,
                                  wb_tips.gameid
                              FROM
                                  wb_games
                              LEFT JOIN
                                  wb_tips ON (wb_tips.gameid = wb_games.id )
                              WHERE
                                 (wb_games.status = 1) AND
                                 (wb_tips.userid != $userid)
                              ORDER BY
                                  wb_games.endtime
                              DESC;"
) or die(mysql_error()); 
mit dem quary gibt er mir nun 3 einträge aus, davon aber ein doppelt, das ist der eintrag wo $userid mit der gameid übereinstimmen, dafür fehlt aber einer wo in wb_tips kein eintrag zur passenden gameid ist :/ jetzt versteh ich nix mehr

EDIT: wenn ich den ON teil umkehre mit ! bekomme ich noch mehr ausgabe,
1x die wo ich eingetragen bin ( gameid1 )
2x die wo was in wb_tips eingetragen wurde aber nicht mit meiner userid ( gameid2 )
3x wo die gameid3 nicht in wb_tips vorkommt

mach "!" in mysql was anderes als in php?

EDIT
habs jetzt so gemacht:
PHP-Code:
        $query mysql_query("SELECT
                                  id,
                                  category,
                                  a,
                                  b,
                                  starttime,
                                  endtime,
                                  status
                              FROM
                                  wb_games
                              WHERE
                                  status    =  1
                              ORDER BY
                                  endtime
                             DESC;"
) or die(mysql_error());
        while(
$row mysql_fetch_array($query)){
        
$querycheck mysql_query("SELECT
                                       gameid,
                                       userid
                                   FROM
                                       wb_tips
                                   WHERE
                                       gameid =  '"
.$row['id']."' AND
                                       userid = '"
.$userid."'") or die(mysql_error());
          if(
mysql_num_rows($querycheck)==0) { 
wollt den 2ten quary eigendlich vermeiden, vielleicht weis einer noch ne lösung, wurde mich freuen...

Geändert von joker (06.09.2004 um 19:03:07 Uhr)
Mit Zitat antworten
  #7  
Alt 06.09.2004, 19:40:57
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
Ich weiß zwar nicht, was Du herausbekommen willst, aber das hier sieht recht gut aus:

PHP-Code:
$query mysql_query("SELECT
                                  wb_games.id,
                                  wb_games.category,
                                  wb_games.a,
                                  wb_games.b,
                                  wb_games.starttime,
                                  wb_games.endtime,
                                  wb_games.status,
                                  wb_tips.userid,
                                  wb_tips.gameid
                              FROM
                                  wb_games
                              LEFT JOIN
                                  wb_tips ON (wb_tips.gameid = wb_games.id )
                              WHERE
                                 (wb_games.status = 1) AND
                                 (wb_tips.userid != $userid)
                              ORDER BY
                                  wb_games.endtime
                              DESC;"
) or die(mysql_error()); 
Wenn Du hier jetzt noch das ! rausnimmst...
wb_tips.userid != $userid
sollte es klappen. Wenn Du jetzt doppelte Einträge bekommst, mußt Du ein GROUP BY mit reinnehmen, siehe mein Posting von gestern.

> ... dafür fehlt aber einer wo in wb_tips kein eintrag zur passenden gameid ist :/ jetzt versteh ich nix mehr

Ist doch klar: wenn kein passender Eintrag in einer der Tabellen drin ist, stimmt die ON-Bedingung ja nicht.

Geändert von Marilu (06.09.2004 um 19:43:48 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:50:11 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt