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 Thema bewerten
  #1 (permalink)  
Alt 11-05-2007, 11:01
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard Mehrere Datenbanken

Hallo liebe PHP Gemeinde,

kurz Vorab: Ich arbeite mich zur Zeit noch in PHP ein, habe aber schon die Suchfunktion genutzt.

Ich erkläre euch mal was ich gerade bastel und wo mein Problem liegt:

Ich habe zwei Datenbanken laufen. In der einen sind Kundendaten gespeichert, in der anderen die Waren für die Kunden. Diese beiden sind verknüpft. Ich kann auf einen Administrationsbereich zugreifen um dort einen "Code" erstellen zu lassen. Dieser Code ist für eine andere Firma.

Der Code wird dargestellt in einem Textarea und kann von dort aus per Knopfdruck in eine Textdatei importiert werden.

In DB1 werden also Kundendaten gespeichert und hinterher als Kopfzeile ausgegeben.
In DB2 werden also Warendaten gespeichert und hinterher als Positionszeile ausgegeben.

Mein Problem ist folgendes:

Ich kann per Checkboxes wählen, welche Codes generiert werden sollen. Das klappt auch, allerdings entstehen Fehler wenn ich mehrere gleichzeitig generieren lassen möchte.

Wenn ich nur eine Person anwähle, bekomme einen Code angezeigt, hier mal ein kleines Beispiel:

K|Daten|Daten|Daten usw usw|||
P|Warendaten1
P|Warendaten2
P|Warendaten3

So in der Art wird dieser Code mir angezeigt. Wenn ich nun mehrere Kunden anwähle, dann passiert folgendes:

K|KUNDE2|Daten|Daten usw usw|||
P|Warendaten1
P|Warendaten2
P|Warendaten3

P|Warendaten1
P|Warendaten2
P|Warendaten3


K|KUNDE1|Daten|Daten usw usw|||
P|Warendaten1
P|Warendaten2
P|Warendaten3

_______________________________

Das bedeutet: 1 Kunde bekommt sein Code richtig generiert. Jeder weitere Kunden, bekommt nochmal alle Daten des vorangegangenen.

Versteht ihr die Problematik?

Ich erspare euch mal hier irgendwelche Großen Codes zu posten...ich habe aber folgende Bedingung:

PHP-Code:
"WHERE (post_id IN (".$l.")) "); 
So sieht das im Where aus. Zusätzlich wollte ich jetzt noch folgendes machen:

PHP-Code:
"WHERE (lg.post_id IN (".$l.") && lgw.l_id IN (".$l."))" 
D.h. ich wollte einfach noch eine zweite Bedingung stellen. Aber das ganze funktioniert leider nicht so wie es sollte. Alle ID's stimmen, dass habe ich bereits mit Testausgaben getestet.

Könntet ihr mir vielleicht einen Ansatz geben, wie ihr zwei Datenbanken gleichzeitig anzapfen würdet und das diese dann noch richtig angezeigt werden?

mfg
Mit Zitat antworten
  #2 (permalink)  
Alt 11-05-2007, 11:11
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: Mehrere Datenbanken

Zitat:
Original geschrieben von Gramthug
Das bedeutet: 1 Kunde bekommt sein Code richtig generiert. Jeder weitere Kunden, bekommt nochmal alle Daten des vorangegangenen.
Das scheint mir doch aber eher ein Problem bei der Ausgabe dieser Daten zu sein?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 11-05-2007, 11:16
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

ja richtig genau, das Problem liegt bei der Ausgabe. Ich habe es eben versucht wie folgt zu Lösen:

PHP-Code:
$result['posts'] = $db->sql_query("SELECT np.*, nc.* " .
                    
"FROM {$basic->dt['logistik']} AS np, {$basic->dt['logistik_w']} AS nc " .
                    
"WHERE (np.post_id IN (".$l.") && nc.l_id IN (".$l.") "  .
                    
"ORDER BY np.p_time "); 
Aber leider funktioniert das nicht so wirklich, ich bekomme folgende Fehlermeldung:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in...

Ich habe nochmal eine Testausgabe gemacht ob auch die ID übermittelt wird; sie wird übermittelt.

Wo könnte das Problem liegen?

mfg
Mit Zitat antworten
  #4 (permalink)  
Alt 11-05-2007, 11:19
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von Gramthug
ja richtig genau, das Problem liegt bei der Ausgabe. Ich habe es eben versucht wie folgt zu Lösen:
Das ist doch nicht die Ausgabe - das ist das Auslesen der Daten aus der Datenbank.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 11-05-2007, 11:21
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

sofern da kein Einwand kommt, gehe ich davon aus das dieser Teil des Codes richtig ist

Ich gebe alles mit While aus. Wie kann es denn sein, dass er vorangegangene Ausgaben erneut reinnimmt? Ist das ein Problem bei der Reihung des Codes?

So sieht das ganze komplett aus:

PHP-Code:
$l implode(","$_POST['list']);
    
    echo 
$l;
    
    
// output of every available post
        
$result['posts'] = $db->sql_query("SELECT np.*, nc.* " .
                                            
"FROM {$basic->dt['logistik']} AS np, {$basic->dt['logistik_w']} AS nc " .
                                            
"WHERE (np.post_id IN (".$l.") && nc.l_id IN (".$l.") ");


        
        
// output post(s)
        
while ($row['posts'] = $db->sql_fetch_object($result['posts'])){
            foreach(
$row['posts'] as $key => $value){
                
$row['posts']->$key stripslashes($value); 
Ich sollte vielleicht erwähnen, dass dieser Code nicht von mir ist. Ich habe das alles von meinem Vorgänger bekommen und versuche mich dort nun reinzuarbeiten.

mfg
Mit Zitat antworten
  #6 (permalink)  
Alt 11-05-2007, 11:29
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ersetz mal dies
PHP-Code:
$result['posts'] = $db->sql_query("SELECT np.*, nc.* " .
                                            
"FROM {$basic->dt['logistik']} AS np, {$basic->dt['logistik_w']} AS nc " .
                                            
"WHERE (np.post_id IN (".$l.") && nc.l_id IN (".$l.") "); 
Mit
PHP-Code:
$sql "SELECT np.*, nc.* " .
      
"FROM {$basic->dt['logistik']} AS np, {$basic->dt['logistik_w']} AS nc " .
      
"WHERE (np.post_id IN (".$l.") && nc.l_id IN (".$l.") ";

echo(
$sql "<br /><br />");

$result['posts'] = $db->sql_query($sql) or die(mysql_error()); 
__________________
ich glaube
Mit Zitat antworten
  #7 (permalink)  
Alt 11-05-2007, 11:35
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, habe das gemacht und bekomme folgendes ausgegeben:

SELECT np.*, nc.* FROM logistik AS np, logistik_w AS nc WHERE (np.post_id IN (1) && nc.l_id IN (1)

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

mfg
Mit Zitat antworten
  #8 (permalink)  
Alt 11-05-2007, 11:37
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
WHERE (np.post_id IN (1) && nc.l_id IN (1)
Was fällt auf? Genau hingucken?
__________________
ich glaube
Mit Zitat antworten
  #9 (permalink)  
Alt 11-05-2007, 11:43
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

ich habe eben mal die Klammern entfernt...war es das was du meintest? Wenn nicht, tut es mir leid. Wie gesagt arbeite mich da rein und bin noch am Referenzen lernen

Aber die Fehlermeldung hat sich dadurch reduziert:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in

mfg
Mit Zitat antworten
  #10 (permalink)  
Alt 11-05-2007, 11:48
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hm, was für Klammern hast du wie entfernt? Hast du das mit mysql_error dringelassen?

Wenn ja, dann ist das jetzt eine neue Stelle. Bitte zeigen.

(Wie übrigens in unseren Regeln beschrieben ist, verlangt dieser "supplied argument is not a valid MySQL result resource..." - Fehler dringend nach mysql_error, und das Ausgeben der Query ist auch nie verkehrt... )
__________________
ich glaube
Mit Zitat antworten
  #11 (permalink)  
Alt 11-05-2007, 11:49
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

so habe ich das verändert:

PHP-Code:
$sql "SELECT np.*, nc.* " .
      
"FROM {$basic->dt['logistik']} AS np, {$basic->dt['logistik_w']} AS nc " .
      
"WHERE (np.post_id IN $l && nc.l_id IN $l ";

echo(
$sql "<br /><br />");

$result['posts'] = $db->sql_query($sql) or die(mysql_error()); 
mfg
Mit Zitat antworten
  #12 (permalink)  
Alt 11-05-2007, 11:53
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das ist nicht richtig. "IN" braucht eine "Liste", und die muss in Klammern stehen.

Und selbst wenn die da wären ist das noch falsch.
Zitat:
WHERE (np.post_id IN (1) && nc.l_id IN (1)
Guck das nochmal genau an. Nicht irgendwas machen, sondern nachdenken.
__________________
ich glaube
Mit Zitat antworten
  #13 (permalink)  
Alt 11-05-2007, 12:00
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

ja jetzt verstehe ich. IN braucht eine List, habe die vorhin nicht angegeben. Sorry. Aber hier die Liste exestiert:

PHP-Code:
$l implode(","$_POST['list']); 
Und die Liste kommt hier her:

PHP-Code:
echo "<TD><input type=\"checkbox\" name=\"list[]\" value=\"{$row['posts']->post_id}\">{$row['posts']->post_id}</TD>\n"
mfg
Mit Zitat antworten
  #14 (permalink)  
Alt 11-05-2007, 12:08
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ne, das is schon richtig. Ne Liste is es auch, wenn es nur eine Zahl ist.

Zitat:
WHERE (np.post_id IN (1) && nc.l_id IN (1)
die Listen sind (1). Was anderes ist falsch - Brille aufsetzen und angucken! Where, Klammer auf, ... usw. Da fehlt was.
__________________
ich glaube
Mit Zitat antworten
  #15 (permalink)  
Alt 11-05-2007, 12:14
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

ich weis es leider nicht. Wie gesagt, ich arbeite mich da rein und habe nur das von meinem Vorgänger.

Ich habe aber eben etwas interessantes gelesen, wegen dem IN. Es hieß, dass man je nach Feldtyp immer anders auslesen müsste. D.h. mal mit ' und mal ohne...

Wenn das doch stimmen würde, könnte es ja niemals bei mir funktionieren, weil ich unterschiedliche Felder bei mir habe...

Kannst du mir das vielleicht kurz erklären?

mfg
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

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

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:06 Uhr.