Ankündigung

Einklappen
Keine Ankündigung bisher.

Einträge werden nicht Angezeigt (PHP & MySQL)

Einklappen

Neue Werbung 2019

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

  • Einträge werden nicht Angezeigt (PHP & MySQL)

    Morsche,

    ich hab schon google, altavista und andere suchmaschinen sowie faq durchstöbert und auch dieses forum, allerdings habe ich leider nichts gefunden darüber oder was das problem auch nur ansatzweise trifft

    und zwar habe ich mysql in der version 3.23.48 mit phpmyadmin in der version 2.5.1. nun habe ich in php eine seite geschrieben die mithilfe der datenbank material verwalten kann.

    nun musste ich aber mehrere tabellen anfertigen (software, hardware, firma, etc.) nun musste ich ja die tabelle "firma" mit den tabellen "software" und "hardware" verbinden, weil ich ja nicht bei jedem eintrag den firmennamen manuell ändern wollte wenn die firma sich z.b. umbenennt.

    der dazugehörige sql befehl lautet:
    Code:
    SELECT * FROM hardw INNER JOIN firma ON hardw.sid_firma = firma.id_firma
    "hardw" ist die hardware tabelle sie beinhaltet mehrere felder.
    diese sind:
    id_hardw
    sid_firma
    bezeichnung
    typ
    notizen

    "firma" ist die firmentabelle sie beinhaltet auch mehrere felder:
    id_firma
    firma <- hier wird der firmenname reingeschrieben, ich weiss es ist doof felder und tabellen gleich zu benennen aber jetzt ist es leider schon "zu spät".


    Nun habe ich das Problem, dass er mir nach dem obigen sql befehl zwar einträge anzeigt, aber nur solche in denen er den dazugehörigen eintrag findet in der firmentabelle.

    das feld hardw.sid_firma wird ja mit firma.id_firma verbunden.
    steht jetzt z.b. in hardw.sid_firma eine "7" zeigt er also den dazugehörigen namen an der unter der id 7 in der firmentabelle läuft. steht also an stelle 7 in der firmentabelle "ibm" z.b., so zeigt er beim auflisten nicht die "7" als zahl an, sondern "IBM". so ist das auch richtig.
    existiert nun aber die "7" nicht als id_firma in der firmentabelle so zeigt er den eintrag erst garnicht an.

    wie kann ich dieses problem beheben?


    Hier ist nochmal der code für den betroffenen abschnitt:

    Code:
    $sql_select = "SELECT * FROM hardw INNER JOIN firma ON hardw.sid_firma = firma.id_firma";
    	$db->query($sql_select);
    	if ($nr_rows = $db->num_rows()>0)
    	{
    	?>
    <table border="1">
         <colgroup width="196" span="4">
         </colgroup>
     <tr>
      <td>Bezeichnung:</td><td>Typ:</td><td>Notizen:</td><td>Firma:</td>
     </tr>
    </table>
    	
    
      <?php
      	while($db->next_record())
      	{
    	?>
    
    <table border="1">
         <colgroup width="196" span="4">
         </colgroup>
       <tr>
    	   <td><?php echo $f_bezeichnung = $db->f('bezeichnung'); ?>
    		 </td>
    		 
    		 <td><?php echo $f_notizen = $db->f('notizen'); ?>
    		 </td>
    		 
    		 <td><?php echo $f_typ = $db->f('typ'); ?>
    		 </td>
    		 
    		 <td><?php echo $f_sid_firma = $db->f('firma'); ?>
    		 </td>
    		 
    		 <td>Akt.
    		 		 Del.
    		 </td>	
    	 </tr>
    </table>
    
    	<?php 
      	}
    	} else {
    	  ?>
      	  <div>Kein Eintrag vorhanden oder Eintrag nicht gefunden.</div>
    		<?php
    	}

  • #2
    Hallo,

    vielleicht hilft Dir der right outer join weiter.

    Gruß Albernd

    Kommentar


    • #3
      Re: Einträge werden nicht Angezeigt (PHP &amp; MySQL)

      Zitat von GroundHack
      Code:
      SELECT * FROM hardw INNER JOIN firma ON hardw.sid_firma = firma.id_firma
      Code:
      SELECT * FROM hardw LEFT JOIN firma ON hardw.sid_firma = firma.id_firma
      Die Hardware wird gelistet, fehlende Firmen werden einfach als NULL im Result auftauchen.

      Kommentar


      • #4
        vielen herzlichen dank, es funktioniert, fehlende firmen werden als NULL ausgegeben

        hatte schon die befürchtung meine fragestellung wäre zu kompliziert und würde missverstanden werden

        was kann man denn noch an der fragestellung verbessern, damit es nächstesmal evtl. noch eindeutiger wird? (bin ja auch geplagter supporter der immer zweideutige fragen gestellt bekommt )


        danke und mfg, groundi

        Kommentar


        • #5
          Zitat von GroundHack
          was kann man denn noch an der fragestellung verbessern, damit es nächstesmal evtl. noch eindeutiger wird?
          Beim nächsten mal zuerst das eigentliche Problem nennen. Den interessten Part hatte ich zunächst wegen aufkommender Langeweile überschlagen ^^

          Kommentar


          • #6
            k danke, ich hatte gedacht es ist wichtiger erst einmal ein paar worte über die aktuelle konfiguration zu verlieren
            ausserdem wollte ich gleich sagen dass ich nicht so einer bin der gleich in irgendein forum postet und sein "mickriges" problem breittritt


            mfg groundi

            -pls close thx-

            Kommentar

            Lädt...
            X