php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 01-09-2006, 16:47
weltins
 Registrierter Benutzer
Links : Onlinestatus : weltins ist offline
Registriert seit: Sep 2006
Beiträge: 6
weltins ist zur Zeit noch ein unbeschriebenes Blatt
Standard Addition von zwei Variablen, bzw. einer Variablen und eriner Zahl

Hallo zusammen,


ich komme nicht mehr weiter. Mag evtl. trivial sein, aber ich bekomme es nicht hin.

Ich habe eine Datenbank in der Städte mit den jeweiligen Koordinaten abgelegt sind. Diese will ich in HTML mit einer Grafik kennzeichnen. Funktioniert auch soweit hervorragend.

Jetzt ist es aber so, dass ich bei absoluter Positionierung die Städte mit negativem Werten auf der x-Achse nicht sehen kann. Also habe ich eine weitere Tabell "faktor" angelegt, wo im feld "gesamt" der Umrechnungfaktor "600" abgelegt ist. Beim Versuch diese beiden Werte zu addieren, scheitere ich.

So fuktioniert es noch:

PHP-Code:
<?php

$link 
mysql_connect("localhost","user","passwort");
mysql_select_db("datenbank",$link);
$query "select * from stadt, faktor  order by x_koord";

$x x_koord;                    <-----    um den geht es
$y 
y_koord;

$result mysql_query($query,$link);
$num mysql_numrows($result);

    for (
$i 0$i $num$i++)
        {
        
$row mysql_fetch_array($result);

                
printf("<div style=\"position:absolute; left:$row[$x]px; top:$row[$y]px; \">
<img src=\"city.gif\" alt=\"$row[stadtname]\" title = \"$row[stadtname]\"></div>"
);
              
        }
?>
Ausgabe in HTML:

<div style="position:absolute; left:-580px; top:33px; "> ....und so weiter.


So geht es nicht mehr:

PHP-Code:
<?php

$link 
mysql_connect("localhost","user","passwort");
mysql_select_db("datenbank",$link);
$query "select * from stadt, faktor  order by x_koord";

$x x_koord gesamt;           <----------    der hier
$y 
y_koord;

$result mysql_query($query,$link);
$num mysql_numrows($result);

    for (
$i 0$i $num$i++)
        {
        
$row mysql_fetch_array($result);

                
printf("<div style=\"position:absolute; left:$row[$x]px; top:$row[$y]px; \">
<img src=\"city.gif\" alt=\"$row[stadtname]\" title = \"$row[stadtname]\"></div>"
);
              
        }
?>
Ausgabe in HTML:

<div style="position:absolute; left:Sant Tönispx; top:33px; ">

Auch z.B. $x = x_koord + 600 hat nicht zum Ziel geführt.

Wäre toll, wenn mir jemand auf die Sprünge helfen könnte.

Gruß,
weltins

Geändert von weltins (01-09-2006 um 19:13 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 01-09-2006, 18:43
Boron
 Registrierter Benutzer
Links : Onlinestatus : Boron ist offline
Registriert seit: Aug 2004
Beiträge: 191
Boron ist zur Zeit noch ein unbeschriebenes Blatt
Standard

1. Brich mal bitte deinen Code um. Mag nicht horizontal scrollen.

2.
Zitat:
$query = "select * from stadt, faktor order by x_koord";

$x = x_koord; <----- um den geht es
wo kommt denn das x_koord auf einmal her? oder müssen wir das nicht wissen? am besten du schreibst statt * die felder rein, die du benutzt!

3. muss es nicht mysql_num_rows heißen?

4. geht es nur um die addition von zwei werten oder was ist deine frage? da soll kein negativer wert bei rauskommen?

dann nimm doch den betrag davon.

if($x <= 0)
{
$x = $x * -1;
}
Mit Zitat antworten
  #3 (permalink)  
Alt 01-09-2006, 19:12
weltins
 Registrierter Benutzer
Links : Onlinestatus : weltins ist offline
Registriert seit: Sep 2006
Beiträge: 6
weltins ist zur Zeit noch ein unbeschriebenes Blatt
Standard

So...habe den Code mal in der Hälfte umgebrochen.

zu 2)
Ich selektiere zwei Tabellen - stadt und faktor. in stadt ist der Stadtname und die Koordinaten x_koord und y_koord abgelegt. In faktor ist gesamt mit dem Wert 600 abgelegt.

zu 3)
nein

zu 4)
Ich benötige nicht einfach den positiven Wert. Ich benötige alle Koordinaten so wie sie sind. Da aber negative Koordinaten nicht angezeigt werden, soll das Koordinatensystem um 600 px nach rechts verschoben werden.
Also jeder x_koord-Wert + 600
Mit Zitat antworten
  #4 (permalink)  
Alt 01-09-2006, 19:29
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von weltins zu 2)
Ich selektiere zwei Tabellen - stadt und faktor. in stadt ist der Stadtname und die Koordinaten x_koord und y_koord abgelegt.
x_koord ist eine konstante, wo ist die zuweisung?

wenn es eine variable sein soll, fehlt ein $ und ebenfalls die frage, wo ist die zuweisung?

setze error_reporting(E_ALL); an den anfang des scriptes.
Mit Zitat antworten
  #5 (permalink)  
Alt 02-09-2006, 00:08
weltins
 Registrierter Benutzer
Links : Onlinestatus : weltins ist offline
Registriert seit: Sep 2006
Beiträge: 6
weltins ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo 3DMax,

ich bin mir nicht sicher, was Du meinst...

Ja, x_koord ist eine Konstante. Ich wüsste nicht, wie ich sie anders zuweisen sollte, als ich es getan habe. Da mein Script durchaus funktionsfähig ist, zeigt mein erstes Beispiel.

Beispiel:

Das Table stadt enthält folgende Werte....

name x_koord y_koord

eins -580 33
zwei 77 217

Wie an meiner HTML-Ausgabe von Script 1 fuktioniert auch alles wie gewünscht:

<div style="position:absolute; left:-580px; top:33px; ">
<div style="position:absolute; left:77px; top:217px; ">

Ich verstehe nicht, warum das hinterfragt wird...es funktioniert!!!!!

Das einzige, was ich möchte ist, dass

<div style="position:absolute; left:-580px; top:33px; ">

umgesetzt wird in

<div style="position:absolute; left:20px; top:33px; ">

Also 600px addiert werden.

Dieses habe ich in Script 2 versucht und bin fehlgeschlagen, da die Addition der beiden Werte (x_koord + gesamt) nicht funktioniert.

Auch ein setzen von error_reporting(E_ALL) ist hier nicht zielführend (siehe beide angeführte Ergebnisse), da das Script nicht auf Fehler läuft, sondern lediglich nicht das gewünschte Ergebnis liefert.

Ich denke eher, dass ich nicht richtig addiere, bzw. die Felder nicht richtig definiert habe.

Das, was funktioniert zu hinterfragen, hilft mir leider nicht weiter

Mit Zitat antworten
  #6 (permalink)  
Alt 02-09-2006, 00:23
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
echo "html kram" . ((int)($row[$x]) + 600) . "wieder html"
wenn das läuft, kannst du "600" durch deine konstanten ersetzen.
Mit Zitat antworten
  #7 (permalink)  
Alt 02-09-2006, 00:56
weltins
 Registrierter Benutzer
Links : Onlinestatus : weltins ist offline
Registriert seit: Sep 2006
Beiträge: 6
weltins ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo penizillin,

ich glaube, ich brauche jetzt wirklich einmal Dummy-Hilfe.

Ich habe zwei Dinge ausprobiert:

(mit "")

PHP-Code:
printf("<div style=\"position:absolute; left:"((int)($row[$x]") + 600)px; top:$row[$y]px; \">
<img src=\"city.gif\" alt=\"$row[stadtname]\" title = \"$row[stadtname]\" ></div>"
); 
Ergebnis:

Parse error: parse error, unexpected '

(ohne "")

<div style="position:absolute; left(int)(-580) + 600)px; top:33px; ">
Mit Zitat antworten
  #8 (permalink)  
Alt 02-09-2006, 01:05
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

http://php-resource.de/forum/showthr...ight=belehrung
Mit Zitat antworten
  #9 (permalink)  
Alt 02-09-2006, 01:38
weltins
 Registrierter Benutzer
Links : Onlinestatus : weltins ist offline
Registriert seit: Sep 2006
Beiträge: 6
weltins ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo penizillin,

vielen Dank für den Verweis. Ich konnte dort aber mehr über die Verwendung von richtig oder falsch lernen, als eine korrekte Kodierung für meinen speziellen Fall finden.

Da Du da offensichtlich etwas mehr Ahnung hast.... wäre es möglich, mir die entsprechende Passage editiert zurückzugeben? Danach erkenne ich wahrscheinlich auch meinen Fehler besser.

Wäre toll!

Gruß,
weltins
Mit Zitat antworten
  #10 (permalink)  
Alt 02-09-2006, 01:52
gleiwitz19
 Banned
Links : Onlinestatus : gleiwitz19 ist offline
Registriert seit: Jul 2006
Ort: Banned by wahsaga
Beiträge: 76
gleiwitz19 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
<?php

$link 
mysql_connect("localhost","user","passwort");
mysql_select_db("datenbank",$link);
$query "select * from stadt, faktor  order by x_koord";

$x x_koord gesamt;           <----------    der hier
$y 
y_koord;

$result mysql_query($query,$link);
$num mysql_numrows($result);

    for (
$i 0$i $num$i++)
        {
        
$row mysql_fetch_array($result);

                
printf("<div style=\"position:absolute; left:$row[$x]px; top:$row[$y]px; \">
<img src=\"city.gif\" alt=\"$row[stadtname]\" title = \"$row[stadtname]\"></div>"
);
              
        }
?>
das obige Original ist doch ein Unsinn, nach allen menschlichen Faktoren müsste es doch so heissen:
PHP-Code:
<?php

$link 
mysql_connect("localhost","user","passwort");
mysql_select_db("datenbank",$link);
$query "select * from stadt,faktor order by x_koord";
$result mysql_query($query,$link) or die(mysql_error());

while (
$row mysql_fetch_array($result))
{
  
$x $row['x_koord'] + $row['gesamt'];
  
$y $row['y_koord'];
  
printf("<div style=\"position:absolute; left:$x px; top:$y px; \">
      <img src=\"city.gif\" alt=\"{$row['stadtname']}\" title=\"{$row['stadtname']}\"></div>"
);
}
?>
C'est tout, fini!

EDIT:
den Kram mit $gesamt noch nachgelesen und gefixt
und das title = auf title= gebessert.


Geändert von gleiwitz19 (02-09-2006 um 02:07 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 02-09-2006, 10:10
gleiwitz19
 Banned
Links : Onlinestatus : gleiwitz19 ist offline
Registriert seit: Jul 2006
Ort: Banned by wahsaga
Beiträge: 76
gleiwitz19 ist zur Zeit noch ein unbeschriebenes Blatt
Standard addition von zwei Spalten

Variante Rechnung in mysql:
PHP-Code:
<?php
$link 
mysql_connect("localhost","user","passwort");
mysql_select_db("datenbank",$link);
$query "select x_koord+gesamt as x, y_koord as y, stadtname 
                 from stadt,faktor order by x_koord"
;
$result mysql_query($query,$link) or die(mysql_error());
while (
$row mysql_fetch_array($result))
{
    
printf("<div style=\"position:absolute; left:$_row[x]px; top:$_row[y]px; \">
      <img src=\"city.gif\" alt=\"$row[stadtname]\" title=\"$row[stadtname]\"></div>"
);
}
?>
PS @überbreite: in der Vorschau hat es mehr Platz, weil die Poster-Spalte fehlt.
Mit Zitat antworten
  #12 (permalink)  
Alt 04-09-2006, 16:55
weltins
 Registrierter Benutzer
Links : Onlinestatus : weltins ist offline
Registriert seit: Sep 2006
Beiträge: 6
weltins ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo gleiwitz19,

vielen Dank. Variante 1 hat super fuktioniert.

Ich werde auch Variante 2 ausprobieren, ich glaube, die ist für meine Zwecke besser geeignet.

Gruß,
weltins
Mit Zitat antworten
  #13 (permalink)  
Alt 04-09-2006, 18:06
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard Re: Addition von zwei Variablen, bzw. einer Variablen und eriner Zahl

Dürfte ich noch einmal deine Fehler aufzeigen?

PHP-Code:
$x x_koord;
$y y_koord
Du greifst nicht auf Daten aus der Datenbank zu, weil du den Query schließlich erst weiter unten abschickst! PHP wird denken, du willst die Konstanten x_koord und y_koord verwenden, müsstest auch dementsprechend eigentlich eine Fehlermeldung erhalten!
Da PHP diese Konstanten nicht findet, verwendet er die Namen x_koord und y_koord als Zeichenkette, in $x steht also 'x_koord' und in $y steht 'y_koord'!

PHP-Code:
$num mysql_numrows($result); 
die Funktion mysql_numrows sollte eher diese hier sein!

PHP-Code:
(...) $row[$x] (...) $row[$y] (...) 
$row ist ein Array mit den Indizes 'x_koord', 'y_koord' und 'stadtname'. Du greifst jetzt durch $x und $y, in denen ja, wie oben erklärt, 'x_koord' und 'y_koord' steht, eher zufällig auf die richtigen Arrayelemente zu. Richtig wäre natürlich
PHP-Code:
(...) $row['x_koord'] (...) $row['y_koord'] (...) 
PHP-Code:
(...) $row[stadtname] (...) 
Wieder gleicher Fehler wie oben, du versuchst mit einer Konstanten zu arbeiten, die es nicht gibt! Und darum wandelt PHP die (nicht bekannte) Konstante in den String 'stadtname' um, so dass du wieder, eher zufällig, auf das richtige Arrayelement zugreifst!!


Die Kritik an deinem Quellcode war also durchaus berechtigt!! Die Lösung hat man dir aber ja bereits schon gegeben...
Mit Zitat antworten
  #14 (permalink)  
Alt 04-09-2006, 18:20
gleiwitz19
 Banned
Links : Onlinestatus : gleiwitz19 ist offline
Registriert seit: Jul 2006
Ort: Banned by wahsaga
Beiträge: 76
gleiwitz19 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von weltins
Hallo gleiwitz19,

vielen Dank. Variante 1 hat super fuktioniert.

Ich werde auch Variante 2 ausprobieren, ich glaube, die ist für meine Zwecke besser geeignet.

Gruß,
weltins
Den Dank nehm ich gerne entgegen. Gruss.
Mit Zitat antworten
Antwort

Lesezeichen


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

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

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

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:03 Uhr.