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
  #16 (permalink)  
Alt 11-05-2007, 12:19
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

Okay, also der Fehler auf den ich dich hinzuweisen versuche, ist dass da eine schließende Klammer fehlt - da hättest du drauf kommen können (müssen).

Mit dem In: Das bedeutet ja sowas wie "einer von diesen".

Zum Beispiel SELECT ... WHERE np.post_id IN(1, 2, 3) gibt alle Einträge zurück, die als post_id 1, 2 oder 3 haben.

Natürlich kannst du da auch abfragen WHERE kundenname IN ('hans', 'horst', 'klaus'), dann müssen sie in Anführungszeichen. Wie immer bei Strings.

__________________
ich glaube
Mit Zitat antworten
  #17 (permalink)  
Alt 11-05-2007, 12:21
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Oh mein Gott, natürlich hätte ich die Klammer sehen müssen!

Naja trotzdem Danke das du da so geduldig versucht mir zu helfen.

Es wird nun alles Fehlerfrei ausgegeben:

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

mfg
Mit Zitat antworten
  #18 (permalink)  
Alt 11-05-2007, 12:24
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

Dann funktioniert jetzt alles ? das "echo($sql)" kannst du dann wieder wegtun
__________________
ich glaube
Mit Zitat antworten
  #19 (permalink)  
Alt 11-05-2007, 12:29
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Noch nicht hundertprozentig.

So sieht jezt der komplette Code aus:

PHP-Code:
$l implode(","$_POST['list']);
    
    
// output of every available post
        
$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.") )";


$result['posts'] = $db->sql_query($sql) or die(mysql_error());

        
// output post(s)
        
while ($row['posts'] = $db->sql_fetch_object($result['posts'])){
            foreach(
$row['posts'] as $key => $value){
                
$row['posts']->$key stripslashes($value);
                
                
                echo 
$row['posts']->k_l_name;
                
                }
            
        } 
Testweise habe ich mir mal den Namen eines Kunden anzeigen lassen. Erstaunlicher Weise wird dieser unzählige male kopiert und aneinander gereiht...hast du da vielleicht noch eine Idee was das sein könnte?

mfg
Mit Zitat antworten
  #20 (permalink)  
Alt 11-05-2007, 12:34
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

Tu das echo ... ->k_l_name aus der foreach-Schleife raus.

Sieht mir alles ein bisschen verkorkst aus das ganze. Aber vorher lief das so, ja?
__________________
ich glaube
Mit Zitat antworten
  #21 (permalink)  
Alt 11-05-2007, 12:35
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

So ok,

habe noch ein bisschen was verändert. Jetzt sieht es so aus:

PHP-Code:
// output post(s)
        
while ($row['posts'] = $db->sql_fetch_object($result['posts'])){ 
Jetzt bekomme ich einen Eintrag nur noch doppelt angezeigt und nicht hunderte male...kann ich das jetzt mit einem Limit lösen? Ich glaube aber nicht, weil ja noch Positionszeile angereiht werden.

mfg
Mit Zitat antworten
  #22 (permalink)  
Alt 11-05-2007, 12:35
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Jaa...das ganze lief mal so ^^
Mit Zitat antworten
  #23 (permalink)  
Alt 11-05-2007, 12:37
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Deine Lösung hat genau das selbe bewirkt wie meine...d.h. ich habe die Auftagsnummer mal ausgeben lassen.

Die Auftragsnummer ist: 9999

Ausgegeben bekomme ich aber: 99999999

Woher dieser Doppelte eintrag?
Mit Zitat antworten
  #24 (permalink)  
Alt 11-05-2007, 12:41
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Habe herausgefunden woher der Doppelte Eintrag herkommt. Und zwar hat die Auftragsnummer 9999 Ware zugeteilt bekommen. Genau 2 mal.

Durch den Vergleich gibt er mir also jetzt 2 mal die Auftragsnummer aus. Ich muss das ganze jetzt eingrenzen...aber ich denke Limit dürfte der Falsche Befehl sein oder? Denn die Positionszeile werden ja auch noch ausgegeben.

mfg
Mit Zitat antworten
  #25 (permalink)  
Alt 11-05-2007, 12:42
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 kann man so nicht sagen.

Du müsstest dir überlegen, was in den Tabellen $basic->dt['logistik'] und $basic->dt['logistik_w'] drinsteht, was post_id ist und was $l und wo das herkommt, und was du aus den Tabellen haben willst.

Den Anfang mit dem Codegenerieren, was du da schriebst, habe ich nämlich nicht verstanden. Wenn du weißt was du abfragen willst und wo das steht, probieren, wenns nicht geht, wieder posten.
__________________
ich glaube
Mit Zitat antworten
  #26 (permalink)  
Alt 11-05-2007, 12:47
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Habe eben mal getestet.

Wenn ich wieder mehrere Einträge markiere, kommen immer noch mehrere Einträge bei raus. Hier siehst du das mal:

999938593467999938593467999938593467999938593467999938593467

Richtig ausgegeben müsste es aber so aussehen:

9999
3869
3467

Ja es ist schwer zu erklären. Aber ich mach es nochmal ganz kurz:
1. Tabelle = Kundendaten (Die ID heisst hier post_id)
2. Tabelle = Warendaten (Die ID heisst hier l_id)

Post_ID und l_id sind gleich. D.h. die 1 Tabelle ist praktisch wie eine Kategorie und die 2 Tabelle die Einträge für die Kategorien.

Ich markiere 1 Box:

Code überprüft ob die übergebene ID gleich mit der Post_ID und L_id ist. Ist das der Fall dann möchte ich von Tabelle 1 udn von Tabelle 2 Daten ausgeben, aber nur die, die zusammengehören.

So soll das funktionieren.

mfg
Mit Zitat antworten
  #27 (permalink)  
Alt 11-05-2007, 13:01
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. Das kommt jetzt drauf an was du abfragen willst.

Alle Kunden mit ihren Waren? Dann ist es ja logisch, dass die Kunden häufiger vorkommen, so oft wie sie bestellt haben eben.

EIn Stichwort ist JOIN -> manual.
__________________
ich glaube
Mit Zitat antworten
  #28 (permalink)  
Alt 11-05-2007, 13:27
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen Dank,

das war genau das richtige. Hier nochmal der Code, falls noch jemand Probleme mit sowas haben sollte:

PHP-Code:
// output of every available post
        
$sql "SELECT np.*, nc.* " .
      
"FROM {$basic->dt['logistik']} np INNER JOIN {$basic->dt['logistik_w']} nc USING (post_id)" .
      
"WHERE (np.post_id IN (".$l.") && nc.l_id IN (".$l.") )"
Jetzt bekomme ich bei allen markierten Felder, jedes nur einzelnd ausgegeben.

mfg und THX
Mit Zitat antworten
  #29 (permalink)  
Alt 11-05-2007, 13:36
Gramthug
 Newbie
Links : Onlinestatus : Gramthug ist offline
Registriert seit: May 2007
Beiträge: 30
Gramthug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zu früh gefreut...zwei kleine Probleme haben sich eben eröffnet.

Da wäre einmal: Nur bei der ersten Checkbox bekomme ich eine Ausgabe. Bei allen anderen passiert nichts.

Und das andere Problem ist, ich bekomme so leider nur 1 Positionszeile ausgegeben. Nicht aber alle anderen die da dazugehören.

Hilfe

mfg
Mit Zitat antworten
  #30 (permalink)  
Alt 11-05-2007, 13:58
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

Lass dir dann mal wieder die Query ausgeben.

Und außerdem
PHP-Code:
$result['posts'] = $db->sql_query($sql) or die(mysql_error());

        
// output post(s)
        
while ($row['posts'] = $db->sql_fetch_object($result['posts'])){
            echo(
"<pre>");
            
var_dump($row['posts']);
            echo(
"</pre>");
        } 
Also, wenn es jetzt um diese eine Sache geht, dann kriegen wir das bestimmt irgendwann hin - allerdings, wenn du damit mehr vorhast, dann musst du unbedingt ein bisschen Grundlagen nachholen und debugging betreiben, sonst wird das nix
__________________
ich glaube
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 01:40 Uhr.