Thread Verfasser: Catzenjaeger
Thread ID: 894
Thread Info
Es gibt 5 Beiträge zu diesem Thema, und es wurde 2331 Mal angesehen.  Ausserdem wurden Dateien angehängt.
 Thema drucken
[gelöst] SQL Abfrage erweitern (Inner Join eventuell)
Catzenjaeger
Ich habe ein Panel geschrieben wo ich die letzten 10 Figuren darstellen lasse. Das mit den Letzen 10 und darstellen klappt gut.

Nun wollte ich das erweitern und auch noch den MANFACTURER anzeigen lassen. Leider ist die Datenbankabfrage bisschen tricky und ich brauche mal jemand er sich da gut auskennt :)

Zitat


$result = dbquery(
"SELECT tb.figure_id, tb.figure_title, tb.figure_manufacturer, tb.figure_datestamp, tb.figure_cat, tbc.figure_cat_id, tbc.figure_cat_access, tbu.user_id, tbu.user_name, tbu.user_status, tbu.user_avatar FROM ".DB_PREFIX."figure_items tb
LEFT JOIN ".DB_USERS." tbu ON tb.figure_name=tbu.user_id
INNER JOIN ".DB_PREFIX."figure_cats tbc ON tb.figure_cat=tbc.figure_cat_id
INNER JOIN ".DB_PREFIX."figure_manufacturers ON tb.figure_manufacturer = tb.figure_manufacturer_id
".(iSUPERADMIN ? "" : "WHERE ".groupaccess('figure_cat_access'))." ORDER BY figure_datestamp DESC LIMIT 0,10");


Darstellung erfolgt so:

Zitat

echo "
<tr><td class='side-small'>
<a href='".INFUSIONS."figurelib/figure.php?figure_id=".$data['figure_id']."'>".trimlink($data['figure_title'], 20)."</a> | ".$data['figure_manufacturer_name']."";

}
echo "</td>


Zur Erklärung: der "figure_manufacturer" wird in der DB DB_PREFIX."figure_items abgelegt. Da wird nur zB 1 oder 2 gespeichert also die ID .... Die eigentlichen Manuafactuer sind in der DB DB_PREFIX."figure_manufacturers als

figure_manufacturer_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
figure_manufacturer_name varchar(100) NOT NULL DEFAULT '',

hinterlegt. Nun wollte ich den namen darstellen laseen ... klappt aber nicht
Bearbeitet von Catzenjaeger am 21. Mai 2016 15:37:18
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Wemi
Versuche mal:


$result = dbquery(
"SELECT tb.figure_id, tb.figure_title, tb.figure_manufacturer, tb.figure_datestamp, tb.figure_cat, tbc.figure_cat_id, tbc.figure_cat_access, tbu.user_id, tbu.user_name, tbu.user_status, tbu.user_avatar, tbm.figure_manufacturer_name FROM ".DB_PREFIX."figure_items tb
LEFT JOIN ".DB_USERS." tbu ON tb.figure_name=tbu.user_id
INNER JOIN ".DB_PREFIX."figure_cats tbc ON tb.figure_cat=tbc.figure_cat_id
INNER JOIN ".DB_PREFIX."figure_manufacturers tbm ON tbm.figure_manufacturer_id = tb.figure_manufacturer
".(iSUPERADMIN ? "" : "WHERE ".groupaccess('figure_cat_access'))." ORDER BY figure_datestamp DESC LIMIT 0,10");

"Es geht hier um die Frage, ob die Menschheit ohne Religion besser dastünde. Und ich sagte: ja" Ben Moore
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Catzenjaeger
geil funzt ... vielen lieben Dank :)

Zusammengefügt am 20. Mai 2016 um 15:31:24:
muss noch einmal kurz was fragen dazu: ich habe das nun noch erweitert und möchte mir das Bild der Fifur als Minibild anzeigen lassen.

Soweit steht der code aber das Bild bleibt leer

Abfrage:

Zitat

$result = dbquery(
"SELECT tb.figure_id, tb.figure_image, tb.figure_pubdate, tb.figure_title, tb.figure_manufacturer, tb.figure_brand, tb.figure_datestamp, tb.figure_cat, tbc.figure_cat_id, tbc.figure_cat_access, tbu.user_id, tbu.user_name, tbu.user_status, tbu.user_avatar, tbm.figure_manufacturer_name, tbb.figure_brand_name, tbs.figure_scale_name FROM ".DB_PREFIX."figure_items tb
LEFT JOIN ".DB_USERS." tbu ON tb.figure_name=tbu.user_id
INNER JOIN ".DB_PREFIX."figure_cats tbc ON tb.figure_cat=tbc.figure_cat_id
INNER JOIN ".DB_PREFIX."figure_manufacturers tbm ON tbm.figure_manufacturer_id = tb.figure_manufacturer
INNER JOIN ".DB_PREFIX."figure_brands tbb ON tbb.figure_brand_id = tb.figure_brand
INNER JOIN ".DB_PREFIX."figure_scales tbs ON tbs.figure_scale_id = tb.figure_scale
".(iSUPERADMIN ? "" : "WHERE ".groupaccess('figure_cat_access'))." ORDER BY figure_datestamp DESC LIMIT 0,10");


hier soll das Bild kommen - bleibt aber leer

Zitat

//echo "<img src='".($data['figure_image'] ? IMAGES_FIGURE.$data['figure_image'] : INFUSIONS.$inf_folder."/images/default.png")."' alt='".trimlink($data['figure_title'],15)."' title='".trimlink($data['figure_title'],15)."' style='border:0px;max-height:100px;max-width:100px' />";

echo "<td class='side-small'><img src='".$data['figure_image']."' style='border:0px;max-height:100px;max-width:100px'></td>";


Das Bild liegt im DB_PREFIX."figure_items als "figure_image"

-------------------------------------------

Zusammengefügt am 20. Mai 2016 um 21:18:04:
Irgend etwas ist falsch ... im Panel werden keine Bilder angezeigt.
weiterhin wird mit klick auf den namen zwar die Figur aufgemacht aber da fehlen die daten und das Bild wurde durch einen Paltzhalter ersetzt. weiss jemand warum?


<?php
/***************************************************************************
 *   Cat Latest Figure Panel                                                   *
 *                                                                         *
 *   Copyright (C) 2016 Catzenjaeger                                       *
 *   www.aliencollectors.com                                               *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 ***************************************************************************/
if(!defined('IN_FUSION')) {
   die;
}
if(file_exists(INFUSIONS."cat_latest_figures_panel/locale/".$settings['locale'].".php"))
{
   include(INFUSIONS."cat_latest_figures_panel/locale/".$settings['locale'].".php");
} else {
   include(INFUSIONS."cat_latest_figures_panel/locale/German.php");
}

$result = dbquery(
"SELECT tb.figure_id, tb.figure_image, tb.figure_pubdate, tb.figure_title, tb.figure_manufacturer, tb.figure_brand, tb.figure_datestamp, tb.figure_cat, tbc.figure_cat_id, tbc.figure_cat_access, tbu.user_id, tbu.user_name, tbu.user_status, tbu.user_avatar, tbm.figure_manufacturer_name, tbb.figure_brand_name, tbs.figure_scale_name FROM ".DB_PREFIX."figure_items tb
LEFT JOIN ".DB_USERS." tbu ON tb.figure_name=tbu.user_id
INNER JOIN ".DB_PREFIX."figure_cats tbc ON tb.figure_cat=tbc.figure_cat_id
INNER JOIN ".DB_PREFIX."figure_manufacturers tbm ON tbm.figure_manufacturer_id = tb.figure_manufacturer
INNER JOIN ".DB_PREFIX."figure_brands tbb ON tbb.figure_brand_id = tb.figure_brand
INNER JOIN ".DB_PREFIX."figure_scales tbs ON tbs.figure_scale_id = tb.figure_scale
".(iSUPERADMIN ? "" : "WHERE ".groupaccess('figure_cat_access'))." ORDER BY figure_datestamp DESC LIMIT 0,10");
 
 opentable($locale['CLFP_000']);
 if (dbrows($result) != 0) {
 echo "<table cellpadding='0' cellspacing='0' width='100%'>";
 echo "<colgroup><col width='10%'><col width='15%'><col width='15%'></colgroup><col width='15%'></colgroup><col width='15%'></colgroup><col width='15%'></colgroup>\n";
 echo "<tr>";
 echo "<td class='side-small'><strong>Image</strong></td>";
 echo "<td class='side-small'><strong>".$locale['CLFP_002']."</strong></td>";
 echo "<td class='side-small'><strong>".$locale['CLFP_003']."</strong></td>";
 echo "<td class='side-small'><strong>".$locale['CLFP_004']."</strong></td>";
 echo "<td class='side-small'><strong>".$locale['CLFP_005']."</strong></td>";
 echo "<td class='side-small'><strong>".$locale['CLFP_006']."</strong></td>";
 echo "</tr>";
 while($data = dbarray($result)){

 echo "<tr>";
 //echo "<td class='side-small'><img src='".($data['figure_image'] ? IMAGES_FIGURE.$data['figure_image'] : INFUSIONS.$inf_folder."/images/default.png")."' alt='".trimlink($data['figure_title'],15)."' title='".trimlink($data['figure_title'],15)."' style='border:0px;max-height:100px;max-width:100px' /></td>";
 //echo "<td class='side-small'><img src='".$data['figure_image']."' style='border:0px;max-height:100px;max-width:100px'></td>";
 //echo "<td class='side-small'><a href='".$data['figure_image']."'  height='100px' width='100px' alt='".$data['figure_title']."'><img src='".$data['figure_image']."'  height='100px' width='100px' alt='".$data['figure_title']."' /></td>";
 
 echo "<td class='side-small'><img src='".$data['figure_image']."'</td>";
 echo "<td class='side-small'><a href='".INFUSIONS."figurelib/figure.php?figure_id=".$data['figure_id']."'>".trimlink($data['figure_title'], 15)."</a></td>";
 echo "<td class='side-small'>".trimlink($data['figure_manufacturer_name'],15)."</td>";
 echo "<td>".trimlink($data['figure_brand_name'],15)."</td>";
 echo "<td>".trimlink($data['figure_scale_name'],15)."</td>";
 echo "<td>".$data['figure_pubdate']."</td>";
 echo "</tr>";

 }
 echo "</td>

</tr>";
 echo "</table>";
 } else {
 echo "<div style='text-align: center;'>".$locale['CLFP_001']."</div>";
 }
 closetable();
 
 ?>
Catzenjaeger hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.

Bearbeitet von Catzenjaeger am 20. Mai 2016 19:18:57
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Wemi
Schon in den Seitenquelltext geschaut, ob der Pfad stimmt?

Zusammengefügt am 21. Mai 2016 um 07:24:04:
Schon in den Seitenquelltext geschaut, ob der Pfad stimmt?
Bearbeitet von Wemi am 21. Mai 2016 05:24:04
"Es geht hier um die Frage, ob die Menschheit ohne Religion besser dastünde. Und ich sagte: ja" Ben Moore
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Catzenjaeger
Hmn geht leider nicht. Der Link der auf dem Bild leigen soll geht .. den habe ich abgeändert. Allerdings wird kein Bild angezeigt.

echo "<td class='side-small'><a href='".INFUSIONS."figurelib/figure.php?figure_id=".$data['figure_id']."' class=''>\n<img src='".($data['figure_image'] ? IMAGES_FIGURE.$data['figure_image'] : INFUSIONS."figurelib/images/default.png"Wink."' alt='".trimlink($data['figure_title'],100)."' title='".trimlink($data['figure_title'],100)."' style='border:0px;max-height:40px;max-width:40px' /></td>";

ich weiss auch nicht was ich da noch ändern könnte. Ein Pfad wird ja nicht angegeben für das Bild .. das kommt irgednwie aus der DB.

Nicht verschweigen möchte ich das dass Panel ausgelagert ist also als eigenständiges Panel und nicht im Ordner "figurelib" liegt.

Links usw gehen .. nur das Bild fehlt Smile

Zusammengefügt am 21. Mai 2016 um 15:!34:!38:
Ich habs gefunden Smile

das hat gefehlt:

include INFUSIONS."figurelib/infusion_db.php";
Bearbeitet von Catzenjaeger am 21. Mai 2016 13:34:38
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Springe ins Forum: