brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 10-06-2005, 09:45
Fubbel
 Newbie
Links : Onlinestatus : Fubbel ist offline
Registriert seit: Jun 2005
Beiträge: 6
Fubbel ist zur Zeit noch ein unbeschriebenes Blatt
Question Mysql Join Abfrage mit php wieder ausgeben?

Hallo,

Bin jetzt das erste mal hier.
Vielleicht kann mich ja jemand in die richtige Richtung schubsen mit meinem Problem.

Wie es im Topic steht hab 2 Tabellen. Fürs Verständnis werde ich Beispiel Tabellen & Spalten nehmen.

Tabelle1: T1 | Spalten: Name, Pos, V_ID
Tabelle2: T2 | Spalten: V_ID, V_name

Beide Tabellen haben eine ID mit auto_increment. in T2 ist V_ID der Wert der auto_incremented wird. Bei T1 gibt es eine extra Spalter die ich hier nun nicht aufgelistet habe. Die V_ID wurde manuell eingepflegt und soll nun mit der V_ID aus T2 verglichen werden.

Die MySQL Syntax scheint soweit zu stimmen. Zumindest bekomme ich diese über PHPMyAdmin richtig ausgelesen. (sieht mal so aus)

Zum php Code.

PHP-Code:
<?php

include("config.php");
include(
"dbconnect.php");

$sql "SELECT T1.Name, T1.Pos, T1.V_ID,
           T2.V_ID,  T2.V_name,
        FROM
               T1 
        LEFT JOIN T2 ON T2.V_ID = T1.V_ID
    ORDER BY T1.Name        
    LIMIT 0, 500"
;

$result mysql_query($sql) OR die(mysql_error());

while(
$row mysql_fetch_array($result)) {
echo 
"$row[0]";

}
?>
Mein Fehler:
Parse error: parse error, unexpected T_VARIABLE in

Wenn ich das so mit nur einer Tabelle mache funktioniert es. Auch wenn ich mehrere Werte ausgebe.
Da die sql Abfrage an für sich funkioniert denke ich das es an der Ausgabe liegt, bzw daran das ich nun aus 2 Tabellen auslese und dies ein Problem mit der Ausgabe gibt. (BEreits ein Problem beim auffangen der Werte??)

Leider habe ich im Forum und auch im Netz nichts entsprechendes gefunden.

Würde mich freuen wenn mir jemand einen Tip geben kann.

Danke
gruss

Geändert von Fubbel (10-06-2005 um 10:05 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 10-06-2005, 09:46
MoRtAlAn
 PHP Master
Links : Onlinestatus : MoRtAlAn ist offline
Registriert seit: Jan 2002
Ort: Mühlheim am Main
Beiträge: 5.934
MoRtAlAn ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du siehst aber schon an der formatierung des von dir geposteten codes, dass da was nicht stimmt ???

warum wird alles ab hier:

$result = mysql ....

weiterhin als String gefärbt ??

gruss
Mit Zitat antworten
  #3 (permalink)  
Alt 10-06-2005, 10:07
Fubbel
 Newbie
Links : Onlinestatus : Fubbel ist offline
Registriert seit: Jun 2005
Beiträge: 6
Fubbel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hups
peinlich

ist mir wohl gestern nach dem ganzen probieren passiert. danke

und jetzt geht es natürlich.....

gibt es etwas das man hier verbessern oder ändern sollte?

Also z.B. die Art wie es geschrieben ist oder einfach ein Verbesserungsvorschlag.

Geändert von Fubbel (10-06-2005 um 10:20 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 10-06-2005, 10:29
hhcm
 PHP Senior
Links : Onlinestatus : hhcm ist offline
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
hhcm ist zur Zeit noch ein unbeschriebenes Blatt
hhcm eine Nachricht über ICQ schicken hhcm eine Nachricht über Skype™ schicken
Standard

Erst mal solltest du den Fehler in deinem ersten Posting nicht editieren, damit nachleser den Thread überhaupt verstehen. Ich sehe in deinem Posting nämlich keinen Fehler.

Und ich würde die $sql Var noch ändern.

PHP-Code:

$sql 
"SELECT T1.Name, T1.Pos, T1.V_ID, ".
          
"T2.V_ID,  T2.V_name, ".
          
"FROM T1 ".
          
"LEFT JOIN T2 ON T2.V_ID = T1.V_ID ".
          
"ORDER BY T1.Name ".
          
"LIMIT 0, 500"
Mit Zitat antworten
  #5 (permalink)  
Alt 10-06-2005, 10:51
Fubbel
 Newbie
Links : Onlinestatus : Fubbel ist offline
Registriert seit: Jun 2005
Beiträge: 6
Fubbel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hm k sry.

war keine Absicht

Zur Aufklärung. Ich hatte das " am Ende der SQL Abfrage vergessen.

Werde das mal so ändern.

Wobei ich nicht ganz nachvollziehen kann aus welchem Grund das so besser sein soll. Mal abgesehen von der besseren Formatierung.
Mit Zitat antworten
  #6 (permalink)  
Alt 10-06-2005, 10:58
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 2.759
Quetschi befindet sich auf einem aufstrebenden Ast
Standard

Auch wenn man da 'nur' mit dem Mysql-Server redet, sollte man doch auf eine ordentliche Schreibweise achten

Bei mysql_fetch_array($result) empfehle ich immer noch mit anzugeben, welchen Ergebnistyp man gerne hätte, also entweder MYSQL_ASSOC oder MYSQL_NUM für ein assoziatives oder numerisches Array, weil ansonsten beide Indexe daherkommen und somit doppelten Speicher belegen. Also:

mysql_fetch_array($result,MYSQL_ASSOC)
oder
mysql_fetch_array($result,MYSQL_NUM)
Mit Zitat antworten
  #7 (permalink)  
Alt 10-06-2005, 10:59
hhcm
 PHP Senior
Links : Onlinestatus : hhcm ist offline
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
hhcm ist zur Zeit noch ein unbeschriebenes Blatt
hhcm eine Nachricht über ICQ schicken hhcm eine Nachricht über Skype™ schicken
Standard

Warum genau kann ich dir auch nicht sagen.

$sql = " code
code
code"

macht man halt nicht
Mit Zitat antworten
  #8 (permalink)  
Alt 10-06-2005, 12:06
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
macht man halt nicht
warum?
Mit Zitat antworten
  #9 (permalink)  
Alt 10-06-2005, 12:10
ankh
 Member
Links : Onlinestatus : ankh ist offline
Registriert seit: May 2005
Beiträge: 304
ankh ist zur Zeit noch ein unbeschriebenes Blatt
ankh eine Nachricht über ICQ schicken
Standard

weil's beim syntax-highlighting oftmals wie'n Würstchen Eintopf aussieht.

ansonsten fiele mir auch kein Grund ein...
Mit Zitat antworten
  #10 (permalink)  
Alt 10-06-2005, 12:10
hhcm
 PHP Senior
Links : Onlinestatus : hhcm ist offline
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
hhcm ist zur Zeit noch ein unbeschriebenes Blatt
hhcm eine Nachricht über ICQ schicken hhcm eine Nachricht über Skype™ schicken
Standard

Hab ich doch geschrieben.
Weiss nicht genau.
Ist wahrscheinlich geschmackssache.
Ich kennen niemanden der so Scriptet / Programmiert.
Mit Zitat antworten
  #11 (permalink)  
Alt 10-06-2005, 12:10
prego
 PHP Senior
Links : Onlinestatus : prego ist offline
Registriert seit: May 2005
Ort: Hey ropp, hinne riwwer unn wirrer zuricke!
Beiträge: 1.602
prego ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Um die vielen Leerzeichen in der Query zu sparen *G*

PHP-Code:
<?php
$sql 
"SELECT T1.Name, T1.Pos, T1.V_ID,
           T2.V_ID,  T2.V_name,
        FROM
               T1 
        LEFT JOIN T2 ON T2.V_ID = T1.V_ID
    ORDER BY T1.Name        
    LIMIT 0, 500"
;

echo 
$sql."<hr/>";

$sql "SELECT T1.Name, T1.Pos, T1.V_ID, ".
          
"T2.V_ID,  T2.V_name, ".
          
"FROM T1 ".
          
"LEFT JOIN T2 ON T2.V_ID = T1.V_ID ".
          
"ORDER BY T1.Name ".
          
"LIMIT 0, 500";

echo 
$sql;
?>
Seht ihr den Unterschied?

Ausserdem funktioniert dies Query nicht - da darf kein "," nach T2.V_name sein - weil das ja direkt vom FROM gefolgt wird.
Wenn sie funktioniert würde es mich wundern...

__________________
so long, der-p | 72dpi-club

Microsoft IE-Manager Dean Hachamovitch bei der Vorführung des IE7 Beta Preview 2 am 20.3.2006:
"Wir hatten mit IE ganz offensichtlich was verschlafen."

Geändert von prego (10-06-2005 um 12:13 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 10-06-2005, 12:16
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

PHP-Code:
echo "$row[0]"
macht man auch nicht.
PHP-Code:
echo $row[0]; 
Mit Zitat antworten
  #13 (permalink)  
Alt 10-06-2005, 12:19
hhcm
 PHP Senior
Links : Onlinestatus : hhcm ist offline
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
hhcm ist zur Zeit noch ein unbeschriebenes Blatt
hhcm eine Nachricht über ICQ schicken hhcm eine Nachricht über Skype™ schicken
Standard

Auch wenns funktioniert
Mit Zitat antworten
  #14 (permalink)  
Alt 10-06-2005, 12:22
prego
 PHP Senior
Links : Onlinestatus : prego ist offline
Registriert seit: May 2005
Ort: Hey ropp, hinne riwwer unn wirrer zuricke!
Beiträge: 1.602
prego ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hmm, die Maxime "Hauptsache es funktioniert!" oder "Wichtig ist, was hinten rauskommt!" ist ja für den Anfang ok - aber guter Stil beim Programmieren ist schon wichtig.

Dafür gibt es mehrere Gründe:
1. Es erleichtert das Debugging ungemein.
2. Wenn man syntaktisch richtig programmiert gibt es nur in Ausnahmefällen Probleme bei Versionssprüngen (Bsp: php4 -> php5)
3. Der Code ist für andere besser lesbar/verstehbar.
4. Man findet sich später, weil man zb ne Erweiterung machen will, besser drin zurecht und muss sich nicht ständig fragen: "Was hab ich denn hier gemacht?"
5. In den meisten Fällen wird das Script schneller ausgeführt, weil PHP nicht "hintenrum durchs Knie" denken muss.
6...
__________________
so long, der-p | 72dpi-club

Microsoft IE-Manager Dean Hachamovitch bei der Vorführung des IE7 Beta Preview 2 am 20.3.2006:
"Wir hatten mit IE ganz offensichtlich was verschlafen."
Mit Zitat antworten
  #15 (permalink)  
Alt 10-06-2005, 12:46
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

6. Manche IDE's stolpern bei Highlighting/Folding/Completion/Strukturanalyse.
7. ...
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:56 Uhr.