php suche liefert falschen datensatz zurück

Dieses Thema php suche liefert falschen datensatz zurück im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von reik, 9. Nov. 2006.

Thema: php suche liefert falschen datensatz zurück morgen liste, ich habe mich soweit vorgearbeitet das ich eine datensatzsuche machen kann in php. dazu habe ich eine...

  1. morgen liste,

    ich habe mich soweit vorgearbeitet das ich eine datensatzsuche machen kann in php. dazu habe ich eine suchseite erstellt und eine ergebnisseite.
    so weit so gut ... aber ich bekomme immer nur ein und den selben datensatz angezeigt. egal welche id ich eintage nach der gesucht werden soll. die db-verbindung scheint also zu funktionieren und nur eben habe ich einen denkfehler bei der suche innerhalb der datenbank - vielleicht hat jemand von euch eine idee dazu was ich falsch mache. am besten ist wohl ich poste mal die seiten ...

    die suchseite

    Code:
    <?php require_once('../../../Connections/test.php'); ?>
    <?php
    $colname_ErgCD = -1;
    if (isset($_GET['ID'])) {
     $colname_ErgCD = (get_magic_quotes_gpc()) ? $_GET['ID'] : addslashes($_GET['ID']);
    }
    mysql_select_db($database_test, $test);
    $query_ErgCD = sprintf(SELECT * FROM tblcms_cd WHERE ID = %s ORDER BY ID ASC, $colname_ErgCD);
    $ErgCD = mysql_query($query_ErgCD, $test) or die(mysql_error());
    $row_ErgCD = mysql_fetch_assoc($ErgCD);
    $totalRows_ErgCD = mysql_num_rows($ErgCD);
    ?><!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN [url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>[/url]
    <html xmlns=[url]http://www.w3.org/1999/xhtml>[/url]
    <head>
    <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1 />
    <title>Unbenanntes Dokument</title>
    <style type=text/css>
    <!--
    #Layer1 {
    	position:absolute;
    	width:722px;
    	height:115px;
    	z-index:1;
    	top: 17px;
    }
    -->
    </style>
    </head>
    
    <body>
    <table width=566 border=1>
     <tr>
      <td><form action=ergebnis.php method=get name=form1 target=_self id=form1>
       <label>
       <input name=ID type=text id=ID value=<?php echo $row_ErgCD['ID']; ?> />
       <input type=submit name=Submit value=Suchen />
       </label>
      </form></td>
     </tr>
    </table>
    
    </body>
    </html>
    <?php
    mysql_free_result($ErgCD);
    ?>
    
    und die ergebniss seite

    Code:
    <?php require_once('../../../Connections/test.php'); ?>
    <?php
    $maxRows_ErgCD = 1;
    $pageNum_ErgCD = 0;
    if (isset($_GET['pageNum_ErgCD'])) {
     $pageNum_ErgCD = $_GET['pageNum_ErgCD'];
    }
    $startRow_ErgCD = $pageNum_ErgCD * $maxRows_ErgCD;
    
    mysql_select_db($database_test, $test);
    $query_ErgCD = SELECT * FROM tblcms_cd;
    $query_limit_ErgCD = sprintf(%s LIMIT %d, %d, $query_ErgCD, $startRow_ErgCD, $maxRows_ErgCD);
    $ErgCD = mysql_query($query_limit_ErgCD, $test) or die(mysql_error());
    $row_ErgCD = mysql_fetch_assoc($ErgCD);
    
    if (isset($_GET['totalRows_ErgCD'])) {
     $totalRows_ErgCD = $_GET['totalRows_ErgCD'];
    } else {
     $all_ErgCD = mysql_query($query_ErgCD);
     $totalRows_ErgCD = mysql_num_rows($all_ErgCD);
    }
    $totalPages_ErgCD = ceil($totalRows_ErgCD/$maxRows_ErgCD)-1;
    ?>
    <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN [url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>[/url]
    <html xmlns=[url]http://www.w3.org/1999/xhtml>[/url]
    <head>
    <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1 />
    <title>Unbenanntes Dokument</title>
    <style type=text/css>
    <!--
    #Layer1 {
    	position:absolute;
    	width:502px;
    	height:59px;
    	z-index:1;
    }
    #Layer2 {
    	position:absolute;
    	width:536px;
    	height:115px;
    	z-index:1;
    }
    -->
    </style>
    </head>
    
    <body>
    <div id=Layer2>
     <table border=1 cellspacing=2>
      <tr>
       <td>ID</td>
       <td>Name</td>
       <td>Vorname</td>
       <td>Geburt</td>
       <td>REIN</td>
       <td>WEBSERVER</td>
       <td>Archiv</td>
      </tr>
      <?php do { ?>
       <tr>
        <td><?php echo $row_ErgCD['ID']; ?></td>
        <td><?php echo $row_ErgCD['Name']; ?></td>
        <td><?php echo $row_ErgCD['Vorname']; ?></td>
        <td><?php echo $row_ErgCD['Geburt']; ?></td>
        <td><?php echo $row_ErgCD['REIN']; ?></td>
        <td><?php echo $row_ErgCD['WEBSERVER']; ?></td>
        <td><?php echo $row_ErgCD['Archiv']; ?></td>
       </tr>
       <?php } while ($row_ErgCD = mysql_fetch_assoc($ErgCD)); ?>
     </table>
    </div>
    </body>
    </html>
    <?php
    mysql_free_result($ErgCD);
    ?>
    
    ich für meinen teil kann da nix falsches entdecken - aber ich bin ja auch kein programmierer (leider)... vielleicht noch soviel ich habe das ganze nach verschiedenen anleitungen gemacht mit einem grafischen tool, so das der code größtenteils automatisch generiert wurde.

    meine vermutung ist das ich den parameter aus dem suchfeld nicht so übergebe wie gebraucht. es wird immer der erste datensatz angezeigt. wahrscheinlich brauche ich auch die php abfrage in der suchseite nicht wirklich - oder? [war schon spät als ich diese versionen speicherte ;) ] und wenn das so ist - wie übergebe ich eine variable der ergebnisseite damit danach gesucht werden kann???

    hmm *nicht weiter weiss* hoffentlich habe ich mich halbwegs verständlich ausgedrückt ...

    gruß
    reik
     
  2. Könnte so gehen ;)

    suche.php
    Code:
    <?php
    mysql_connect(localhost,xxxx,xxxx);
    mysql_select_db(test_db);
    
    $query = (SELECT id, vorname, nachname FROM tbl_user ORDER by nachname ASC);
    $resID = mysql_query($query) or die(mysql_error());
    while($row = mysql_fetch_object($resID)) {
    	$n = $row->nachname. .$row->vorname;
    	$opt .=-><option value='. $row->id .'>'. $n .'</option>';
    }
    ?>
    
    <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN [url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>[/url]
    <html xmlns=[url]http://www.w3.org/1999/xhtml>[/url]
    <head>
    <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1 />
    <title>Unbenanntes Dokument</title>
    <style type=text/css>
    <!--
    #Layer1 {
    position:absolute;
    width:722px;
    height:115px;
    z-index:1;
    top: 17px;
    }
    -->
    </style>
    </head>
    
    <body>
    <table width=566 border=1>
    	<tr>
    		<th>Auswahl der vorhandenen Einträge (Name, Vorname)</th>
    	</tr>
     <tr>
      <td><form action=ergebnis.php method=POST name=form1 target=_self id=form1>
       <label>
    			<select name=id style=width:400px>
    				<option value=-1>Bitte wählen</option>
    				<?php echo $opt; ?>
    			</select>
       <input type=submit name=show value=Anzeigen />
       </label>
      </form></td>
     </tr>
    </table>
    
    <table width=566 border=1>
    	<tr>
    		<th>Suche nach Nachname</th>
    	</tr>
     <tr>
      <td><form action=ergebnis.php method=POST name=form2 target=_self id=form2>
       <label>
       <input name=nachname type=text id=nachname value= />
       <input type=submit name=search value=Suchen />
       </label>
      </form></td>
     </tr>
    </table>
    
    </body>
    </html>
    
    ergebnis.php
    Code:
    <?php
    mysql_connect(localhost,xxxx,xxxx);
    mysql_select_db(test_db);
    
    if($_POST[show] && $_POST[id] > 0) {
    	$sql = SELECT * FROM tbl_user WHERE id='. $_POST[id] .';
    }
    elseif($_POST[search]){
    	$sql = SELECT * FROM tbl_user WHERE nachname LIKE->%. $_POST[nachname] .%' ORDER by nachname ASC;
    }
    $resID = mysql_query($sql);
    $count = @mysql_num_rows($resID);
    
    ?>
    <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN [url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>[/url]
    <html xmlns=[url]http://www.w3.org/1999/xhtml>[/url]
    <head>
    <meta http-equiv=Content-Type content=text/html; charset=iso-8859-1 />
    <title>Unbenanntes Dokument</title>
    <style type=text/css>
    <!--
    #Layer1 {
    position:absolute;
    width:502px;
    height:59px;
    z-index:1;
    }
    #Layer2 {
    position:absolute;
    width:536px;
    height:115px;
    z-index:1;
    }
    -->
    </style>
    </head>
    
    <body>
    <div id=Layer2>
    <?php
    if($count >= 1) {
    ?>
     <table border=1 cellspacing=2>
      <tr>
       <td>ID</td>
       <td>Name</td>
       <td>Vorname</td>
    			<td>Strasse</td>
    			<td>PLZ</td>
    			<td>Ort</td>
      </tr>
      <?php while($row = mysql_fetch_object($resID)) { ?>
       <tr>
        <td><?php echo $row->id; ?></td>
        <td><?php	echo $row->nachname; ?></td>
        <td><?php echo $row->vorname; ?></td>
    				<td><?php echo $row->strasse; ?></td>
    				<td><?php echo $row->plz; ?></td>
    				<td><?php echo $row->ort; ?></td>
       </tr>
       <?php } ?>
     </table>
    <?php
    }
    else {
    	echo Keine Treffer!;
    }
    ?>
    
    </div>
    </body>
    </html>
    
     
  3. hi PCDConny,

    merci - ich werde das jetzt mal ausprobieren ob ich das so zum laufen bekommen. erstmal vielen dank für deine hilfe. ggf. würde ich mich nochmal melden wenn fragen noch sind.

    gruß
    reik
     
  4. Anpassen an deine Bedürfnisse musste es schon, is nur als Beispiel gedacht ;)
     
  5. hi PCDConny,

    jaja das war schon klar ;)
    ich habe ja schließlich nicht deine tabellen hier in meiner db ...

    ich habe das ganze jetzt erstmal soweit am laufen das mir die suchseite angezeigt wird und ich bei den optionen auch die inhalte der seite gezeigt werden ... aber ich kriege bei der ergebniss seite kein treffer angezeigt

    hmm - ich bin noch am grübeln woran das liegt - ich vermute mal ein falsches suchkriterium oder so ...

    soweit erstmal danke.
    gruß
    reik
     
  6. hi PCDConny,

    also ich weiss nicht was ich falsch mache!

    ich wollte im ersten schritt erstmal die suchmaske soweit anpassen, das daten ausgegeben werden. im bereich der optionen hat das auch schon funktioniert. doch wenn ich auf die buttons anzeige bzw. suche klicke wird in der ergebniss.php immer kein treffer angegeben. was ja so nicht stimmt. mit einem wort die daten werden nicht an die ergebnis.php übergeben.

    hmm vielleicht kennste das problem schon (??) @PCDConny und hast eine idee wo ich da falsch liege. hmm was würdest du brauchen um das beurteilen zu können?

    gruß und danke
    reik
     
  7. Schick mir mal deine Tabelle mit ein paar Testdatensätzen und die 2 Dateien per *.rar-Archiv als E-Mail.
     
  8. OK ent oder weder mml

    $_POST[id] / $_POST[ID] ;)

    mischen gilt nicht :1


    Und das Feld nachname gibt es nur in meinem Beispiel, bei dir ist es Name

    PS:
    nen einfaches print_r($_REQUEST) hilft manchmal ungemein ;)
     
  9. arg ... warum bin ich nur so blind????

    also nochmal vielen dank für deine hilfe @PCDConny - die suchfunktion funktioniert jetzt.

    anpassungen sind jetzt nicht mehr wirklich schwer. (hoffe ich zumindestens)

    gruß reik
     
Die Seite wird geladen...

php suche liefert falschen datensatz zurück - Ähnliche Themen

Forum Datum
Suche leise SATA-Festplatte mit 8 TB Hardware Samstag um 20:16 Uhr
Ergebnis einer Google-suche speichern in Favoriten-liste Windows 8 Forum Samstag um 18:16 Uhr
Nur große Symbole bei Suchergebnissen Windows 10 Forum 8. Okt. 2016
Endlose Suche nach Updates Windows 7 Forum 4. Okt. 2016
Suche: CMS für Technik-Blog Webentwicklung, Hosting & Programmierung 12. Juli 2016