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 24-10-2008, 10:58
SusiSorglos
 Registrierter Benutzer
Links : Onlinestatus : SusiSorglos ist offline
Registriert seit: May 2007
Ort: Farfaraway 02203
Beiträge: 71
SusiSorglos ist zur Zeit noch ein unbeschriebenes Blatt
Standard String innerhalb while-Schleife leeren?

Hallo zusammen,

ich stehe vor einem kleinen Problem.
Ich ziehe mir aus einer DB mehrere rows. Diese wiederum gebe ich dann in einer Tabelle aus.
PHP-Code:
while ($row mysql_fetch_assoc($query)) {   echo $row['name']."<br />";........ 
Klappt ja auch alles. Nur das Problem ist das wenn der Datensatz $row['name'] mal zufälligerweise KEINEN Wert beinhaltet, wird der Eintrag des vorherigen Datensatzes herangezogen. Was natürlich nicht so gedacht war;

Normalerweise würde ich den String ja vorher leeren $name ="";
Aber wie kann ich das innerhalb einer do-while Schleife?

Cu SusiSorglos
__________________
PHP 7.2, MySQL 5.7 auf U16.04
Mit Zitat antworten
  #2 (permalink)  
Alt 24-10-2008, 11:07
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard Re: String innerhalb while-Schleife leeren?

Zitat:
Original geschrieben von SusiSorglos
Hallo zusammen,

ich stehe vor einem kleinen Problem.
Ich ziehe mir aus einer DB mehrere rows. Diese wiederum gebe ich dann in einer Tabelle aus.
PHP-Code:
while ($row mysql_fetch_assoc($query)) {   echo $row['name']."<br />";........ 
Klappt ja auch alles. Nur das Problem ist das wenn der Datensatz $row['name'] mal zufälligerweise KEINEN Wert beinhaltet, wird der Eintrag des vorherigen Datensatzes herangezogen. Was natürlich nicht so gedacht war;
Das halte ich für sehr unwahrscheinlich.
Mit Zitat antworten
  #3 (permalink)  
Alt 24-10-2008, 11:21
SusiSorglos
 Registrierter Benutzer
Links : Onlinestatus : SusiSorglos ist offline
Registriert seit: May 2007
Ort: Farfaraway 02203
Beiträge: 71
SusiSorglos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmmm... ich kann es mir auch nicht erklären. Dann muss ich wohl wo anders danach suchen. Denn dieses Problem habe ich bei einer anderen Abfrage auch.

Cu Susi
__________________
PHP 7.2, MySQL 5.7 auf U16.04
Mit Zitat antworten
  #4 (permalink)  
Alt 24-10-2008, 11:25
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Lass dir mal $row bei jedem Durchgang mit print_r ausgeben. Und was du noch machen solltest: Führ das exakt selbe Query direkt am MySQL-Server aus (oder über phpMyAdmin), wär ja möglich, dass du ein anderes Ergebnis bekommst als du erwartest.
Mit Zitat antworten
  #5 (permalink)  
Alt 24-10-2008, 12:32
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard Re: String innerhalb while-Schleife leeren?

Zitat:
Original geschrieben von SusiSorglos
ich stehe vor einem kleinen Problem.
Ich ziehe mir aus einer DB mehrere rows. Diese wiederum gebe ich dann in einer Tabelle aus.
PHP-Code:
while ($row mysql_fetch_assoc($query)) {   echo $row['name']."<br />";........ 
Klappt ja auch alles. Nur das Problem ist das wenn der Datensatz $row['name'] mal zufälligerweise KEINEN Wert beinhaltet, wird der Eintrag des vorherigen Datensatzes herangezogen.
Das erscheint mir höchst unwahrscheinlich. Da du aber nur Teile deines Quelltextes vorgestellt hast, kann man nur raten.

Nebenbei hast du auch noch einige Ungereimtheiten eingebaut, :

Die Variable $row ist der DATENSATZ. $row['name'] ist ein DATENFELD innerhalb dieses Datensatzes.

Der Variablen $query hast du hoffentlich das Ergebnis des Queries ($query_result) zugewiesen und nicht den Query-String (oder die Query-Anfrage) selbst.

Hilfreich sind zwei Aktionen:
1. var_dump() ist dein Freund. Anders als print_r() zeigt es auch die Typen der Variablen an. So kannst du bspw. sehen, ob es sich bei einer "leeren" Variablen um einen Leerstring '' oder den Wert NULL handelt. Für die Ausgabe im Browser hat sich folgende Funktion bewährt:
PHP-Code:
function my_var_dump(& $var) {
  echo 
'<pre>';
  
ob_start();
  
var_dump($var);
  echo 
htmlspecialchars(preg_replace('/\]=>(\r\n|[\r\n])(\x20{2})+/S''] => 'ob_get_clean()));
  echo 
'</pre>';

2. error_reporting(E_ALL) hilft dir, (neben anderen Fehlern) eventuell falsch benannte Variabeln aufzuspüren.

Zitat:
... Normalerweise würde ich den String ja vorher leeren $name ="";
Aber wie kann ich das innerhalb einer do-while Schleife?
Du kannst innerhalb des Schleifenkörpers so ziemlich alles machen, was du auch an anderen Stellen im Quellcode machen kannst:

PHP-Code:
$query 'select bla from blubb where bleu';
$query_result mysql_query($dbh$query);
if (
FALSE === $query_result) {
  die(
'DB-Abfrage gescheitert!');
}
// ...

// du solltest auch die Abbruchbedingung 
// etwas genauer festlegen
while (FALSE !== $row mysql_fetch_assoc($query_result)) {
  
// my_var_dump($row); 

  
echo $row['name'], '<br />';

  
// ...

  
$row = array (); // da $row ein Array sein sollte
  // halte ich die Zuweisung von array () für 
  // verständlicher als die Zuweisung von '' (Leerstring)

Mit Zitat antworten
  #6 (permalink)  
Alt 25-10-2008, 00:49
SusiSorglos
 Registrierter Benutzer
Links : Onlinestatus : SusiSorglos ist offline
Registriert seit: May 2007
Ort: Farfaraway 02203
Beiträge: 71
SusiSorglos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mein Fehler lag doch an einer anderen Stelle.
Ich habe mit ein paar elseif Abfragen einige Werte abgefragt und danach einem $tring den entsprechenden Wert zugewiesen.

Nach dem Durchlauf der Schleife wurde dieser natürlich nicht gelöscht und war somit im nächsten Datensatz noch Aktiv. Ich habe nun kurz vor den if-Abfragen den $tring geleert. nun klappt es.

Das mit dem "var_dump" kannte ich noch gar nicht. Werde ich nun häufiger anwenden. Hatte allerdings mit Deiner OOP Version Probleme. So weit bin ich noch nicht

Ich danke Euch.. Wieder was gelernt

Cu susi
__________________
PHP 7.2, MySQL 5.7 auf U16.04
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 20:49 Uhr.