php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 28-08-2012, 12:10
powersave
 Registrierter Benutzer
Links : Onlinestatus : powersave ist offline
Registriert seit: May 2012
Beiträge: 10
powersave befindet sich auf einem aufstrebenden Ast
Standard Bilder aus Datenbank mit json laden

hi Community,

ich habe folgendes Problem.

Ich möchte ein Bild aus der Datenbank laden welches in binärdaten abgelegt ist.

meine datenbankstrucktur sieht folgendermassen aus

--------------------------------------
Datenbank
--------------Tabelle-----------------
Feld1-----Feld2------Feld3-----Feld4-
index----- Bild ------ Text ---- Preis -
int------- Blob ------Vchar ----float
AI


jetzt habe ich folgendes probiert

PHP-Code:
 
$tageartTabellen 
"SELECT * FROM arttages";
$tageartErgebnis mysql_query($tageartTabellen) or die ("SQL-Fehler: In Abfragedefinitionen 1000: ");
while(
$tageArtikelResult mysql_fetch_array($tageartErgebnisMYSQL_ASSOC)) {$tbtages[] = array(
'tagbld01' => $tageArtikelResult['tagbld01']);}
echo 
$tbtages[0]; 
der code funktioniert soweit.
sobald ich dies jetzt mit json probiere
würde so aussehen

PHP-Code:
$tageartTabellen "SELECT * FROM arttages";
$tageartErgebnis mysql_query($tageartTabellen) or die ("SQL-Fehler: In Abfragedefinitionen 1000: ");
while(
$tageArtikelResult mysql_fetch_array($tageartErgebnisMYSQL_ASSOC)) {$tbtages[] = array(
'tagbld01' => $tageArtikelResult['tagbld01']);}
echo 
json_encode($tbtages); 
jetzt bekomme ich als ergebnis NULL.

kann mir jemand von euch sagen was ich hier falsch mache?

vielen dank im voraus.

powersave
Mit Zitat antworten
  #2 (permalink)  
Alt 28-08-2012, 12:26
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

vermutlich stößt du an die Grenzen des Arbeitsspeichers, vgl. json - PHP json_encode size limit? - Stack Overflow

JSON wurde aber auch nie darauf ausgelegt, Binärinhalte zu transportieren. Du könntest versuchen, das Bild so wie es ist übertragen und die anderen Informationen z. B. als Extension-Headers.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #3 (permalink)  
Alt 28-08-2012, 12:54
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

json_encode() mag schlicht keine Binärdaten.

Je nachdem, welche Möglichkeiten deine Gegenstelle hat, könntest du die Binärdaten base64 kodieren und an json_encode übergeben, wobei du dabei ca. 30% Aufschlag bei der zu übertragenden Datenmenge bekommst.
__________________
Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!
Mit Zitat antworten
  #4 (permalink)  
Alt 31-08-2012, 12:35
powersave
 Registrierter Benutzer
Links : Onlinestatus : powersave ist offline
Registriert seit: May 2012
Beiträge: 10
powersave befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Quetschi Beitrag anzeigen
die Binärdaten base64 kodieren und an json_encode übergeben.
schlauer bub!....

aber jetzt mal ernst....

wie bekomme ich die daten bei jquery für eine jqxgrid ausgelesen?

ich bastle jetzt schon seit einer woche daran rum und bekomme es nicht hin....

ein code schnipzel wäre nicht schlecht...

powersave
Mit Zitat antworten
  #5 (permalink)  
Alt 31-08-2012, 12:54
Benutzerbild von mermshaus mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 451
mermshaus wird schon bald berühmt werden
Standard

Mal nach „jqxgrid image“ oder so gesucht?

- jQuery Grid with Image Column - Javascript, HTML5, jQuery Widgets

Edit: Vielleicht schafft das Ding data-URIs. Data URI scheme - Wikipedia, the free encyclopedia (verfügbar ab IE8). Ansonsten müsstest du dir ein getimage.php?id=<bild-id> Script schreiben, das du dort als URL setzen kannst und das die Bilder aus der DB holt und mit dem richtigen MIME-Type ausliefert.

Geändert von mermshaus (31-08-2012 um 14:04 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 31-08-2012, 19:52
powersave
 Registrierter Benutzer
Links : Onlinestatus : powersave ist offline
Registriert seit: May 2012
Beiträge: 10
powersave befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mermshaus Beitrag anzeigen
Mal nach „jqxgrid image“ oder so gesucht?
warum soll ich danach suchen wenn ich diese benutze?

ich versuche es nochmal verständlich zu erklären....

die Bilddaten liegen mir in binärer form bereits vor...
ich bekomme sie nur nicht transportiert das ich das Bild in der jqxGrid anzeigen lassen kann....

im phpscript bekomme ich das bild korrekt angezeigt...

wie schicke ich die daten nun weiter....

das ich das bild im javascript an das jqxGrid übergeben kann.

Geändert von powersave (31-08-2012 um 19:56 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 31-08-2012, 20:31
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

So wie es mermshaus verlinkter Seite aussieht, musst du das Bild über ein PHP-Script als eigene Resource bereitstellen und die so entstandene Adresse in deinem Json-Objekt übergeben und diese dann wie dort gezeigt einbinden.
__________________
Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!
Mit Zitat antworten
  #8 (permalink)  
Alt 31-08-2012, 22:48
powersave
 Registrierter Benutzer
Links : Onlinestatus : powersave ist offline
Registriert seit: May 2012
Beiträge: 10
powersave befindet sich auf einem aufstrebenden Ast
Standard

Ja nun,
habe nach jqxGrid und Image in Google gesucht und nichts entsprechendes gefunden. Auf der Seite von jqxWidget werden zwar Images geladen und angezeigt aber nicht direkt aus einer Datenbank.

Bei den link Wikipedia werde ich nicht so recht schlau.
Brauchte mal ein Ansatz wie so ein Script aussieht oder funktioniert.

Wie geschrieben:
in php bekomme ich das bild ohne base64_encode direkt angezeigt,
allerdings nur mit echo $bild; ohne json_encode.

Mit $bild = base64_encode(datenbankfeld) und als ausgabe echo json_encode($bild); werden mir nur die binärdaten angezeigt und nicht das Bild. Das wird auf alle fälle wohl richtig sein? Wenn ich nun das Feld in jqxGrid einbinde sehe ich leider nur die binärdaten. Müssen die binärdaten direkt bei der Liste umgewandelt werden? wenn ja, wie?

powersave
Mit Zitat antworten
  #9 (permalink)  
Alt 31-08-2012, 22:58
boeserfrosch
 Registrierter Benutzer
Links : Onlinestatus : boeserfrosch ist offline
Registriert seit: Nov 2009
Beiträge: 93
boeserfrosch befindet sich auf einem aufstrebenden Ast
Standard

Um das Bild aus der Datenbank zu laden übergibst du ja einem PHP-Skript eine ID welches wiederrum dir die Binärdaten liefert.
Versuche nicht jqxGrid die Binärdaten zu geben sondern den Link zu der PHP-Datei mit der ID als GET Parameter.
Das PHP-Skript selbst gibt sich dann als Bild-Resource aus und zeigt somit das Bild an.
Wenn du dir dann den generierten Quellcode vom jqxGrid ansiehst wird da sowas stehen wie "<img src='image.php?bildid=1234'>"
Mit Zitat antworten
  #10 (permalink)  
Alt 31-08-2012, 23:49
powersave
 Registrierter Benutzer
Links : Onlinestatus : powersave ist offline
Registriert seit: May 2012
Beiträge: 10
powersave befindet sich auf einem aufstrebenden Ast
Standard

Danke für deine Antwort boeserfrosch ,

ich habe eine spalte mit bilder, eine mit einer autoid, eine mit text und eine als float. ich selektiere keinen einzelnen datensatz sondern lese die daten komplett per select * from tabellenname in jqxGrid ein.

ich steh irgenwie auf den schlauch. ja ich habe ein php-script.
ich hole die daten wie folgt aus php:

Code:
var resource = {
async: false,
datatype: "json",
 
datafields: [
{name: 'bild'},
{name: 'text'},
{name: 'preis', type: 'float'},], url:'phfoods.php'};
 
var dataAdapter = new $.jqx.dataAdapter(resource);
und übergebe sie dann den entsprechenden columns.

Code:
 
$('#Grid').jqxGrid({
  width:  309,
  height: 636,
  rowsheight: 159, 
  source: dataAdapter, 
  columnsresize: false,
  enableanimations: false, 
  showheader: false,
  selectionmode: 'singlerow',
  verticalscrollbarstep: 159, 
  showemptyrow: false,
  theme: 'energyblue',
 
  columns:[
  {text:'Bild',   dataField:'bild', width:289},
  {text:'Text', dataField:'text',width:250,},
  {text:'Preis', dataField:'preis', cellsalign:'right', cellsformat:'c2'}]
});
und wie die bilder?

danke im voraus
powersave
Mit Zitat antworten
  #11 (permalink)  
Alt 01-09-2012, 01:47
boeserfrosch
 Registrierter Benutzer
Links : Onlinestatus : boeserfrosch ist offline
Registriert seit: Nov 2009
Beiträge: 93
boeserfrosch befindet sich auf einem aufstrebenden Ast
Standard

Ok du hast also deine PHP-Datei phfoods.php von deinem Posting oben.
PHP-Code:
$tageartTabellen "SELECT bild,text,preis FROM arttages";
$tageartErgebnis mysql_query($tageartTabellen) or die ("SQL-Fehler: In Abfragedefinitionen 1000: ");
while(
$tageArtikelResult mysql_fetch_array($tageartErgebnisMYSQL_ASSOC)) {
$tbtages[] = array('Bild' => $tageArtikelResult['id'],'Text' => $tageArtikelResult['text'],'Preis' => $tageArtikelResult['preis']);}
echo 
json_encode($tbtagesJSON_FORCE_OBJECT)); 
Dein resource Objekt sieht dann etwa so aus:
Code:
var resource = {
async: false,
datatype: "json",
 
datafields: [
{name: 'bild'},
{name: 'text'},
{name: 'preis', type: 'float'},], url:'phfoods.php'};
 
var dataAdapter = new $.jqx.dataAdapter(resource);
Und die übergabe der Spalten dann etwa so:

Code:
$('#Grid').jqxGrid({
  width:  309,
  height: 636,
  rowsheight: 159, 
  source: dataAdapter, 
  columnsresize: false,
  enableanimations: false, 
  showheader: false,
  selectionmode: 'singlerow',
  verticalscrollbarstep: 159, 
  showemptyrow: false,
  theme: 'energyblue',
 
  columns:[
  {text:'Bild',   dataField:'bild', width:289, cellsrenderer: imagerenderer},
  {text:'Text', dataField:'text',width:250,},
  {text:'Preis', dataField:'preis', cellsalign:'right', cellsformat:'c2'}]
});

var imagerenderer = function (row, datafield, value) {
   return '<img style="margin-left: 5px;" height="60" width="50" src="image.php?id=' + value + '"/>';
}
Und deine image.php sieht dann in etwa so aus:

PHP-Code:
<?php
header
('Content-Type: image/gif');
$tageartTabellen "SELECT bild FROM arttages WHERE id=".intval($_GET["id"]);
$tageartErgebnis mysql_query($tageartTabellen) or die ("SQL-Fehler: In Abfragedefinitionen 1000: ");
while(
$tageArtikelResult mysql_fetch_array($tageartErgebnisMYSQL_ASSOC)) 
{
echo 
$tageArtikelResult['bild'];
}
?>
Das ganze ist ungetestet, eventuell musst du den Header noch anpassen aber ich denke das bringt dich ein ganzes Stück weiter.
So würde ich das zumindest aufziehen.

Das ganze ließ sich relativ schnell über
http://www.jqwidgets.com/jquery-grid-with-image-column/
und
http://www.jqwidgets.com/jqxgrid-wit...rgejsonresult/
zusammen basteln auch wenn man wie ich mit jqxGrid vorher noch nicht gearbeitet hat.

Geändert von boeserfrosch (01-09-2012 um 01:55 Uhr) Grund: JSON_FORCE_OBJECT eingefügt
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JSON: Problem mit autoLoad:{url:file.json} neonfly HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 2 25-07-2008 02:00
Bilder in Verzeichnis laden und Name des Bildes in Datenbank speichern LOLLe SQL / Datenbanken 2 27-02-2006 10:08
Bilder aus Datenbank auslesen Angeschossen SQL / Datenbanken 4 14-01-2006 15:06
txt laden, dann wörter aus ner datenbank holen und ersetzen Enzio PHP Developer Forum 2 11-01-2004 12:47
bilder aus datenbank hydrococcus PHP Developer Forum 2 20-10-2003 18:43

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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:08 Uhr.