rolandams
Goto Top

PHP - Wert wird leider als String und nicht als Zahl ausgegeben

namd

in der Mitte des Skripts bekomme ich bei -->echo "$rdawert"; eine Fehlermeldung:
Catchable fatal error: Object of class stdClass could not be converted to string.
Weiß jemand wie ich $rdawert als Zahl ausgeben kann um damit ggf. noch weiterzurechnen?!?!
echo "Textausgabe test.php funkioniert...";  
echo "inluding dbconnect.php:";  
include("dbconnect.php");  
$folgeglied=1;
while ($folgeglied<10)
  {
//Abfrage des Produktnamens  
  $abfrage_name = "SELECT name FROM `produkttabelle` where id=$folgeglied;";  
  $ergebnis1 = mysql_query($abfrage_name);
  while($row = mysql_fetch_object($ergebnis1))
    {
    echo "<br><br><h1>$folgeglied. ";  
    echo $row->name;    //Ausgabe
    }
    echo "</h1>";  
//Abfrage des VitaminA-Gehaltes und deren Anteils bezüglich RDA
  $abfrage_rdawert = "SELECT bedarf_mg FROM `stofftabelle` where id=$folgeglied;";  
  $ergebnis_rdawert = mysql_query($abfrage_rdawert);
  $rdawert = mysql_fetch_object($ergebnis_rdawert);
  echo "$rdawert";  
  
  
  $abfrage_vit_a = "SELECT a, (a/($rdawert/100)) AS prozent_von_rda FROM `produkttabelle` where id=$folgeglied;";  
  $ergebnis2 = mysql_query($abfrage_vit_a);
  while($row = mysql_fetch_object($ergebnis2))
    {
    echo "<br><br><b>Anteil an Vitamin A:</b>\n ";  
    echo $row->a;        //Ausgabe
    echo "<br><br><b>Prozent RDA:</b>\n ";  
    echo $row->prozent_von_rda;        //Ausgabe
    }
  $folgeglied++;
  }
Danke!
Roland
[Edit masterG]
Thread geschlossen, weil keine Antworten mehr gebraucht werden![/EDIT]

Content-ID: 59417

Url: https://administrator.de/contentid/59417

Ausgedruckt am: 26.11.2024 um 16:11 Uhr

Dani
Dani 20.05.2007 um 23:32:52 Uhr
Goto Top
G' Abend!
Ich seh den Fehler in 1km Entfernung! face-smile

Du erzeugst ja ein Object!! Somit kannst du auch nur mit dem Objektoperator zugreifen.

Bisher:
$rdawert = mysql_fetch_object($ergebnis_rdawert);
echo "$rdawert";  

Soll:
$rdawert = mysql_fetch_object($ergebnis_rdawert);
echo $row->bedarf_mg;
So müsste es nun gehen.


Gute Nacht
Dani
RolandAMS
RolandAMS 21.05.2007 um 00:18:45 Uhr
Goto Top
hab die änderung vorgenommen, aber er zeigt mir leider keinen wert für bedarf_mg an bzw. kann ich den inhalt nicht benutzen, um damit weiterzurechnen.

ich habe 10 produkte, eine reihe von stoffen, und das in 2 tabellen. ich habe das ja als whileschleife konstruiert. das skript geht jedes produkt durch und soll:
1. die allgemein täglich benötigte dosis an vitamin A ausgeben,
2. die anteilsmenge zb an vitamin A in 100g des produktes ausgeben, und
3. die prozentzahl ermitteln und ausgeben in wie fern 100g vom produkt die tagesdosis erfüllen. da liegt das problem. im skriptbeispiel steht die formel dafür: (a/(8/100)) /wobei hier 8mg die tagesdosis für vitamin a darstellt. wie kann ich es erreichen, dass er sich den wert 8, etc.. aus der stofftabelle raussucht?!

DANKE! das wäre eine super hilfe - wollte meinen ernährungsplan so auf die beine stellen =)
Dani
Dani 21.05.2007 um 07:50:25 Uhr
Goto Top
Moin,
SELECT bedarf_mg FROM `stofftabelle` where id=$folgeglied;
Bist du sicher, dass das obige Statment auch etwas ausgibt?!


Gruß
Dani
RolandAMS
RolandAMS 21.05.2007 um 13:14:45 Uhr
Goto Top
da ich im phpskript $folgeglied als 1 definiert hab is das statement am ende äquivalent zu 1.

SELECT bedarf_mg FROM `stofftabelle`WHERE id =1;

sql console gibt zurück: bedarf_mg = 0.8

da ist eigentlich kein problem an der stelle... ich hoffe du weißt weiteren rat oder bzw wie ich das ganze ähnlich aufziehen kann.

MFG
ro
36213
36213 21.05.2007 um 13:49:26 Uhr
Goto Top
namd

in der Mitte des Skripts bekomme ich bei
-->echo "$rdawert"; eine
Fehlermeldung:
> Catchable fatal error: Object of class
> stdClass could not be converted to string.
> 
Weiß jemand wie ich $rdawert als Zahl
ausgeben kann um damit ggf. noch
weiterzurechnen?!?!
> echo "Textausgabe test.php  
> funkioniert...";  
> echo "inluding dbconnect.php:";  
> include("dbconnect.php");  
> $folgeglied=1;
> while ($folgeglied<10)
>   {
> //Abfrage des Produktnamens  
>   $abfrage_name = "SELECT name FROM  
> `produkttabelle` where
> id=$folgeglied;";  
>   $ergebnis1 = mysql_query($abfrage_name);
>   while($row =
> mysql_fetch_object($ergebnis1))
>     {
>     echo
> "<br><br><h1>$folgeglied.  
> ";  
>     echo $row->name;    //Ausgabe
Komisch, hier machst Du es richtig...
>     }
>     echo "</h1>";  
> //Abfrage des VitaminA-Gehaltes und deren
> Anteils bezüglich RDA
>   $abfrage_rdawert = "SELECT bedarf_mg  
> FROM `stofftabelle` where
> id=$folgeglied;";  
>   $ergebnis_rdawert =
> mysql_query($abfrage_rdawert);
>   $rdawert =
> mysql_fetch_object($ergebnis_rdawert);
>   echo "$rdawert";  
Und hier flashc. $rdawert ist ein Objekt. Probier mal
var_dump($rdawert); aus, dann siehst Du Deinen Fe ler und wie Du ihn beseitigst.

Danke!
Roland

Bitte!
RolandAMS
RolandAMS 21.05.2007 um 14:48:32 Uhr
Goto Top
danke für die info. als fehlermeldung bekomme ich:

object(stdClass)#1 (1) { ["bedarf_mg"]=>  string(3) "0.8" }   

$rdawert von 0.8 wird somit als string gespeichert. joa ich weiß - in der tabelle ist der wert aber als float eingefügt. gibt es da ne möglichkeit die abfrage so mittels php zu verfassen, dass ein numerischer wert in der variablen $rdawert gespeichert wird?!

danke.
ro
36213
36213 21.05.2007 um 15:25:48 Uhr
Goto Top
danke für die info. als fehlermeldung
bekomme ich:


Das ist keine Fehlermeldung.

object(stdClass)#1 (1) {
> ["bedarf_mg"]=>  string(3)  
> "0.8" }   

$rdawert ist ein Objekt.
Dieses Objekt hat ein "Mitglied", nämlich "bedarf_mg". Diesem ist der Wert "0.8" zugeordnet.
Also schreibe echo $rdawert->bedarf_mg", und er wird 0.8 ausgeben.

Wenn Du damit rechnen willst empfehle ich die Umwandlung des Strings nach float, die im Handbuch ausführlich beschrieben ist.

$rdawert von 0.8 wird somit als string
gespeichert. joa ich weiß - in der
tabelle ist der wert aber als float
eingefügt. gibt es da ne
möglichkeit die abfrage so mittels php
zu verfassen, dass ein numerischer wert in
der variablen $rdawert gespeichert wird?!

danke.
ro
RolandAMS
RolandAMS 21.05.2007 um 19:12:41 Uhr
Goto Top
Dankeschön an alle habs geschafft!