Ankündigung

Einklappen
Keine Ankündigung bisher.

Tabellen miteinander verknüpfen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast antwortete
    Wofür sind eigentlich solche Sachen wie Primärschlüssel oder Index? Kann man das damit nicht irgendwie drehen?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Sollte eigentlich keine Rolle spielen. Große Websites wie Amanzon oder ebay gleichen oft hunderttausende (oder noch viel mehr) einträgen ab. Ausserdem hast Du doch sicherlich ein oder zwei Sekunden Zeit bis das Ergebnis erscheint.

    Es könnte evtl daran liegen, dass die Variable $telefonnummer innerhalb der zweiten Schleife keine Gültigkeit hat. Schau doch mal in einem PHP-Handbuch nach. Es gibt einen kleinen Code-Zusatz um dies zu gewährleisten (weiss ihn leider nicht auswendig, sorry).

    Ansonsten solltest Du vielleicht noch die ein oder andere "or exit ('Abruch an Stelle XY')" einbauen um zu sehen wo der Fehler genau liegt.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Vielen Dank für Deine Hilfe. Leider bleibt das Feld leer. Woran könnte das liegen?

    BTW: Beansprucht es nicht zu viel Rechenzeit, bei jedem von ca 2000 Einträgen, noch mal ca 400 Telefonnummern vorbeilaufen zu lassen?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Der erste Fehler ist mir schon aufgefallen:

    while($row = mysql_fetch_array($result))
    {
    $telefonnummer = $row['number'];

    echo ('<table>');
    echo ('<tr>');
    Das "echo ('<table>'); " ist zuviel. Es gehört vor die Schleife, also einfach wegdenken...

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Bau einfach innerhalb der Schleife die die Tabelle ausgibt an der Stelle die den Namen ausgibt eine weitere Schleife ein, die solange die Werte von log.number mit caller.number vergleicht bis sie fündig geworden ist und dann abbricht. Sollte kein Eintrag übereinstimmen (wenn die Nummer unterdrückt wurde) soll sie ebenfalls nichts hinneinschreiben.

    Das ganze könnte ungefähr so aussehen:



    Code:
     $result = mysql_query('SELECT id, date, time, number, msn FROM log ORDER BY date');
    
    echo ('<table>');
    
    while($row = mysql_fetch_array($result)) 
    { 
             $telefonnummer = $row['number'];
    
             echo ('<table>');		
             echo ('<tr>');
             echo ('<td>'.$row['date'].'<td>');
             echo ('<td>'.$row['time'].'<td>');
             echo ('<td>'.$row['number'].'<td>');
             
             $abgleichen = mysql_query('SELECT person, number FROM callers ORDER BY person');
    
             while($row = mysql_fetch_array($result))
                     {
                         if ($telefonnummer = $row['number'])
                         {
    	     
                         echo ('<td>'.$row['person'].</td>');
    	     
                          }
    
                         else
    
                         {
                         
                         }
    						  
                     echo 	('</tr>');
    		
    	}
    
    echo ('</table>');
    Poste doch bitte mal ob es funktioniert, habe es nämlich nicht getestet (wie auch, hab ja die Datenbank und die Werte nicht).

    Viel Erfolg!

    Gruß
    MWingenbach

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Die PHP Schleife, die das alles in eine Tabelle schreibt ist ja auch schon vorhanden. Nur wie mache ich es, dass der zur Nummer passende Name in der Tabelle auftaucht?

    Derzeit wird ja nur gelesen:

    2004-06-09 | 13:55:23 | 4711

    Aus der zweiten Tabelle kommt:

    Fritz | 4711

    Wie mach ich es jetzt, dass die Ausgabe so aussieht:

    2004-06-09 | 13:55:23 | 4711 | Fritz

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Das könntest Du beim Ausgeben durch eine PHP Schleife lösen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Aber wie kriege ich es dann hin, dass die Namen in der Tabelle in der richtigen Spalte auftauchen? So lese ich ja nur den Log und die Liste der Anrufer. Das muss doch noch irgendwie miteinander verknüpft werden. Oder geschieht das im Hintergrund automatisch?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Lass doch einfach die WHERE Abfrage weg. Dann erhälst Du alle Datensätze (auch die, bei denen log.nummer = "").

    Code:
    ("SELECT log.id, log.date, log.time, log.number, log.msn, callers.person, callers.number ORDER BY log.date")

    Einen Kommentar schreiben:

Lädt...
X