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, 11:58
SusiSorglos
 Registrierter Benutzer
Links : Onlinestatus : SusiSorglos ist offline
Registriert seit: May 2007
Ort: Farfaraway 02203
Beiträge: 74
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, 12:07
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.605
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, 12:21
SusiSorglos
 Registrierter Benutzer
Links : Onlinestatus : SusiSorglos ist offline
Registriert seit: May 2007
Ort: Farfaraway 02203
Beiträge: 74
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, 12:25
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.605
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, 13: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, 01:49
SusiSorglos
 Registrierter Benutzer
Links : Onlinestatus : SusiSorglos ist offline
Registriert seit: May 2007
Ort: Farfaraway 02203
Beiträge: 74
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

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

ModuleStudio ansehen ModuleStudio

Modellgetriebene Entwicklung von Erweiterungen für das Open Source Framework Zikula.

15.01.2019 Guite | Kategorie: PHP ENTWICKLUNGSUMGEBUNG
FAQ Script PHP ansehen FAQ Script PHP

FAQ Script PHP is a simple knowledgebase script and you could use it as a Frequently Asked Question section on your website. It is written in PHP and MySQL.

14.01.2019 nevenov | Kategorie: PHP/ FAQ
Admidio Mitgliederverwaltung

Admidio ist eine kostenlose Online-Mitgliederverwaltung, die für Vereine, Gruppen und Organisationen optimiert ist. Sie besteht neben der Mitgliederverwaltung aus einer Vielzahl an Modulen (Foto-, Download-, Terminverwaltung), die in eine neue oder besteh

08.01.2019 webmaster52@ | Kategorie: PHP/ Groupware
 Alle PHP Scripte anzeigen

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