Datensätze auswählen und anzeigen

Alles, was PHP betrifft, kann hier besprochen werden.

Datensätze auswählen und anzeigen

Postby Bushranger » 19. May 2006 17:23

hallo,
ich möchte aus meiner Datenbank mir bestimmte Datensätze auswählen, die dann zusätzlich ergänzen möchte.
Ich habe mir dazu 2 Programme erstellt, um Name und identnummer einzugeben, um sie dann mit den Datensätzen abzugleich und zunächst anzuzeigen. Leider haut es nicht hin.

<html>
<body>
geben Sie Name und Untersuchungsdatum ein:
<form action = "abfrage.php" method = "post">
<input name = "nn"> Name, Vorname<p>
und <p>
<input name = "pi"> Ident-Nr<p>
<input type = "submit">
<input type = "reset">
</form>
</body>
</html
---------------------------------------------------------------
<html>
<body>
<?php
error reporting(E_ALL);
$db = mysql_connect();

$sqlab = "select patientnam, patientid from dicomstudy";
$sqlab .= " where patientnam = $nn";
$sqlab .= " and patientid = $pi";

$res = mysql_db_query("conquest", $sqlab);
$num = mysql_num_rows($res);

if ($num==0)
echo "keine passenden Datensätze gefunden";

for ($i=0; $i<$num; $i++)
{
$nn = mysql_result($res, $i, "Name, Vorname");
$pi = mysql_result($res, $i, "Ident-Nr");
echo "$nn, $pi<br>";
}

mysql_close($db);
?>
</body>
</html>
-----------------------------------------------------------------------
Fehlermelung :"; } mysql_close($db); ?>

kann mir da jemand weiterhelfen?
Bushranger
 
Posts: 102
Joined: 15. April 2005 17:35
Location: Niedersachsen

Postby Bushranger » 22. May 2006 08:39

ich hab das Ganze mal abgewandelt,

<html>
<body>
<?php
error reporting(E_ALL);
$db = mysql_connect('localhost','root');

$sqlab = "select patientnam, patientbir from dicomstudy";
$sqlab .= "where patientnam like ".$nn."%";
$sqlab .= "select patientnam, patientbir from dicomstudy";
$sqlab .= "where patientbir = ".$pb"";


$res = mysql_db_query("conquest", $sqlab);
$num = mysql_num_rows($res);

if ($num==0)
echo "keine passenden Datensätze gefunden";

for ($i=0; $i<$num; $i++)
{
$nn = mysql_result($res, $i, "PatientNam");
$pb = mysql_result($res, $i, "Patientbir");
$pi = mysql_result($res, $i, "Patientid");
$sm = mysql_result($res, $i, "StudyModal");
$sd = mysql_result($res, $i, "StudyDescr");
$st = mysql_result($res, $i, "StudyDate");
$rf = mysql_result($res, $i, "ReferPhysi");
$ps = mysql_result($res, $i, "Patientsex");

// Tabellenzeile mit -zellen
echo "<tr> <td>$lf</td> <td>$nn</td> <td>$pb</td>";
echo "<td>$pi</td> <td>$sm</td> <td>$sd</td> </td>";
echo "<td>$st</td> <td>$rf</td> <td>$ps</td> </tr>";
}


mysql_close($db);
?>
</body>
</html>

aber ich bekomme den parser fehler nicht raus
unexpected T_STRING on line 4
kann mir da jemand weiterhelfen?
Bushranger
 
Posts: 102
Joined: 15. April 2005 17:35
Location: Niedersachsen

Postby Bushranger » 22. May 2006 13:29

ich hab versucht, jetzt das Prog zu vereinfachen, indem ich nach ähnlichen Namen suche undmir dann die Einträge auflisten lassen möchte. Müßte ja eigentlich nicht so schwierig sein, zumindest für Leute die mehr Ahnung davon haben als ich.
Ich habe echt keine Ahnung wo die Fehler liegen soll,oder stimmt die befehlssyntax nicht?

hier mal das Skript

<html>
<body>
Anzeige der Personen mit folgenden Anfangsbuchstaben:
<form action = "auswahl4.php" method = "post">
<input patientnam = "nn"> <p>
<input type = "submit">
<input type = "reset">
</form>
</body>
</html>
-----------------------------------------------


<html>
<body>
<?php
$db = mysql_connect('localhost','root');

$sqlab = "select patientnam from dicomstudy";
$sqlab .= " where patientnam like '$anf%' ";

$res = mysql_db_query("conquest", $sqlab);
$num = mysql_num_rows($result);

if ($num==0)
echo "keine passenden Datensätze gefunden";

for ($i=0; $i<$num; $i++)
{
$nn = mysql_result($res, $i, "PatientNam");
$pb = mysql_result($res, $i, "Patientbir");
$pi = mysql_result($res, $i, "Patientid");
$sm = mysql_result($res, $i, "StudyModal");
$sd = mysql_result($res, $i, "StudyDescr");
$st = mysql_result($res, $i, "StudyDate");
$rf = mysql_result($res, $i, "ReferPhysi");

// Tabellenzeile mit -zellen
echo "<tr> <td>$lf</td> <td>$nn</td> <td>$pb</td>";
echo "<td>$pi</td> <td>$sm</td> <td>$sd</td> </td>";
echo "<td>$st</td> <td>$rf</td> <td>$ps</td> </tr>";
}

mysql_close($db);
?>
</body>
</html>
------------------------------------------------------------------------------
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programme\xampp\htdocs\praxis\auswahl4.php on line 10
keine passenden Datensätze gefunden
Bushranger
 
Posts: 102
Joined: 15. April 2005 17:35
Location: Niedersachsen

Postby KingCrunch » 22. May 2006 13:54

Dann trat wohl oder übel ein Fehler bei der query auf. Lass mir mal den Fehler von mysql ausgeben, dann werden wir sicher schlauer sein
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Wiedmann » 22. May 2006 14:10

a) du musst die Variablen im Script so nennen wie im HTML-Formular
b) auf die Formularfelder greifst man hier mit $_POST zu
c) du musst dich schon darauf einigen, wie die Spalten in der DB genau geschrieben werden.
d) hattest du ja schonmal ein Beispiel wie es geht (und von dem du hier wieder abweichst... warum?)

Ausgehend vom früheren Beispiel und ohne Gewähr könnte es so aussehen:
Code: Select all
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <title>Personenauswahl</title>
</head>
<body>
    <p>Anzeige der Personen mit folgenden Anfangsbuchstaben:</p>
    <form action="auswahl4.php" method="post">
        <input type="text" name="nn"><br>
        <input type="submit" value="Absenden"> <input type="reset" value="Abbrechen">
    </form>
</body>
</html>


Code: Select all
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <title>Ausgabe</title>
</head>
<body>

    <?php
        $db = mysql_connect('localhost', 'root', '') or die(mysql_error($db));
        mysql_select_db('conquest', $db) or die(mysql_error($db));

        $sqlab = "
            SELECT
                `patientnam`, `patientbir`, `patientid`, `studymodal`,
                `studydescr`, `studydate`, `referphysi`, `patientsex`
            FROM `dicomstudies`
            WHERE `patientnam` LIKE '{$_POST['nn']}%'
        ";
        $res = mysql_query($sqlab, $db) or die(mysql_error($db));

        $num = mysql_num_rows($res);
        if ($num == 0) {
            echo '<p>Keine passenden Datensätze gefunden.</p>'.PHP_EOL;
        } else {
            echo '<table>'.PHP_EOL;
            $lf = 1;
            while ($row = mysql_fetch_array($res, MYSQL_NUM)) {
                echo '<tr>'.PHP_EOL;
                echo '<td>'.$lf.'</td>'.PHP_EOL;
                foreach ($row as $value) {
                    echo '<td>'.htmlspecialchars($value).'</td>'.PHP_EOL;
                }
                echo '</tr>'.PHP_EOL;
                $lf++;
            }
            echo '</table>'.PHP_EOL;
        }

        mysql_free_result($res);
        mysql_close($db);
    ?>

</body>
</html>
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Bushranger » 22. May 2006 14:37

zunächst mal vielen Dank, sind der Lösung schon erheblich näher gerückt, denn nun werden schonmal die Personen mit den namen aufgelistet.
Nur kommt komischerweise die Meldung

// Tabellenzeile mit -zellen echo " $lf $nn $pb"; echo "$pi $sm $sd "; echo "$st $rf $ps ";

was bedeutet dies?
Bushranger
 
Posts: 102
Joined: 15. April 2005 17:35
Location: Niedersachsen

Postby Wiedmann » 22. May 2006 15:08

// Tabellenzeile mit -zellen echo " $lf $nn $pb"; echo "$pi $sm $sd "; echo "$st $rf $ps ";

was bedeutet dies?

:?:
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby deepsurfer » 22. May 2006 15:57

// Tabellenzeile mit -zellen echo " $lf $nn $pb"; echo "$pi $sm $sd "; echo "$st $rf $ps ";

Für mich ist das ganz klar ein Kommentar feld, damit will der Author des Scriptes (also ist es nicht deins, sonst wüsstest du es) mitteilen wie man die
Ausgabe innerhalb einer HTML-Tabelle darstellt.

Was anderes sehe ich daraus jetzt nicht.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby Bushranger » 22. May 2006 18:40

komme so langsam klar, wenn auch sehr langsam.
Danke für die bisherige Hilfe.
Bushranger
 
Posts: 102
Joined: 15. April 2005 17:35
Location: Niedersachsen


Return to PHP

Who is online

Users browsing this forum: No registered users and 5 guests