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! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 11 Stimmen, 5,00 durchschnittlich.
  #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.833
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: 3.134
Quetschi wird schon bald berühmt werden
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.833
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.833
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: Herborn
Beiträge: 1.609
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...


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.471
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.833
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: Herborn
Beiträge: 1.609
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...
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.471
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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:35 Uhr.