Mh, dann würde es aber das eine if vorher auch schon nen Fehler anzeigen müssen. Macht es aber nicht. Und mit ""; geht es auch nicht.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Wo ist der Fehler?
Einklappen
Neue Werbung 2019
Einklappen
X
-
Kommentar
-
du kannst/solltest es ja bei allen $data`s machen
in etwa so:
PHP-Code:if ($data[1]!='') {
echo "name='inv[]' value='".$data[1]."'>".$data[1];
}
elseif ($data[2]!='') {
echo "name='inva[]' value='".$data[2]."'>".$data[2];
}
elseif ($data[3]!='') {
echo "name='sa[]' value='".$data[3]."'>".$data[3];
}
else {
echo "name='lnr[]' value='".$data[0]."'>".$data[0];
}
:arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]
Kommentar
-
Warum sendet isset() true, obwohl die Variable leer ist?
.. und wieder ein Problem. Ich habe eine Seite gebastelt, bei der eine der Kennziffern eingegeben werden soll.
PHP-Code:echo " [b]Geben Sie EINE der folgenden Nummern ein, um das gewünschte Objektes zu löschen:[/b]
<form action='deletedata.php' method='post'>
<table style=' border:0; cellpadding:10px; margin: 30px 0 20px 40px;'>
<tr><td class='spalte_eins'>laufende Nummer:</td>
<td class='spalte_zwei'><input type='text', size='25', maxlength='15', name='lnr'></td>
</tr>
<tr><td class='spalte_eins'>Inventarnummer:</td>
<td class='spalte_zwei'><input type='text', size='25', maxlength='15', name='inv'></td>
</tr>
<tr><td class='spalte_eins'>Inventarnummer, alt:</td>
<td class='spalte_zwei'><input type='text', size='25', maxlength='15', name='inva'></td>
</tr>
<tr><td class='spalte_eins'>Sachsennummer:</td>
<td class='spalte_zwei'><input type='text', size='25', maxlength='15', name='sa'></td>
</tr>
<tr><td class='reihe_unten' align='center'><input type='submit' name='submit' value=' Objekt löschen '></td>
<td class='reihe_unten' align='center'><input type='reset' value=' Abbrechen'></td>
</tr>
</table>
</form>";
PHP-Code:if ( isset($_POST['lnr'])OR isset($_POST['inv']) OR isset($_POST['inva']) OR isset($_POST['sa']))
Kommentar
-
weil die Variable (auch wen nix drin steht) gesezt wird (so viel ich weis :P) versuchs doch einfach mal mit empty() bzw: !empty()
und was soll das mit den Komas:
<input type='text', size='25', maxlength='15', name='lnr'> ??:arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]
Kommentar
-
isset prüft, ob die Variable definiert wurde (Sprich z.B. $variable = '' ist schon einedefinition).
Beim absenden des Formulars, sprich wenn du auf den Knopf drückst, definiert er alle Variablen, welche im Formular angegeben sind. D.h. jedes Input feld etc, welches einen namen besitzt, wird definiert.
Beispiel:
Wenn folgendes Textfeld leer bleibt, wird trotzdem die Variable definiert -->
<input type='text' size='25' maxlength='15' name='sa'>
Somit hat $sa einen Wert, ist also gesetzt (isset), aber halt mit einem leeren Inhalt. ist das selbe wie $sa = '';
Prüfe anstatt mit isset mit !emtpy oder $var != '' (also ungleich leer)
Am besten ist es auf isset($_POST['lnr']) und auf leer zu prüfen (!emtpy oder $var != '')
Ich hoffe ich konnte helfen.
MFG
edit: war wieder zu langsam ^^
Kommentar
-
Zitat von HKisset prüft, ob die Variable definiert wurde (Sprich z.B. $variable = '' ist schon einedefinition).
Beim absenden des Formulars, sprich wenn du auf den Knopf drückst, definiert er alle Variablen, welche im Formular angegeben sind. D.h. jedes Input feld etc, welches einen namen besitzt, wird definiert.
Beispiel:
Wenn folgendes Textfeld leer bleibt, wird trotzdem die Variable definiert -->
<input type='text', size='25', maxlength='15', name='sa'>
Somit hat $sa einen Wert, ist also gesetzt (isset), aber halt mit einem leeren Inhalt. ist das selbe wie $sa = '';
Prüfe anstatt mit isset mit emtpy oder $var != '' (also ungleich leer)
Am besten ist es auf isset($_POST['lnr']) und auf leer zu prüfen (emtpy oder $var != '')
Ich hoffe ich konnte helfen.
MFG:arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]
Kommentar
-
Ach ich danke euch .. jetzt ist auch klar, warum ein paar Zeilen weiter das nicht geht.
Danke für den Tipp.
Kommentar
-
-
Wo ist der Fehler?
OK, dann frag ich euch nochmal um Hilfe.
PHP-Code:<?php
$qu= "SELECT all FROM `archiv` WHERE ";
if (!empty($_POST['lnr'])) {
$qu.="`lfd Nmmer`=".$_POST['lnr']."";
} elseif(!empty($_POST['inv'])) {
$qu.="`Inventarnummer`='".$_POST['inv']."'";
} elseif(!empty($_POST['inva'])) {
$qu.="`Inventarnummer, alt`='".$_POST['inva']."'";
} elseif(isset($_POST['sa'])) {
$qu.="`Sachsennummer`='".$_POST['sa']."'";
}
echo $qu;
$rs=mysql_query($qu);
$n=mysql_num_rows($rs);
?>
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
Aber ich weiss nicht wieso. Wenn ich $qu ausgebe, dann stimmt die Abfrage genau mit der SQL Abfrage aus XAMPP überein.
Kommentar
-
ich seh jetzt auch kein wirklichen Fehler. Ich würde jedoch das WHERE in die einzelnen Dann-zweige setzen oder einen ansonsten (else) Teil anfügen falls nichts zutrifft.
-->
PHP-Code:<?php
$qu= "SELECT all FROM `archiv`";
if (!empty($_POST['lnr'])) {
$qu.=" WHERE `fd Nmmer`=".$_POST['lnr']."";
} elseif(!empty($_POST['inv'])) {
$qu.=" WHERE `Inventarnummer`='".$_POST['inv']."'";
} elseif(!empty($_POST['inva'])) {
$qu.=" WHERE `Inventarnummer, alt`='".$_POST['inva']."'";
} elseif(isset($_POST['sa'])) {
$qu.=" WHERE `Sachsennummer`='".$_POST['sa']."'";
}
echo $qu;
$rs=mysql_query($qu) OR die(mysql_error()); // hier nach Error abfragen
$n=mysql_num_rows($rs);
?>
"lfd Nmmer" sieht auch ein wenig falsch aus.
MFG
Kommentar
-
Error report habe ich eingeschaltet. Und der sagt nix.
Auch wenn ich einfach mal eine Select Anweisung so eingebe (also ohne die If Schleife), gibt es nen Fehler. Es muss an mysql_num_rows liegen. Is das für ein SELECT * geeignet?!
Ach ja und wegen der if-schleife, ich habe ja vorher geprüft, ob eines der Variablen gesetzt ist. Deswegen ist ein else nicht nötig.
Kommentar
-
Ich bin überfragt. Habe auch mysql_num_rows in einigen Scripts.
Beispiel:
PHP-Code:<?php
$s_ip = "SELECT ip
FROM vm_ip
WHERE vmid = ". $_SESSION['vm'] ."
AND ip = '". $ip ."'
AND vtime > '" . $sperre ."'
LIMIT 1;";
$q_ip = mysql_query($s_ip) OR die(mysql_error());
$nummeros = mysql_num_rows($q_ip);
?>
Kommentar
-
-
Was sagt mysql_error() denn nun? Irgendein Fehler?
Gibt es im Code weitere Aufrufe von mysql_num_rows?
Was ist mitPHP-Code:$rs=mysql_query($qu) OR die(mysql_error()); // hier nach Error abfragen
var_dump($rs);
$n=mysql_num_rows($rs);
var_dump($n);
Kommentar
Kommentar