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 26-07-2012, 19:38
map
 Registrierter Benutzer
Links : Onlinestatus : map ist offline
Registriert seit: Jul 2012
Beiträge: 7
map befindet sich auf einem aufstrebenden Ast
Standard array Abfrage funktioniert nicht.

Liebe Leute

Ich bräuchte mal eure Hilfe. Ich habe eine Abfrage, mit der ich mir Tabellenzeilen anzeigen lasse. Ich mache 2 Mal genau das gleiche. Das erste Mal funktioniert es, das zweite Mal nicht.

Der Fehler muss irgendwo in der while-Schlaufe liegen.

Danke und Gruss,
map

Hier der Code:

PHP-Code:
$sql mysql_query("SELECT DESCRIPTION FROM E2_SCR_SP, E2_SCR_SP_JOIN WHERE tabID='$tabID' AND E2_SCR_SP_JOIN.spID=E2_SCR_SP.spID");
$row mysql_fetch_row($sql);
$desc=$row[0];

if (
$desc!="")
{
  echo 
'<b>'."Angstinhalte soziale Phobie".'</b></br></br>';
}
while(
$row mysql_fetch_row($sql))
{
  echo 
"&minus; ".$row[0].$row[1].'<br />';
}

// bis hier klappts, die 2. Abfrage klappt nicht mehr.

$sql=mysql_query("SELECT DESCRIPTION FROM E2_SCR_SPEC, E2_SCR_SPEC_JOIN WHERE tabID='$tabID' AND E2_SCR_SPEC_JOIN.specID=E2_SCR_SPEC.specID");
$row mysql_fetch_row($sql);
$speci=$row[0];

if (
$speci!="")
{
  echo 
'<b>'."</br>Angstinhalte spezifische Phobie".'</b></br></br>';
}
while(
$row mysql_fetch_row($sql))
{
  echo 
"&minus; ".$row[0].$row[1].'<br />';


Geändert von wahsaga (27-07-2012 um 12:16 Uhr) Grund: Code in PHP-Tags gesetzt, und eingerückt. Nächstes Mal bitte selber machen!
Mit Zitat antworten
  #2 (permalink)  
Alt 26-07-2012, 21:05
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Was sagte denn mysql_error?

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 26-07-2012, 23:55
Marcoru
 Registrierter Benutzer
Links : Onlinestatus : Marcoru ist offline
Registriert seit: Jun 2012
Beiträge: 38
Marcoru befindet sich auf einem aufstrebenden Ast
Standard

Tipp: Benutze php tags damit es übersichtlicher wird
Mit Zitat antworten
  #4 (permalink)  
Alt 27-07-2012, 10:46
map
 Registrierter Benutzer
Links : Onlinestatus : map ist offline
Registriert seit: Jul 2012
Beiträge: 7
map befindet sich auf einem aufstrebenden Ast
Standard

Der mysql_error sagte gar nix. Wenn ich mir die Variable $speci vor der while-Schleife Anzeigen lasse, funktioniert das einwandfrei, in der Schleife aber nicht mehr. Ausgegeben wird durch diesen Code folgendes:

"Angstinhalte soziale Phobie


− vor anderen Leuten reden
speci=Krankheiten

Angstinhalte spezifische Phobie
"

Das Ziel wäre aber:

"Angstinhalte soziale Phobie

− vor anderen Leuten reden

Angstinhalte spezifische Phobie


- Krankeiten"

Ich wäre sehr froh über weitere Ideen..

Danke und Gruss,
map

PHP-Code:
<?php 
$sql 
mysql_query("SELECT DESCRIPTION FROM E2_SCR_SP, E2_SCR_SP_JOIN  WHERE tabID='$tabID' AND E2_SCR_SP_JOIN.spID=E2_SCR_SP.spID") or die  (mysql_error());
$row mysql_fetch_row($sql);
$desc=$row[0];

if (
$desc!="")
{
echo 
'<b>'."Angstinhalte soziale Phobie".'</b></br></br>';
}
while(
$row mysql_fetch_row($sql))
{
echo 
"&minus; ".$row[0].$row[1].'<br />';
}

$sql=mysql_query("SELECT DESCRIPTION FROM E2_SCR_SPEC, E2_SCR_SPEC_JOIN  WHERE tabID='$tabID' AND E2_SCR_SPEC_JOIN.specID=E2_SCR_SPEC.specID") or  die (mysql_error());
$row mysql_fetch_row($sql) or die (mysql_error());
$speci=$row[0];

echo 
"speci=".$speci.'<br>';
if (
$speci!="")
{
echo 
'<b>'."</br>Angstinhalte spezifische Phobie".'</b></br></br>';
}
while(
$row mysql_fetch_row($sql))
{
echo 
"&minus; ".$row[0].$row[1].'<br />';
}
Mit Zitat antworten
  #5 (permalink)  
Alt 27-07-2012, 10:57
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

lass dir den erzeugten AbfrageText bitte ausgeben, kopiere ihn und ab damit in phpmyadmin -> SQL-Fenster .. bekommst du dort überhaupt mehrere Datensätze ?
__________________

Wer LESEN kann, ist klar im Vorteil!
Mit Zitat antworten
  #6 (permalink)  
Alt 27-07-2012, 11:37
map
 Registrierter Benutzer
Links : Onlinestatus : map ist offline
Registriert seit: Jul 2012
Beiträge: 7
map befindet sich auf einem aufstrebenden Ast
Standard

Für dieses Beispiel bekomme genau einen Datensatz, eben "Krankheiten", was ich mir auf der Website Ausgeben lassen will.. oder verstehe ich dich nicht richtig?
Mit Zitat antworten
  #7 (permalink)  
Alt 27-07-2012, 12:16
Marcoru
 Registrierter Benutzer
Links : Onlinestatus : Marcoru ist offline
Registriert seit: Jun 2012
Beiträge: 38
Marcoru befindet sich auf einem aufstrebenden Ast
Standard

es könnte sein das er das JOIN als Befehl sieht oder ist das extra?
Mit Zitat antworten
  #8 (permalink)  
Alt 27-07-2012, 12:20
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von map Beitrag anzeigen
Für dieses Beispiel bekomme genau einen Datensatz, eben "Krankheiten"
Und genau diesen Datensatz holst du dir direkt nach der Abfrage bereits mit $row = mysql_fetch_row($sql);

Wenn dann die While-Schleife kommt, steht der „Datensatz-Zeiger“ bereits hinter diesem einzigen Datensatz, den die Abfrage geliefert hat – folglich liefert das mysql_fetch_row in der Schleifenbedingung gleich von Anfang an false, und die Schleife wird gar nicht erst durchlaufen …


P.S.: [php]-Tags in dein Anfangsposting eingefügt und den Code ein bisschen sinnvoll eingerückt habe ich jetzt mal für dich. Das nächste Mal machst du das bitte gleich unaufgefordert selber, Danke.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 27-07-2012, 12:30
map
 Registrierter Benutzer
Links : Onlinestatus : map ist offline
Registriert seit: Jul 2012
Beiträge: 7
map befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank! Ich denke jetzt komm ich von selbst weiter..
Mit Zitat antworten
  #10 (permalink)  
Alt 27-07-2012, 14:35
map
 Registrierter Benutzer
Links : Onlinestatus : map ist offline
Registriert seit: Jul 2012
Beiträge: 7
map befindet sich auf einem aufstrebenden Ast
Standard While-Schleife gibt nicht alle Elemente aus

Hallo allerseits,

habe schon wieder eine Frage. Meine While-Schleife gibt nicht alle Elemente aus. Es müssten 3 Datensätze ausgegeben werden, angezeigt werden aber nur 2. Woran könnte das liegen? Herzlichen Dank im Voraus!

Hier mein Code:
PHP-Code:
/* $sql=mysql_query("SELECT DESCRIPTION FROM E2_SCR_SPEC, E2_SCR_SPEC_JOIN WHERE tabID='$tabID' AND 
E2_SCR_SPEC_JOIN.specID=E2_SCR_SPEC.specID") or die (mysql_error());
$row = mysql_fetch_row($sql);
$speci=$row['0'];
$anzahl_speci=mysql_num_rows($sql);
echo "anzahl_speci= ".$anzahl_speci.'<br>';
if ($anzahl_speci!="")
{
echo '<b>'."Angstinhalte spezifische Phobie".'</b></br></br>';
}
if ($anzahl_speci==1)
{
echo "&minus; ".$speci.'<br />';
}
*/ 
//bis hier Illustration, da ich nicht weiss, inwiefern die Abfrage eine Rolle spielt.

while($row mysql_fetch_row($sql))
{
echo 
"&minus; ".$row[0].$row[1].'<br />';
}
$db_close=mysql_close($con); 
Mit Zitat antworten
  #11 (permalink)  
Alt 27-07-2012, 14:41
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Weil du bereits vorher schon mal mysql_fetch_row() aufrufst und somit den ersten Datensatz überspringst.

Dein Code ist übrigens furchtbar zu lesen. Bitte rücke ihn lesbar ein, wenn du willst, dass ihn auch andere Menschen lesen sollen.

Die mysql_* Funktionen sind veraltet und sollten nicht mehr verwendet werden. Verwendet stattdessen mysqli oder PDO.

Großgeschrieben Spalten- und Tabellennamen sind sehr ungünstig, da sie den SQL-Code schwer lesbar machen.

Du solltest richtige Joins (ANSI Join) statt diese schrecklichen Theta Style Joins verwenden.

Statt mysql_fetch_row() wäre es sinnvoller mysql_fetch_assoc() oder mysql_fetch_object() zu verwenden, weil Spaltennamen den Code übersichtlicher machen als durchnummerierte Spalten.

Eine Datenbankverbindung zu schließen ist in der Regel unnötig, weil dies PHP automatisch nach Ablauf des Scripts macht.

Geändert von h3ll (27-07-2012 um 14:53 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 27-07-2012, 14:52
map
 Registrierter Benutzer
Links : Onlinestatus : map ist offline
Registriert seit: Jul 2012
Beiträge: 7
map befindet sich auf einem aufstrebenden Ast
Standard

Herzlichen Dank!
Mit Zitat antworten
  #13 (permalink)  
Alt 27-07-2012, 16:21
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von map Beitrag anzeigen
Ich denke jetzt komm ich von selbst weiter..
Sieht nicht so aus … sonst hättest du ja keinen neuen Thread gebraucht, um dir genau das gleiche nochmal erklären zu lassen …

*zusammenführ*
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #14 (permalink)  
Alt 27-07-2012, 19:41
map
 Registrierter Benutzer
Links : Onlinestatus : map ist offline
Registriert seit: Jul 2012
Beiträge: 7
map befindet sich auf einem aufstrebenden Ast
Wink

Lieber wahsaga

Okay, hatte es als neues Problem im selben Skript betrachtet. Aber werde in Zukunft gerne alle Fragen zu einem Skript im selben thread stellen. Und brav übersichtlich einrücken

Gruss,
map
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
if-Abfrage funktioniert nicht Mathes PHP Developer Forum 6 01-08-2006 23:44
if Abfrage funktioniert nicht? maximus Caesar PHP Developer Forum 7 04-05-2006 10:55
If-Abfrage funktioniert beim array nicht mp17 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 16 25-04-2006 22:56
Abfrage Funktioniert nicht! nlochat SQL / Datenbanken 4 06-10-2005 18:43
Abfrage funktioniert nicht! moe152 SQL / Datenbanken 4 21-04-2001 20:30

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

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

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