[Gelöst] Hilfe für ABFRAGEN , VERGLEICHEN und ggf. ausgeben bzw eintragen gesucht

atsWien

fühlt sich hier wohl
Hallo Community und auch ein Hallo an alle!!

Da ich in den tiefen des Internets auf eurer Forum gestossen bin,möchte ich mal ein kleines Problem das ich habe hier posten und hoffe auf einen tip wo ich eventuell den Fehler finden kann oder wäre auch für einen guten vorschlag dankbar.

DAS PROBLEM:

1DB
5Tabellen (bei meinem Problem ist alles in einer Tabelle)
5Spalten (100 Datensätze vorhanden , 3werte aus dieser Tabelle brauche ich je abfrage)

**********
Abfrage Formular:

PHP:
$f_lv = (!isset($_POST['f_lv'])) ? '' : $_POST['f_lv'];
$f_vw = (!isset($_POST['f_vw'])) ? '' : $_POST['f_vw'];
$f_nummer = (!isset($_POST['f_nummer'])) ? '' : $_POST['f_nummer'];

******************
Ausgabe:

Ich frage mit den oben genannten Felder die DB ab, die sollen mit der db verglichen werden und wenn vorhanden ausgeben, wenn nicht neu angelegt werden aber soweit bin ich noch gar nicht gekommen.

******************
Fehlermeldung:

Anzahl der Datensätze in $ anzahl : 0'

***********
der Code:
PHP:
$link = @mysql_connect('localhost','BN','PW')
or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich<br><br>";

mysql_select_db("XYZ", $link) or die("Auswahl der Datenbank fehlgeschlagen");
$abfrage = "SELECT lv, vw, nummer FROM rufnummern WHERE 'lv' ='". mysql_real_escape_string($_POST['f_lv']) . "' AND 'vm' ='" . mysql_real_escape_string($_POST['f_vw']) . "' AND 'nummer' ='". mysql_real_escape_string($_POST['f_nummer']) ."'";
$ergebnis6 = mysql_query($abfrage) or die("Anfrage nicht erfolgreich   " . mysql_error());


echo "ergebnis6 Datensätze: $ergebnis6'<br/>'";

if (! $ergebnis6);
				
//				foreach
//				while ($row = mysql_fetch_array ($ergebnis6, MYSQL_ASSOC))
				while($row = mysql_fetch_object($ergebnis6))
				{
					die('lv'== mysql_real_escape_string($_POST['f_lv']) AND 'vm'== mysql_real_escape_string($_POST['f_vw']) AND 'nummer'== mysql_real_escape_string($_POST['f_nummer']));
				}
				
//				while($row = mysql_fetch_object($ergebnis6))
				echo "<span class= Stil8> Länderkennung: </span>".$row->lv . " <span class= Stil8> -  Vorwahl: </span>". $row->vw ." <span class= Stil8>  -  Rufnummer: </span>".$row->nummer ;

				
		echo '<table border="1">';
                        {	

			echo "<tr>";
			echo "<td> $row->lv  </td>";
			echo "<td> $row->vw  </td>";
			echo "<td> $row->nummer  </td>";
			echo "</tr>";
			}
			echo "</table>";

		mysql_free_result( $ergebnis6);

********************************************


mit besten DANK Christian
 
Zuletzt bearbeitet von einem Moderator:
Herzlich Wilkommen hier :)

Ich hoffe, du hast das Forum nicht nur in den Tiefen des Internets gefunden ^^



Zu deinem Problem kann ich nicht helfen, weil ich gerade selber erst PHP lerne, aber ein paar PHP-Gurus haben wir hier schon. ^^
Die können den Code von dir aber deutlich besser lesen, wenn du ihn in PHP-Tags setzt. ^^

Dazu bearbeitest du deinen Text, klickst auf "Erweitert" und suchst dann in dem Haufen Icons nach dem kleinen Papier, wo PHP drauf steht. Bei mir in der mittleren Reihe ganz rechts. Das setzt die PHP-Tags oder umschließt den markierten Text damit.
 
schön DANKE erstmal für die Antwort ;)

Mit welchem Programm arbeitest Du ich mit Notepad++

Kannst Du mir sagen wo ich das hier finde ??

lg aus Wien
 
Hallo Christian,

für mich ist auf den ersten Blick nicht ersichtlich, was nicht Funktioniert...
(Da ich den Inhalt Deiner Tabelle und Deine Engaben nicht kenne;
Die Fehlermeldung scheint mir nicht in der Codesequenz generiert zu werden;
while($row = mysql_fetch_object($ergebnis6))
{
die('lv'== mysql_real_escape_string($_POST['f_lv']) AND 'vm'== mysql_real_escape_string($_POST['f_vw']) AND 'nummer'== mysql_real_escape_string($_POST['f_nummer']));
}
wirkt auf mich auch nicht korrekt - du brichst nach erfolgreichem lesen ab?)
 
Hallo EISer,

DANKE vorerst, die Eingabe Wäre unter dem Punkt "Abfrage Formular"

Abfrage Formular:

$f_lv = (!isset($_POST['f_lv'])) ? '' : $_POST['f_lv'];
$f_vw = (!isset($_POST['f_vw'])) ? '' : $_POST['f_vw'];
$f_nummer = (!isset($_POST['f_nummer'])) ? '' : $_POST['f_nummer'];

in der SQL wäre eine Tabelle mit folgenden Felder: IDrnr, lv, vw, nummer.

die zeile "die" wird mir angezeigt jedoch immer ohne werte.

die('lv'== mysql_real_escape_string($_POST['f_lv']) AND 'vm'== mysql_real_escape_string($_POST['f_vw']) AND 'nummer'== mysql_real_escape_string($_POST['f_nummer']));

hätte Die Möglichkeit Dich mit TeamV auf meine Code sehen zu lassen, wenn erwünscht.

lg und Danke im voraus Christian
 
Welche Werte gibst Du für lv, zw und nummer an?
Sind alle drei Werte Strings?
Sind in der Tabelle Datensätze mit diesen Werten?
Hast Du eine MySql Oberfläche (PhpMyAdmin o.ä.) und kannst Du da deinen AbfrageText (in $Abfrage) prüfen, ob er da Ergebnisse zurückliefert?
Bist du Dir mit der while($row = mysql_fetch_object($ergebnis6)) - Schleife sicher? (Für mich sieht es so aus, als würde sie den Programmablauf abbrechen, sobald eine zeile zurückgegeben wird)
 
Zuletzt bearbeitet:
hallo nochmals ;)

die werte für (!isset($_POST['f_lv'])) : z.B.: 43 für (!isset($_POST['f_vw'])) : 1 und für (!isset($_POST['f_nummer'])) 123456
diese Daten sind vorhanden.
und mit "PhpMyAdmin" kann ich sie abfragen
bei der Schleife while($row = mysql_fetch_object($ergebnis6)) wird mir folgendes angezeigt :ergebnis6 Datensätze: Resource id #3'

und hier kann es durchaus sein das der fehler ist.

wie würdest Du es machen ??

lg Christian
 
Du möchtest vermutlich den die erreichen, wenn keine Zeile zurückgegeben wird, also die Zuweisung nicht erfolgreich war:

while( ! ($row= mysql_fetch_object($ergebnis6)))
{
die('lv'== mysql_real_escape_string($_POST['f_lv']) AND 'vm'== mysql_real_escape_string($_POST['f_vw']) AND 'nummer'== mysql_real_escape_string($_POST['f_nummer']));
}

Die Ausgabe 'ergebnis6 Datensätze: Resource id #3' kommt bereits nach deinem Aufruf von mysql_query()...

Beispiel:
PHP:
		$result = mysql_query("SELECT * FROM adressen WHERE Idx = ".$Id);
		if($result)
		{
			$row =	mysql_fetch_object($result);
			if($row)
				$this->Row2Class($row);
			mysql_free_result($result);
		}
 
Zuletzt bearbeitet:
habs gleich so versucht und jetzt kommt nach der meldung "ergebnis6 Datensätze: Resource id #3" nichts mehr, kein fehler keine anzeige.
vorher kam "' Länderkennung:XXX- Vorwahl:XXX - Rufnummer:XXXX " allerdings ohne werte(X)

lg Christian
 
Im nächsten Schritt ersetze mal das while durch ein if
(ich habe in meinem letzten Beitrag mal ein Beispiel drangehängt)

BTW:
In deinem Ergebnis6 steht nicht die Anzahl der zurückgegebenen Zeilen, dafür ist mysql_num_rows() besser geeignet.
(Kennst Du schon PHP: mysql_query - Manual ?)
 
OK wenn ich das while durch if ersetze ändert sich nichts ;-(

wo meist Du das ich "mysql_num_rows()" einsetzen soll.

und ja kenn ich, an diesem einen Problem bin ich jetzt schon fast 2 wochen in jeder freien minute drann hab das ganze www schon durch und nirgends etwas gefunden was mir weiter hilft :(

ABER ich denke jetzt kanns was werden ;)

lg Christian
 
Ich würde es mal so angehen:

PHP:
$link = @mysql_connect('localhost','BN','PW')
or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich<br><br>";

mysql_select_db("XYZ", $link) or die("Auswahl der Datenbank fehlgeschlagen");
$abfrage = "SELECT lv, vw, nummer FROM rufnummern WHERE 'lv' ='". mysql_real_escape_string($_POST['f_lv']) . "' AND 'vm' ='" . mysql_real_escape_string($_POST['f_vw']) . "' AND 'nummer' ='". mysql_real_escape_string($_POST['f_nummer']) ."'";
$ergebnis6 = mysql_query($abfrage) or die("Anfrage nicht erfolgreich " . mysql_error());

if(!$ergebnis6)
{// aus http://php.net/manual/de/function.mysql-query.php
	 $message  = 'Ungültige Abfrage: ' . mysql_error() . "\n";
   $message .= 'Gesamte Abfrage: ' . $query;
   die($message);
}
echo "Ergebnis ok";



//echo "ergebnis6 Datensätze: $ergebnis6'<br/>'";
echo "ergebnis6 Datensätze: " .  mysql_num_rows($ergebnis6) . "<br/>'";

//if (! $ergebnis6);

// foreach
// while ($row = mysql_fetch_array ($ergebnis6, MYSQL_ASSOC))



$row = mysql_fetch_object($ergebnis6);
if(!$row)
{
die('lv'== mysql_real_escape_string($_POST['f_lv']) AND 'vm'== mysql_real_escape_string($_POST['f_vw']) AND 'nummer'== mysql_real_escape_string($_POST['f_nummer']));
}

echo "Datensatz ok";

// while($row = mysql_fetch_object($ergebnis6))
echo "<span class= Stil8> Länderkennung: </span>".$row->lv . " <span class= Stil8> - Vorwahl: </span>". $row->vw ." <span class= Stil8> - Rufnummer: </span>".$row->nummer ;


echo '<table border="1">';
{

echo "<tr>";
echo "<td> $row->lv </td>";
echo "<td> $row->vw </td>";
echo "<td> $row->nummer </td>";
echo "</tr>";
}
echo "</table>";

mysql_free_result( $ergebnis6);
 
Hallo EISer, vorerstmal DANKE für Deine Zeit!!!

jetzt bekomme ich bei der 2ten if "if(!$row)" folgende Fehler meldung : Parse error: syntax error, unexpected T_IF

lg Christian
 
$row = mysql_fetch_object($ergebnis6);
Semikolon vorhanden?
Habe ich gerade eben ergänzt (mein interner compiler hat versagt - sorry)

Jetzt bin ich aber erstmal weg, Sonne ausnutzen...
 
VIELEN DANK !!!!!!!!

ich hab den fehler gefunden!!!

ich habe in der datenbank die felder NUMMERISCH definiert, dann kann ich es im programm nicht als STRING verarbeiten.

und das hat mich 2 wochen gekostet , wie Dumm man machmal ist !!!!

viellen viellen DANK ;) ohne Dich wäre ich nie dahinter gekommen.

Manchmal reicht es über etwas zu reden und schon findet man die lössung ;)

DANKE lg Christian
 
ot:
Mit welchem Programm arbeitest Du ich mit Notepad++

Kannst Du mir sagen wo ich das hier finde ??

Ich habe zuerst mit Bluefish gearbeitet, weil sich XAMPP aber irgendwie strikt geweigert hat, einen lokalen Server zum testen auf zu machen, bin ich auf die VSPHP-Erweiterung für Visual Studio umgestiegen, weil mir das Programm allgemein gefällt und das intern einen eigenen Server startet, wenn ich das Debugging der Anwendung starte.

Visual Studio gibt es leider nur in der Express-Version kostenlos, aber es gibt irgendwo im Netz eine Möglichkeit, die Professional-Version für ein Jahr zu erhalten, wenn du beweisen kannst, dass du Schüler bist.
VSPHP habe ich noch nicht kostenlos gefunden, aber da gibt es ja verschiedene Wege ;)


Die erweiterten Bearbeitungs-Möglichkeiten findest du über den Erweitert-Button unter dem Text-Feld. Dort denn einfach nach dem Icon, wo PHP drauf steht, suchen, oder mit der Maus über die Icons fahren und lesen, was da steht.
Du kannst aber auch den Tag selber schreiben, das ist ganz simpel. Du öffnest ihn so: [*PHP] und schließt ihn so: [*/PHP] und alles dazwischen wird als PHP behandelt und entsprechend formatiert.
Natürlich ohne das Sternzeichen, das hab ich nur eingefügt, damit der Tag nicht den Text dazwischen formatiert.
 
ot:


Ich habe zuerst mit Bluefish gearbeitet, weil sich XAMPP aber irgendwie strikt geweigert hat, einen lokalen Server zum testen auf zu machen, bin ich auf die VSPHP-Erweiterung für Visual Studio umgestiegen, weil mir das Programm allgemein gefällt und das intern einen eigenen Server startet, wenn ich das Debugging der Anwendung starte.

Visual Studio gibt es leider nur in der Express-Version kostenlos, aber es gibt irgendwo im Netz eine Möglichkeit, die Professional-Version für ein Jahr zu erhalten, wenn du beweisen kannst, dass du Schüler bist.
VSPHP habe ich noch nicht kostenlos gefunden, aber da gibt es ja verschiedene Wege ;)


Die erweiterten Bearbeitungs-Möglichkeiten findest du über den Erweitert-Button unter dem Text-Feld. Dort denn einfach nach dem Icon, wo PHP drauf steht, suchen, oder mit der Maus über die Icons fahren und lesen, was da steht.
Du kannst aber auch den Tag selber schreiben, das ist ganz simpel. Du öffnest ihn so: [*PHP] und schließt ihn so: [*/PHP] und alles dazwischen wird als PHP behandelt und entsprechend formatiert.
Natürlich ohne das Sternzeichen, das hab ich nur eingefügt, damit der Tag nicht den Text dazwischen formatiert.



oh bei mir ist [*PHP] = <? und geschlossen [*/PHP] = ?> man kann es auch so schreiben <?PHP und ?>

lg und auch ein DANKE
 
ot:
Wie?

Irgendwie meinen wir gerade zwei verschiedene Dinge :D
Ich meine die PHP-Tags hier im Forum, damit der Code im Forum anschaulich formatiert wird. :D
 
scheinbar bin ich zu jung beim PHP oder zu Dumm um zu verstehen was Du meinst.

aber ich habe vorerst mit ElSer alle meine Probleme geloest ;)

Aber auch Dir ein Danke für Deinen Einsatz !!!

lg Christian
 
Ich nehm mal ein Beispiel von Elser:


PHP:
        $result = mysql_query("SELECT * FROM adressen WHERE Idx = ".$Id); 
        if($result) 
        { 
            $row =    mysql_fetch_object($result); 
            if($row) 
                $this->Row2Class($row); 
            mysql_free_result($result); 
        }

Das sind die Tags, die dafür sorgen, dass der Code so schön formatiert angezeigt wird ^^
Tatsächlich sieht das dann aber so aus:

[%PHP] $result = mysql_query("SELECT * FROM adressen WHERE Idx = ".$Id);
if($result)
{
$row = mysql_fetch_object($result);
if($row)
$this->Row2Class($row);
mysql_free_result($result);
} [/PHP%]

Diesmal ohne die %-Zeichen in den PHP-Tags: [%PHP] Hier steht der Code [/PHP%]



Und zu jung ist niemand ^^
Ich wäre zu gern jünger gewesen, als ich mit C# angefangen habe, denn dann hätte ich meinen kindlichen Elan gehabt und wäre allgemein durch den Zeit-Fakter viel weiter, als jetzt und nocht nicht mal mit der Schule fertig :D

Und ob jemand "zu dumm" sein kann, oder nicht, weiß ich nicht, aber ich weiß, dass jeder was schaffen kann, wenn er sich nur ansträngt. ;)
 
Oben